Index: src/arm/code-stubs-arm.cc |
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
index 0fd0de7f2b7b57fa29ac622f2bdc81d156593ac2..2eeabd226efd207b0c90d724ac1653f7d28b99cd 100644 |
--- a/src/arm/code-stubs-arm.cc |
+++ b/src/arm/code-stubs-arm.cc |
@@ -95,7 +95,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_STUB_MODE; |
descriptor->deoptimization_handler_ = |
FUNCTION_ADDR(ArrayConstructor_StubFailure); |
} |
@@ -7962,6 +7962,9 @@ void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { |
int parameter_count_offset = |
StubFailureTrampolineFrame::kCallerStackParameterCountFrameOffset; |
__ ldr(r1, MemOperand(fp, parameter_count_offset)); |
+ if (function_mode_ == JS_FUNCTION_STUB_MODE) { |
+ __ add(r1, r1, Operand(1)); |
+ } |
masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); |
__ mov(r1, Operand(r1, LSL, kPointerSizeLog2)); |
__ add(sp, sp, r1); |