Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 77cb75dbf243586beab9b83f9d5a142cced922e8..a19fcec3b91ae03254b2c764c93cdd16acb99628 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -4401,7 +4401,7 @@ void LCodeGen::DoDeferredAllocateObject(LAllocateObject* instr) { |
void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
- Heap* heap = isolate()->heap(); |
+ Handle<FixedArray> literals(instr->environment()->closure()->literals()); |
ElementsKind boilerplate_elements_kind = |
instr->hydrogen()->boilerplate_elements_kind(); |
@@ -4422,12 +4422,11 @@ void LCodeGen::DoArrayLiteral(LArrayLiteral* instr) { |
} |
// Set up the parameters to the stub/runtime call. |
- __ movq(rax, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset)); |
- __ push(FieldOperand(rax, JSFunction::kLiteralsOffset)); |
+ __ PushHeapObject(literals); |
__ Push(Smi::FromInt(instr->hydrogen()->literal_index())); |
// Boilerplate already exists, constant elements are never accessed. |
// Pass an empty fixed array. |
- __ Push(Handle<FixedArray>(heap->empty_fixed_array())); |
+ __ Push(isolate()->factory()->empty_fixed_array()); |
// Pick the right runtime function or stub to call. |
int length = instr->hydrogen()->length(); |