Fix shifting from holey arrays.

Review URL: https://chromiumcodereview.appspot.com/11417007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
verwaest@chromium.org 2012-11-15 15:27:06 +00:00
parent 8535c6484d
commit 97c54506c5

View File

@ -714,6 +714,9 @@ BUILTIN(ArrayShift) {
Object* first; Object* first;
MaybeObject* maybe_first = accessor->Get(receiver, array, 0, elms_obj); MaybeObject* maybe_first = accessor->Get(receiver, array, 0, elms_obj);
if (!maybe_first->To(&first)) return maybe_first; if (!maybe_first->To(&first)) return maybe_first;
if (first->IsTheHole()) {
first = heap->undefined_value();
}
if (!heap->lo_space()->Contains(elms_obj)) { if (!heap->lo_space()->Contains(elms_obj)) {
array->set_elements(LeftTrimFixedArray(heap, elms_obj, 1)); array->set_elements(LeftTrimFixedArray(heap, elms_obj, 1));