Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 9cc67a308af2584cdce9d649b8fb02294f68b829..48cd780c6a43ec3a4ebb57f0fc4a54663d8896ac 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -4685,7 +4685,7 @@ void LCodeGen::DoDeferredAllocateObject(LAllocateObject* instr) { |
void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
ASSERT(ToRegister(instr->context()).is(esi)); |
- Heap* heap = isolate()->heap(); |
+ Handle<FixedArray> literals(instr->environment()->closure()->literals()); |
ElementsKind boilerplate_elements_kind = |
instr->hydrogen()->boilerplate_elements_kind(); |
@@ -4706,12 +4706,11 @@ void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
} |
// Set up the parameters to the stub/runtime call. |
- __ mov(eax, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ push(FieldOperand(eax, JSFunction::kLiteralsOffset)); |
+ __ PushHeapObject(literals); |
__ push(Immediate(Smi::FromInt(instr->hydrogen()->literal_index()))); |
// Boilerplate already exists, constant elements are never accessed. |
// Pass an empty fixed array. |
- __ push(Immediate(Handle<FixedArray>(heap->empty_fixed_array()))); |
+ __ push(Immediate(isolate()->factory()->empty_fixed_array())); |
// Pick the right runtime function or stub to call. |
int length = instr->hydrogen()->length(); |