| Index: src/builtins.cc
|
| diff --git a/src/builtins.cc b/src/builtins.cc
|
| index 9850f5583830664fb52330b712df461fb29154bd..e6cbd94f8cd60004dbc5732844ab0f454cf3e4b9 100644
|
| --- a/src/builtins.cc
|
| +++ b/src/builtins.cc
|
| @@ -300,35 +300,6 @@ static void FillWithHoles(FixedArray* dst, int from, int to) {
|
| }
|
|
|
|
|
| -static FixedArray* LeftTrimFixedArray(FixedArray* elms) {
|
| - // For now this trick is only applied to fixed arrays in new space.
|
| - // In large object space the object's start must coincide with chunk
|
| - // and thus the trick is just not applicable.
|
| - // In old space we do not use this trick to avoid dealing with
|
| - // remembered sets.
|
| - ASSERT(Heap::new_space()->Contains(elms));
|
| -
|
| - STATIC_ASSERT(FixedArray::kMapOffset == 0);
|
| - STATIC_ASSERT(FixedArray::kLengthOffset == kPointerSize);
|
| - STATIC_ASSERT(FixedArray::kHeaderSize == 2 * kPointerSize);
|
| -
|
| - Object** former_start = HeapObject::RawField(elms, 0);
|
| -
|
| - const int len = elms->length();
|
| -
|
| - // Technically in new space this write might be omitted (except for
|
| - // debug mode which iterates through the heap), but to play safer
|
| - // we still do it.
|
| - former_start[0] = Heap::raw_unchecked_one_pointer_filler_map();
|
| -
|
| - former_start[1] = Heap::fixed_array_map();
|
| - former_start[2] = reinterpret_cast<Object*>(len - 1);
|
| -
|
| - ASSERT_EQ(elms->address() + kPointerSize, (elms + kPointerSize)->address());
|
| - return elms + kPointerSize;
|
| -}
|
| -
|
| -
|
| static FixedArray* LeftTrimFixedArray(FixedArray* elms, int to_trim) {
|
| // For now this trick is only applied to fixed arrays in new space.
|
| // In large object space the object's start must coincide with chunk
|
| @@ -527,7 +498,7 @@ BUILTIN(ArrayShift) {
|
| if (Heap::new_space()->Contains(elms)) {
|
| // As elms still in the same space they used to be (new space),
|
| // there is no need to update remembered set.
|
| - array->set_elements(LeftTrimFixedArray(elms), SKIP_WRITE_BARRIER);
|
| + array->set_elements(LeftTrimFixedArray(elms, 1), SKIP_WRITE_BARRIER);
|
| } else {
|
| // Shift the elements.
|
| AssertNoAllocation no_gc;
|
|
|