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

Issue 9417043: Avoid sharing AccessorPairs during Genesis. (Closed)

Created:
8 years, 10 months ago by Sven Panne
Modified:
8 years, 10 months ago
CC:
v8-dev
Visibility:
Public.

Description

Avoid sharing AccessorPairs during Genesis. To test the upcoming changes for map sharing in the presence of accessors, it is essential that we keep a few global invariants: The map tree should always stay a tree and AccessorPairs should not be shared between different DescriptorArrays and/or StringDictionaries. This CL adds a test method for the latter invariant and makes some changes to the bootstrapping process to avoid such sharing. Note that we can't enable the new test method permanently yet, because we currently go back and forth between fast mode and slow mode when adding an accessor and break this invariant temporarily. This will be handled in a separate CL. Committed: https://code.google.com/p/v8/source/detail?r=10744

Patch Set 1 #

Total comments: 13
Unified diffs Side-by-side diffs Delta from patch set Stats (+70 lines, -34 lines) Patch
M src/bootstrapper.cc View 7 chunks +36 lines, -33 lines 9 comments Download
M src/heap.h View 1 chunk +4 lines, -0 lines 0 comments Download
M src/heap.cc View 1 chunk +30 lines, -1 line 4 comments Download

Messages

Total messages: 4 (0 generated)
Sven Panne
8 years, 10 months ago (2012-02-17 11:48:57 UTC) #1
Michael Starzinger
LGTM (with comments addressed). https://chromiumcodereview.appspot.com/9417043/diff/1/src/bootstrapper.cc File src/bootstrapper.cc (right): https://chromiumcodereview.appspot.com/9417043/diff/1/src/bootstrapper.cc#newcode177 src/bootstrapper.cc:177: void InitArgumentsAndCaller(Handle<Map> map); In ECMA-Script ...
8 years, 10 months ago (2012-02-17 13:33:27 UTC) #2
Sven Panne
http://codereview.chromium.org/9417043/diff/1/src/bootstrapper.cc File src/bootstrapper.cc (right): http://codereview.chromium.org/9417043/diff/1/src/bootstrapper.cc#newcode177 src/bootstrapper.cc:177: void InitArgumentsAndCaller(Handle<Map> map); On 2012/02/17 13:33:28, Michael Starzinger wrote: ...
8 years, 10 months ago (2012-02-20 08:26:03 UTC) #3
Kevin Millikin (Chromium)
8 years, 10 months ago (2012-02-20 09:30:19 UTC) #4
Drive by comment.

http://codereview.chromium.org/9417043/diff/1/src/bootstrapper.cc
File src/bootstrapper.cc (right):

http://codereview.chromium.org/9417043/diff/1/src/bootstrapper.cc#newcode556
src/bootstrapper.cc:556: Handle<AccessorPair>
arguments(factory()->NewAccessorPair());
The existing V8 style is to prefer '=' notation for constructors that are
(essentially) a copy (e.g., the pointer assignment Handle constructors) and
constructor call notation for ones that are doing some sort of allocation or
other work in the constructor itself (e.g., the HandleScope::CreateHandle Handle
constructors).

We've been pretty consistent about that, so you'll have to change a lot of sites
if you think it's worth changing.

Powered by Google App Engine
This is Rietveld 408576698