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

Issue 1608523002: [runtime] Do not use the enum-cache for non-prototype objects. (Closed)

Created:
4 years, 11 months ago by Camillo Bruni
Modified:
4 years, 11 months ago
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[runtime] Do not use the enum-cache for keys retrieval. Currently we fail to properly handle shadowed properties. If the receiver defines a non-enumerable property that reappears on the prototype as enumerable it incorrectly shows up in [[Enumerate]]. By extending the KeyAccumulator to track non-enumerable properties we can now properly filter them out when seeing them further up in the prototype-chain. BUG=v8:705 LOG=y Committed: https://crrev.com/ed24dfe80d1da0827b8571839ee52c03ad09c9c7 Cr-Commit-Position: refs/heads/master@{#33405}

Patch Set 1 #

Patch Set 2 : adding support for shadowed element keys #

Patch Set 3 : moar #

Patch Set 4 : removing dead code #

Patch Set 5 : removing dead code for realz #

Patch Set 6 : using <set> instead of <unordered_set> #

Patch Set 7 : pass filter along #

Total comments: 4

Patch Set 8 : addressing nits + cleanups #

Patch Set 9 : restore original behavior #

Patch Set 10 : signed unsigned missmatch #

Unified diffs Side-by-side diffs Delta from patch set Stats (+212 lines, -84 lines) Patch
M src/elements.cc View 1 2 1 chunk +6 lines, -1 line 0 comments Download
M src/key-accumulator.h View 1 2 3 4 5 6 7 4 chunks +13 lines, -0 lines 0 comments Download
M src/key-accumulator.cc View 1 2 3 4 5 6 7 5 chunks +34 lines, -3 lines 0 comments Download
M src/messages.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -1 line 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 3 chunks +9 lines, -6 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 7 chunks +91 lines, -73 lines 0 comments Download
A test/mjsunit/regress/regress-705-shadowed_properties.js View 1 2 3 4 5 6 7 1 chunk +57 lines, -0 lines 0 comments Download

Messages

Total messages: 26 (11 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/1608523002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1608523002/80001
4 years, 11 months ago (2016-01-19 13:10:53 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_mac_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/14262)
4 years, 11 months ago (2016-01-19 13:13:59 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1608523002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1608523002/100001
4 years, 11 months ago (2016-01-19 13:43:40 UTC) #7
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_nosnap_shared_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_compile_rel/builds/9218)
4 years, 11 months ago (2016-01-19 13:48:11 UTC) #9
Camillo Bruni
PTAL
4 years, 11 months ago (2016-01-19 14:14:07 UTC) #11
Jakob Kummerow
Looks good, a few nits, waiting for next patch set as discussed. https://codereview.chromium.org/1608523002/diff/120001/src/key-accumulator.h File src/key-accumulator.h ...
4 years, 11 months ago (2016-01-19 15:32:53 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1608523002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1608523002/160001
4 years, 11 months ago (2016-01-19 16:11:10 UTC) #14
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_rel_ng/builds/1633)
4 years, 11 months ago (2016-01-19 16:16:26 UTC) #16
Camillo Bruni
PTAL again, reduced some more code and hopefully mostly restored the old behavior of the ...
4 years, 11 months ago (2016-01-19 16:56:57 UTC) #17
Jakob Kummerow
lgtm
4 years, 11 months ago (2016-01-20 10:38:51 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1608523002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1608523002/180001
4 years, 11 months ago (2016-01-20 11:57:34 UTC) #20
commit-bot: I haz the power
Committed patchset #10 (id:180001)
4 years, 11 months ago (2016-01-20 12:36:53 UTC) #21
commit-bot: I haz the power
Patchset 10 (id:??) landed as https://crrev.com/ed24dfe80d1da0827b8571839ee52c03ad09c9c7 Cr-Commit-Position: refs/heads/master@{#33405}
4 years, 11 months ago (2016-01-20 12:37:22 UTC) #23
Benedikt Meurer
Sunspider string-fasta is not happy at all, 850% slower.
4 years, 11 months ago (2016-01-21 05:27:26 UTC) #25
Camillo Bruni
4 years, 11 months ago (2016-01-21 17:22:55 UTC) #26
Message was sent while issue was closed.
A revert of this CL (patchset #10 id:180001) has been created in
https://codereview.chromium.org/1619803003/ by cbruni@chromium.org.

The reason for reverting is: tanks for-in significantly.

Powered by Google App Engine
This is Rietveld 408576698