Index: src/ia32/code-stubs-ia32.cc |
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
index 1b27540317ccd4ad3b138b59de2fa43c75864698..28334417247fa19bdb98ddfb1b07f66aa6c3b7ab 100644 |
--- a/src/ia32/code-stubs-ia32.cc |
+++ b/src/ia32/code-stubs-ia32.cc |
@@ -89,7 +89,7 @@ static void InitializeArrayConstructorDescriptor(Isolate* isolate, |
// stack param count needs (constructor pointer, and single argument) |
descriptor->stack_parameter_count_ = &eax; |
descriptor->register_params_ = registers; |
- descriptor->extra_expression_stack_count_ = 1; |
+ descriptor->acting_as_js_function_ = true; |
descriptor->deoptimization_handler_ = |
FUNCTION_ADDR(ArrayConstructor_StubFailure); |
} |
@@ -7836,8 +7836,8 @@ void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { |
__ mov(ebx, MemOperand(ebp, parameter_count_offset)); |
masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); |
__ pop(ecx); |
- __ lea(esp, MemOperand(esp, ebx, times_pointer_size, |
- extra_expression_stack_count_ * kPointerSize)); |
+ int additional_offset = acting_as_js_function_ ? kPointerSize : 0; |
+ __ lea(esp, MemOperand(esp, ebx, times_pointer_size, additional_offset)); |
__ jmp(ecx); // Return to IC Miss stub, continuation still on stack. |
} |