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

Issue 1168093002: [strong] Implement strong mode restrictions on property access (Closed)

Created:
5 years, 6 months ago by conradw
Modified:
5 years, 6 months ago
CC:
v8-dev, Yang, Michael Hablich
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[strong] Implement strong mode restrictions on property access Implements the strong mode proposal's restrictions on property access. To be fully explored in a followup: proxies, interceptors, access checks, load from super BUG=v8:3956 LOG=N Committed: https://crrev.com/85dbfb9a389e7b21bd2a63862202ee97fc5d7982 Cr-Commit-Position: refs/heads/master@{#29109}

Patch Set 1 #

Patch Set 2 : rebase #

Patch Set 3 : fix keyed super access #

Patch Set 4 : fix keyed global access #

Patch Set 5 : fix GetProperty intrinsic #

Patch Set 6 : get the fix right this time #

Patch Set 7 : eliminate a strong special case, stack push #

Total comments: 14

Patch Set 8 : cl feedback #

Total comments: 19

Patch Set 9 : cl feedback 2 #

Total comments: 2

Patch Set 10 : arm, arm64 ports #

Patch Set 11 : fix arm64 port #

Total comments: 22

Patch Set 12 : cl feedback 3 #

Total comments: 2

Patch Set 13 : rebase #

Patch Set 14 : the great re-refactoring #

Patch Set 15 : missed a spot #

Patch Set 16 : final ports #

Patch Set 17 : fix typos #

Patch Set 18 : revenge of the typos #

Patch Set 19 : the typos strike back #

Patch Set 20 : cl feedback 4 #

Patch Set 21 : slim down, improve tests #

Total comments: 2

Patch Set 22 : cl feedback 5 #

Patch Set 23 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+2163 lines, -624 lines) Patch
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +2 lines, -2 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 8 chunks +13 lines, -7 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +8 lines, -7 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -2 lines 0 comments Download
M src/arm64/full-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 7 chunks +13 lines, -8 lines 0 comments Download
M src/arm64/lithium-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +8 lines, -8 lines 0 comments Download
M src/builtins.h View 1 2 3 4 5 6 7 8 3 chunks +10 lines, -9 lines 0 comments Download
M src/builtins.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +8 lines, -8 lines 0 comments Download
M src/code-factory.h View 1 2 3 4 5 6 7 1 chunk +6 lines, -3 lines 0 comments Download
M src/code-factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +17 lines, -8 lines 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +29 lines, -7 lines 0 comments Download
M src/code-stubs.cc View 1 1 chunk +0 lines, -1 line 0 comments Download
M src/code-stubs-hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 6 chunks +10 lines, -11 lines 0 comments Download
M src/compiler/ast-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 4 chunks +9 lines, -7 lines 0 comments Download
M src/compiler/js-generic-lowering.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 chunks +3 lines, -3 lines 0 comments Download
M src/compiler/js-operator.h View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +16 lines, -4 lines 0 comments Download
M src/compiler/js-operator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +14 lines, -10 lines 0 comments Download
M src/compiler/js-typed-lowering.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +2 lines, -2 lines 0 comments Download
M src/full-codegen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +1 line, -1 line 0 comments Download
M src/full-codegen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +3 lines, -1 line 0 comments Download
M src/hydrogen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 chunks +4 lines, -3 lines 0 comments Download
M src/hydrogen.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 7 chunks +19 lines, -15 lines 0 comments Download
M src/hydrogen-instructions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 6 chunks +17 lines, -5 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +2 lines, -2 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 6 chunks +13 lines, -7 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +8 lines, -7 lines 0 comments Download
M src/ic/arm/handler-compiler-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +24 lines, -0 lines 0 comments Download
M src/ic/arm/ic-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 9 chunks +30 lines, -14 lines 0 comments Download
M src/ic/arm64/handler-compiler-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +24 lines, -0 lines 0 comments Download
M src/ic/arm64/ic-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 10 chunks +35 lines, -16 lines 0 comments Download
M src/ic/handler-compiler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +5 lines, -1 line 0 comments Download
M src/ic/handler-compiler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +9 lines, -4 lines 0 comments Download
M src/ic/ia32/handler-compiler-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +33 lines, -0 lines 0 comments Download
M src/ic/ia32/ic-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 12 chunks +27 lines, -14 lines 0 comments Download
M src/ic/ic.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 6 chunks +21 lines, -10 lines 0 comments Download
M src/ic/ic.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 15 chunks +71 lines, -31 lines 0 comments Download
M src/ic/ic-compiler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -2 lines 0 comments Download
M src/ic/ic-compiler.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +7 lines, -6 lines 0 comments Download
M src/ic/ic-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -0 lines 0 comments Download
M src/ic/ic-state.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +19 lines, -7 lines 0 comments Download
M src/ic/mips/handler-compiler-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +24 lines, -0 lines 0 comments Download
M src/ic/mips/ic-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 9 chunks +28 lines, -14 lines 0 comments Download
M src/ic/mips64/handler-compiler-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +24 lines, -0 lines 0 comments Download
M src/ic/mips64/ic-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10 chunks +19 lines, -12 lines 0 comments Download
M src/ic/ppc/handler-compiler-ppc.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +24 lines, -0 lines 0 comments Download
M src/ic/ppc/ic-ppc.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 9 chunks +28 lines, -14 lines 0 comments Download
M src/ic/x64/handler-compiler-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +33 lines, -0 lines 0 comments Download
M src/ic/x64/ic-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 12 chunks +27 lines, -14 lines 0 comments Download
M src/ic/x87/handler-compiler-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +33 lines, -0 lines 0 comments Download
M src/ic/x87/ic-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 12 chunks +27 lines, -14 lines 0 comments Download
M src/messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +2 lines, -2 lines 0 comments Download
M src/mips/full-codegen-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 8 chunks +13 lines, -7 lines 0 comments Download
M src/mips/lithium-codegen-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +8 lines, -7 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +2 lines, -2 lines 0 comments Download
M src/mips64/full-codegen-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 8 chunks +13 lines, -7 lines 0 comments Download
M src/mips64/lithium-codegen-mips64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +8 lines, -7 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 5 chunks +18 lines, -12 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 7 chunks +32 lines, -10 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +14 lines, -12 lines 0 comments Download
M src/ppc/code-stubs-ppc.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +2 lines, -2 lines 0 comments Download
M src/ppc/full-codegen-ppc.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 8 chunks +13 lines, -7 lines 0 comments Download
M src/ppc/lithium-codegen-ppc.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +8 lines, -7 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +12 lines, -6 lines 0 comments Download
M src/runtime/runtime-classes.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +50 lines, -20 lines 0 comments Download
M src/runtime/runtime-debug.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +1 line, -1 line 0 comments Download
M src/runtime/runtime-object.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 6 chunks +117 lines, -104 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 chunks +2 lines, -2 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 8 chunks +13 lines, -7 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +8 lines, -7 lines 0 comments Download
M src/x87/code-stubs-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +2 lines, -2 lines 0 comments Download
M src/x87/full-codegen-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 6 chunks +13 lines, -7 lines 0 comments Download
M src/x87/lithium-codegen-x87.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 3 chunks +8 lines, -6 lines 0 comments Download
M test/cctest/test-api.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/strong/functions.js View 1 chunk +2 lines, -2 lines 0 comments Download
A test/mjsunit/strong/load-builtins.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +42 lines, -0 lines 0 comments Download
A test/mjsunit/strong/load-element.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +264 lines, -0 lines 0 comments Download
A test/mjsunit/strong/load-element-mutate-backing-store.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +239 lines, -0 lines 0 comments Download
A test/mjsunit/strong/load-property.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +200 lines, -0 lines 0 comments Download
A test/mjsunit/strong/load-property-mutate-backing-store.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +174 lines, -0 lines 0 comments Download
M test/unittests/compiler/js-type-feedback-unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +1 line, -1 line 0 comments Download
M test/unittests/compiler/js-typed-lowering-unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +64 lines, -55 lines 0 comments Download

Messages

Total messages: 25 (4 generated)
conradw
PTAL
5 years, 6 months ago (2015-06-08 16:38:26 UTC) #2
Michael Starzinger
https://codereview.chromium.org/1168093002/diff/120001/src/compiler/js-operator.cc File src/compiler/js-operator.cc (right): https://codereview.chromium.org/1168093002/diff/120001/src/compiler/js-operator.cc#newcode194 src/compiler/js-operator.cc:194: lhs.contextual_mode() == rhs.contextual_mode() && This operator should be adapted ...
5 years, 6 months ago (2015-06-09 10:54:14 UTC) #3
Michael Starzinger
https://codereview.chromium.org/1168093002/diff/120001/src/code-factory.h File src/code-factory.h (right): https://codereview.chromium.org/1168093002/diff/120001/src/code-factory.h#newcode44 src/code-factory.h:44: LanguageMode language_mode); nit: I think the language mode should ...
5 years, 6 months ago (2015-06-09 10:56:11 UTC) #4
conradw
https://codereview.chromium.org/1168093002/diff/120001/src/code-factory.h File src/code-factory.h (right): https://codereview.chromium.org/1168093002/diff/120001/src/code-factory.h#newcode44 src/code-factory.h:44: LanguageMode language_mode); On 2015/06/09 10:56:11, Michael Starzinger wrote: > ...
5 years, 6 months ago (2015-06-09 11:20:30 UTC) #5
Toon Verwaest
https://codereview.chromium.org/1168093002/diff/140001/src/ic/ic-state.h File src/ic/ic-state.h (right): https://codereview.chromium.org/1168093002/diff/140001/src/ic/ic-state.h#newcode205 src/ic/ic-state.h:205: class ContextualModeBits : public BitField<ContextualMode, 0, 1> {}; Why ...
5 years, 6 months ago (2015-06-09 11:58:04 UTC) #6
mvstanton
Hi Conrad, ic stuff looks pretty good, a couple comments. https://codereview.chromium.org/1168093002/diff/140001/src/builtins.h File src/builtins.h (right): https://codereview.chromium.org/1168093002/diff/140001/src/builtins.h#newcode93 ...
5 years, 6 months ago (2015-06-09 12:46:44 UTC) #7
conradw
https://codereview.chromium.org/1168093002/diff/140001/src/builtins.h File src/builtins.h (right): https://codereview.chromium.org/1168093002/diff/140001/src/builtins.h#newcode93 src/builtins.h:93: LoadICState::kStrongModeState) \ On 2015/06/09 12:46:44, mvstanton wrote: > You ...
5 years, 6 months ago (2015-06-09 13:09:28 UTC) #8
Toon Verwaest
https://codereview.chromium.org/1168093002/diff/140001/src/objects.cc File src/objects.cc (right): https://codereview.chromium.org/1168093002/diff/140001/src/objects.cc#newcode130 src/objects.cc:130: MaybeHandle<Object> Object::GetProperty(LookupIterator* it, Strength strength) { On 2015/06/09 13:09:27, ...
5 years, 6 months ago (2015-06-09 13:38:43 UTC) #9
rossberg
Very nice! Only two main comments: 1. As suggested by Toon and disussed offline, let's ...
5 years, 6 months ago (2015-06-10 08:28:08 UTC) #10
rossberg
On 2015/06/10 08:28:08, rossberg wrote: > https://codereview.chromium.org/1168093002/diff/200001/test/mjsunit/strong/load-element-mutate-backing-store.js#newcode7 > test/mjsunit/strong/load-element-mutate-backing-store.js:7: // TODO(conradw): > Track implementation of ...
5 years, 6 months ago (2015-06-10 08:29:42 UTC) #11
conradw
Currently refactoring everything back to use language mode instead of strength, other changes are here. ...
5 years, 6 months ago (2015-06-10 12:03:23 UTC) #12
conradw
PTAL, all ports now completed
5 years, 6 months ago (2015-06-10 16:25:23 UTC) #14
Michael Starzinger
LGTM on the TurboFan part, didn't look at the rest, please wait on approval from ...
5 years, 6 months ago (2015-06-10 17:16:52 UTC) #15
rossberg
LGTM modulo comments, but Toon & Michael Stanton should sign off as well. https://codereview.chromium.org/1168093002/diff/200001/test/mjsunit/strong/load-element.js File ...
5 years, 6 months ago (2015-06-11 09:36:34 UTC) #16
conradw
https://codereview.chromium.org/1168093002/diff/200001/test/mjsunit/strong/load-element.js File test/mjsunit/strong/load-element.js (right): https://codereview.chromium.org/1168093002/diff/200001/test/mjsunit/strong/load-element.js#newcode10 test/mjsunit/strong/load-element.js:10: function getObjects() { On 2015/06/11 09:36:34, rossberg wrote: > ...
5 years, 6 months ago (2015-06-11 13:48:32 UTC) #17
Toon Verwaest
lgtm https://codereview.chromium.org/1168093002/diff/420001/src/lookup.h File src/lookup.h (right): https://codereview.chromium.org/1168093002/diff/420001/src/lookup.h#newcode227 src/lookup.h:227: spurious change
5 years, 6 months ago (2015-06-18 10:32:13 UTC) #18
conradw
https://codereview.chromium.org/1168093002/diff/420001/src/lookup.h File src/lookup.h (right): https://codereview.chromium.org/1168093002/diff/420001/src/lookup.h#newcode227 src/lookup.h:227: On 2015/06/18 10:32:12, Toon Verwaest wrote: > spurious change ...
5 years, 6 months ago (2015-06-18 11:48:26 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1168093002/460001
5 years, 6 months ago (2015-06-18 11:51:32 UTC) #22
commit-bot: I haz the power
Committed patchset #23 (id:460001)
5 years, 6 months ago (2015-06-18 11:55:45 UTC) #23
commit-bot: I haz the power
Patchset 23 (id:??) landed as https://crrev.com/85dbfb9a389e7b21bd2a63862202ee97fc5d7982 Cr-Commit-Position: refs/heads/master@{#29109}
5 years, 6 months ago (2015-06-18 11:55:54 UTC) #24
conradw
5 years, 6 months ago (2015-06-18 13:24:19 UTC) #25
Message was sent while issue was closed.
A revert of this CL (patchset #23 id:460001) has been created in
https://codereview.chromium.org/1189153002/ by conradw@chromium.org.

The reason for reverting is: Speculative revert, maybe breaks GC-stress

http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-....

Powered by Google App Engine
This is Rietveld 408576698