| Index: src/ia32/builtins-ia32.cc
|
| diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc
|
| index a5d42cfbe4c52567849411c44155f2ec0bbc62f9..96f89cd18ab939c9df526a56b0f3399710e3d67b 100644
|
| --- a/src/ia32/builtins-ia32.cc
|
| +++ b/src/ia32/builtins-ia32.cc
|
| @@ -899,7 +899,7 @@ static void AllocateEmptyJSArray(MacroAssembler* masm,
|
| const int initial_capacity = JSArray::kPreallocatedArrayElements;
|
| STATIC_ASSERT(initial_capacity >= 0);
|
|
|
| - __ LoadInitialArrayMap(array_function, scratch2, scratch1);
|
| + __ LoadInitialArrayMap(array_function, scratch2, scratch1, false);
|
|
|
| // Allocate the JSArray object together with space for a fixed array with the
|
| // requested elements.
|
| @@ -1002,7 +1002,8 @@ static void AllocateJSArray(MacroAssembler* masm,
|
| ASSERT(!fill_with_hole || array_size.is(ecx)); // rep stos count
|
| ASSERT(!fill_with_hole || !result.is(eax)); // result is never eax
|
|
|
| - __ LoadInitialArrayMap(array_function, scratch, elements_array);
|
| + __ LoadInitialArrayMap(array_function, scratch,
|
| + elements_array, fill_with_hole);
|
|
|
| // Allocate the JSArray object together with space for a FixedArray with the
|
| // requested elements.
|
| @@ -1273,11 +1274,12 @@ static void ArrayNativeCode(MacroAssembler* masm,
|
| __ jmp(&prepare_generic_code_call);
|
|
|
| __ bind(¬_double);
|
| - // Transition FAST_SMI_ONLY_ELEMENTS to FAST_ELEMENTS.
|
| + // Transition Smi-only to Object elements.
|
| __ mov(ebx, Operand(esp, 0));
|
| __ mov(edi, FieldOperand(ebx, HeapObject::kMapOffset));
|
| +
|
| __ LoadTransitionedArrayMapConditional(
|
| - FAST_SMI_ONLY_ELEMENTS,
|
| + FAST_SMI_ELEMENTS,
|
| FAST_ELEMENTS,
|
| edi,
|
| eax,
|
|
|