Index: src/arm64/code-stubs-arm64.cc |
diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc |
index ec3b55ec79df3a1b640e8588d7f9006503f5c299..f82d2d960db13ecb45519536ed2988f4031c2e48 100644 |
--- a/src/arm64/code-stubs-arm64.cc |
+++ b/src/arm64/code-stubs-arm64.cc |
@@ -5803,11 +5803,10 @@ static void CallApiFunctionAndReturn( |
__ B(&leave_exit_frame); |
} |
- |
static void CallApiFunctionStubHelper(MacroAssembler* masm, |
const ParameterCount& argc, |
bool return_first_arg, |
- bool call_data_undefined) { |
+ bool call_data_undefined, bool is_lazy) { |
// ----------- S t a t e ------------- |
// -- x0 : callee |
// -- x4 : call_data |
@@ -5844,8 +5843,10 @@ static void CallApiFunctionStubHelper(MacroAssembler* masm, |
// FunctionCallbackArguments: context, callee and call data. |
__ Push(context, callee, call_data); |
- // Load context from callee |
- __ Ldr(context, FieldMemOperand(callee, JSFunction::kContextOffset)); |
+ if (!is_lazy) { |
+ // Load context from callee |
+ __ Ldr(context, FieldMemOperand(callee, JSFunction::kContextOffset)); |
+ } |
if (!call_data_undefined) { |
__ LoadRoot(call_data, Heap::kUndefinedValueRootIndex); |
@@ -5930,7 +5931,7 @@ static void CallApiFunctionStubHelper(MacroAssembler* masm, |
void CallApiFunctionStub::Generate(MacroAssembler* masm) { |
bool call_data_undefined = this->call_data_undefined(); |
CallApiFunctionStubHelper(masm, ParameterCount(x3), false, |
- call_data_undefined); |
+ call_data_undefined, false); |
} |
@@ -5938,8 +5939,9 @@ void CallApiAccessorStub::Generate(MacroAssembler* masm) { |
bool is_store = this->is_store(); |
int argc = this->argc(); |
bool call_data_undefined = this->call_data_undefined(); |
+ bool is_lazy = this->is_lazy(); |
CallApiFunctionStubHelper(masm, ParameterCount(argc), is_store, |
- call_data_undefined); |
+ call_data_undefined, is_lazy); |
} |