|
Optimize Object.seal and Object.preventExtensions
They both now run fast (due to utilizing transitions instead of always
creating new maps) and sealed or non-extensible objects can stay in
fast mode after transitioning.
This almost entirely reuses the code for transitioning objects
frozen by Object.freeze(), with the added benefit of freeing
up a bit on the map (we no longer keep track of frozen-ness,
as that bit wasn't used for anything interesting).
BUG= v8:3662, chromium:115960
LOG=y
Total comments: 4
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+330 lines, -93 lines) |
Patch |
|
M |
src/globals.h
|
View
|
1
2
3
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/heap/heap.h
|
View
|
1
2
3
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
1
2
3
|
5 chunks |
+19 lines, -7 lines |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
1
2
3
|
8 chunks |
+87 lines, -50 lines |
0 comments
|
Download
|
|
M |
src/objects-inl.h
|
View
|
1
2
3
|
1 chunk |
+0 lines, -10 lines |
0 comments
|
Download
|
|
M |
src/objects-printer.cc
|
View
|
1
2
3
|
2 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime.h
|
View
|
1
2
3
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-object.cc
|
View
|
1
2
3
|
1 chunk |
+15 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/transitions-inl.h
|
View
|
1
2
3
4
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/v8natives.js
|
View
|
1
2
3
|
2 chunks |
+20 lines, -13 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/object-freeze.js
|
View
|
1
|
1 chunk |
+9 lines, -0 lines |
0 comments
|
Download
|
|
A + |
test/mjsunit/object-freeze-global.js
|
View
|
1
2
3
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
test/mjsunit/object-prevent-extensions.js
|
View
|
1
2
|
2 chunks |
+34 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/object-seal.js
|
View
|
1
|
1 chunk |
+129 lines, -0 lines |
0 comments
|
Download
|
|
A + |
test/mjsunit/object-seal-global.js
|
View
|
1
2
3
|
1 chunk |
+3 lines, -5 lines |
0 comments
|
Download
|
Total messages: 16 (6 generated)
|