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.

Reply via email to