|
Narrow cases where Sparse/Smart versions of Array methods are used
Added a new %HasComplexElements runtime function (meaning elements that are
non-writable, non-configurable, or have getters and setters) and use it
in UseSparseVariant to filter out cases where the sparse optimizations
can cause V8 to fall out of spec compliance.
Renamed SmartMove/SmartSlice to SparseMove/SparseSlice and guarded them
with the new and improved UseSparseVariant.
These two changes combine let us pass nearly every test in bug-2615.js,
as well as fixing reverse and join on sparse arrays.
Note that there are various test changes in this patch that correct existing
tests to match the correct-by-spec behavior.
This patch depends on https://codereview.chromium.org/666883009, which
better-aligns the behavior of SmartMove with SimpleMove.
BUG= v8:2615, v8:3612, v8:3621
LOG=y
R=mstarzinger@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=24855
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+85 lines, -174 lines) |
Patch |
|
M |
src/array.js
|
View
|
|
7 chunks |
+12 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
|
2 chunks |
+24 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-array.cc
|
View
|
|
1 chunk |
+24 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/array-natives-elements.js
|
View
|
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/array-shift2.js
|
View
|
1
|
1 chunk |
+13 lines, -3 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/bugs/bug-2615.js
|
View
|
|
1 chunk |
+0 lines, -86 lines |
0 comments
|
Download
|
|
D |
test/mjsunit/bugs/bug-3612.js
|
View
|
|
1 chunk |
+0 lines, -21 lines |
0 comments
|
Download
|
|
D |
test/mjsunit/bugs/bug-3621.js
|
View
|
|
1 chunk |
+0 lines, -11 lines |
0 comments
|
Download
|
|
A + |
test/mjsunit/regress/regress-2615.js
|
View
|
|
4 chunks |
+2 lines, -32 lines |
0 comments
|
Download
|
|
A + |
test/mjsunit/regress/regress-3612.js
|
View
|
|
0 chunks |
+-1 lines, --1 lines |
0 comments
|
Download
|
|
A + |
test/mjsunit/regress/regress-3621.js
|
View
|
|
0 chunks |
+-1 lines, --1 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/regress/regress-crbug-412319.js
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
test/mozilla/mozilla.status
|
View
|
|
3 chunks |
+5 lines, -3 lines |
0 comments
|
Download
|
Total messages: 7 (1 generated)
|