Index: src/arm64/code-stubs-arm64.cc |
diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc |
index a9b647ca80095acce040ac6a3823dc16dae6ea48..c249942cdd9cff8d031e7cdb2f52322b873cd25a 100644 |
--- a/src/arm64/code-stubs-arm64.cc |
+++ b/src/arm64/code-stubs-arm64.cc |
@@ -5679,7 +5679,7 @@ static void CallApiFunctionAndReturn( |
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 |
@@ -5716,8 +5716,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); |
@@ -5802,7 +5804,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); |
} |
@@ -5810,8 +5812,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); |
} |