Reviewers: Michael Starzinger,
Message:
Let me know if you'd rather I just roll the changes in
https://codereview.chromium.org/666883009 into this patch.
I've run this patch against all webkit, mozilla, and test262 tests in
addition
to the usual tests in make check.
Description:
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
Please review this at https://codereview.chromium.org/656423004/
Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+76, -174 lines):
M src/array.js
M src/objects.h
M src/objects.cc
M src/runtime/runtime.h
M src/runtime/runtime-array.cc
M test/mjsunit/array-natives-elements.js
M test/mjsunit/array-shift2.js
M test/mjsunit/bugs/bug-2615.js
D test/mjsunit/bugs/bug-3612.js
D test/mjsunit/bugs/bug-3621.js
A + test/mjsunit/regress/regress-2615.js
A + test/mjsunit/regress/regress-3612.js
A + test/mjsunit/regress/regress-3621.js
M test/mjsunit/regress/regress-crbug-412319.js
M test/mozilla/mozilla.status
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.