Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(522)

Issue 1587073003: Array length reduction should throw in strict mode if it can't delete an element. (Closed)

Created:
4 years, 11 months ago by Igor Sheludko
Modified:
4 years, 11 months ago
Reviewers:
Toon Verwaest
CC:
v8-reviews_googlegroups.com, Paweł Hajdan Jr.
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Array length reduction should throw in strict mode if it can't delete an element. When accessor getter callback is called the v8::PropertyCallbackInfo::ShouldThrowOnError() is always false, since according to ES6 there's no difference between strict and non-strict property loads. For the setter case the v8::PropertyCallbackInfo::ShouldThrowOnError() returns true if the property is set in strict context. Interceptors follow same idea: for getter, enumerator and query callbacks the v8::PropertyCallbackInfo::ShouldThrowOnError() is always false, and for setter and deleter callback the v8::PropertyCallbackInfo::ShouldThrowOnError() returns true in strict context. This CL also cleans up the CallApiGetterStub and removes bogus asserts from [arm] Push(reg1, reg2, ..., regN) that prevented from pushing a set of registers containing duplicates. BUG=v8:4267 LOG=Y Committed: https://crrev.com/1d3e837fcbbd9d9fd5e72dfe85dfd47c025f3c9f Cr-Commit-Position: refs/heads/master@{#33438} Committed: https://crrev.com/ed2be747ad13746797b655fa4f5c23dc6b0ef3e3 Cr-Commit-Position: refs/heads/master@{#33461}

Patch Set 1 #

Patch Set 2 : Cleaner API-side changes #

Patch Set 3 : Add ShouldThrowOnError flag to PropertyCallbackInfo::args_ instead of LanguageMode #

Patch Set 4 : Rebasing, cleanup and ports #

Patch Set 5 : kArgsLength made public again #

Patch Set 6 : More tests added, polishing #

Patch Set 7 : Rebasing #

Patch Set 8 : Rebasing for relanding #

Unified diffs Side-by-side diffs Delta from patch set Stats (+649 lines, -310 lines) Patch
M include/v8.h View 1 2 3 4 2 chunks +15 lines, -7 lines 0 comments Download
M src/accessors.cc View 1 2 3 2 chunks +14 lines, -0 lines 0 comments Download
M src/arguments.h View 1 2 3 1 chunk +6 lines, -4 lines 0 comments Download
M src/arguments.cc View 1 2 1 chunk +8 lines, -10 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 1 chunk +17 lines, -12 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 2 3 4 5 6 4 chunks +0 lines, -4 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 2 chunks +16 lines, -10 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 1 chunk +27 lines, -15 lines 0 comments Download
M src/ic/arm/handler-compiler-arm.cc View 1 2 3 3 chunks +25 lines, -22 lines 0 comments Download
M src/ic/arm64/handler-compiler-arm64.cc View 1 2 3 4 chunks +17 lines, -23 lines 0 comments Download
M src/ic/handler-compiler.h View 1 2 3 1 chunk +2 lines, -1 line 0 comments Download
M src/ic/ia32/handler-compiler-ia32.cc View 1 2 3 4 chunks +18 lines, -14 lines 0 comments Download
M src/ic/ic.cc View 1 2 3 4 chunks +7 lines, -2 lines 0 comments Download
M src/ic/mips/handler-compiler-mips.cc View 1 2 3 3 chunks +37 lines, -26 lines 0 comments Download
M src/ic/mips64/handler-compiler-mips64.cc View 1 2 3 3 chunks +37 lines, -26 lines 0 comments Download
M src/ic/ppc/handler-compiler-ppc.cc View 1 2 3 3 chunks +26 lines, -22 lines 0 comments Download
M src/ic/x64/handler-compiler-x64.cc View 1 2 3 4 chunks +22 lines, -17 lines 0 comments Download
M src/ic/x87/handler-compiler-x87.cc View 1 2 3 4 chunks +18 lines, -14 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 3 4 5 6 1 chunk +17 lines, -11 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 3 4 5 6 1 chunk +18 lines, -11 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 12 chunks +22 lines, -11 lines 0 comments Download
M src/objects-printer.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M src/ppc/code-stubs-ppc.cc View 1 2 3 4 5 6 7 3 chunks +16 lines, -11 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 3 chunks +20 lines, -19 lines 0 comments Download
M src/x87/code-stubs-x87.cc View 1 2 3 1 chunk +27 lines, -15 lines 0 comments Download
M test/cctest/test-api.cc View 1 2 3 4 5 1 chunk +197 lines, -0 lines 0 comments Download
A test/mjsunit/regress/regress-4267.js View 1 chunk +16 lines, -0 lines 0 comments Download

Messages

Total messages: 69 (39 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/1
4 years, 11 months ago (2016-01-14 17:34:42 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_nodcheck_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_nodcheck_rel/builds/10895) v8_linux_rel_ng on ...
4 years, 11 months ago (2016-01-14 17:36:22 UTC) #4
Igor Sheludko
PTAL x64, if it looks good I'll make other ports
4 years, 11 months ago (2016-01-14 18:25:38 UTC) #6
Igor Sheludko
Addressed comments.
4 years, 11 months ago (2016-01-15 11:51:48 UTC) #8
Toon Verwaest
The language-mode should be part of the array, otherwise it will be a random value ...
4 years, 11 months ago (2016-01-15 12:48:33 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/120001
4 years, 11 months ago (2016-01-19 18:04:04 UTC) #15
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_android_arm_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/builds/12251)
4 years, 11 months ago (2016-01-19 18:07:20 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/140001
4 years, 11 months ago (2016-01-19 18:17:22 UTC) #20
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_android_arm_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/builds/12253)
4 years, 11 months ago (2016-01-19 18:20:49 UTC) #22
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/160001
4 years, 11 months ago (2016-01-20 08:00:06 UTC) #25
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/180001
4 years, 11 months ago (2016-01-20 08:03:16 UTC) #29
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-20 08:33:05 UTC) #31
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/200001
4 years, 11 months ago (2016-01-20 10:06:30 UTC) #36
Igor Sheludko
Ports are ready, PTAL
4 years, 11 months ago (2016-01-20 10:07:30 UTC) #37
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-20 10:30:07 UTC) #39
Toon Verwaest
lgtm
4 years, 11 months ago (2016-01-21 11:36:30 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/200001
4 years, 11 months ago (2016-01-21 11:37:06 UTC) #42
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux64_asan_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel/builds/12612) v8_linux64_rel_ng on tryserver.v8 (JOB_FAILED, ...
4 years, 11 months ago (2016-01-21 11:38:00 UTC) #44
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/220001
4 years, 11 months ago (2016-01-21 13:41:54 UTC) #46
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-21 14:06:32 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/220001
4 years, 11 months ago (2016-01-21 14:08:28 UTC) #51
commit-bot: I haz the power
Committed patchset #7 (id:220001)
4 years, 11 months ago (2016-01-21 14:22:57 UTC) #53
commit-bot: I haz the power
Patchset 7 (id:??) landed as https://crrev.com/1d3e837fcbbd9d9fd5e72dfe85dfd47c025f3c9f Cr-Commit-Position: refs/heads/master@{#33438}
4 years, 11 months ago (2016-01-21 14:23:16 UTC) #55
Michael Achenbach
A revert of this CL (patchset #7 id:220001) has been created in https://codereview.chromium.org/1611313003/ by machenbach@chromium.org. ...
4 years, 11 months ago (2016-01-21 18:53:44 UTC) #56
Igor Sheludko
On 2016/01/21 18:53:44, Michael Achenbach wrote: > A revert of this CL (patchset #7 id:220001) ...
4 years, 11 months ago (2016-01-22 09:03:14 UTC) #58
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/220001
4 years, 11 months ago (2016-01-22 09:03:33 UTC) #60
commit-bot: I haz the power
Try jobs failed on following builders: v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/10043)
4 years, 11 months ago (2016-01-22 09:05:34 UTC) #62
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1587073003/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1587073003/240001
4 years, 11 months ago (2016-01-22 09:20:54 UTC) #65
commit-bot: I haz the power
Committed patchset #8 (id:240001)
4 years, 11 months ago (2016-01-22 09:53:34 UTC) #67
commit-bot: I haz the power
4 years, 11 months ago (2016-01-22 09:53:57 UTC) #69
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/ed2be747ad13746797b655fa4f5c23dc6b0ef3e3
Cr-Commit-Position: refs/heads/master@{#33461}

Powered by Google App Engine
This is Rietveld 408576698