Index: src/arm/code-stubs-arm.cc |
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
index b1ffaea14d1241e2ee8301f9647ff5896745a8df..9e6a5dfbc4d249dbfda8b17b7b2cd456b0cfb5bd 100644 |
--- a/src/arm/code-stubs-arm.cc |
+++ b/src/arm/code-stubs-arm.cc |
@@ -84,7 +84,7 @@ static void InitializeArrayConstructorDescriptor(Isolate* isolate, |
// stack param count needs (constructor pointer, and single argument) |
descriptor->stack_parameter_count_ = &r0; |
descriptor->register_params_ = registers; |
- descriptor->extra_expression_stack_count_ = 1; |
+ descriptor->function_mode_ = JS_FUNCTION_MODE; |
descriptor->deoptimization_handler_ = |
FUNCTION_ADDR(ArrayConstructor_StubFailure); |
} |
@@ -7987,6 +7987,9 @@ void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { |
int parameter_count_offset = |
StubFailureTrampolineFrame::kCallerStackParameterCountFrameOffset; |
__ ldr(r1, MemOperand(fp, parameter_count_offset)); |
+ if (function_mode_ == JS_FUNCTION_MODE) { |
+ __ add(r1, r1, Operand(1)); |
+ } |
masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); |
__ mov(r1, Operand(r1, LSL, kPointerSizeLog2)); |
__ add(sp, sp, r1); |