| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index 7734f96f28a970b81d9e16a64ef030d63a435cd2..09012b6f9bcb981c9a63ca54c5d24111a79bd475 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -100,7 +100,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->function_mode_ = JS_FUNCTION_STUB_MODE;
|
| descriptor->deoptimization_handler_ =
|
| FUNCTION_ADDR(ArrayConstructor_StubFailure);
|
| }
|
| @@ -7825,8 +7825,10 @@ 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 = function_mode_ == JS_FUNCTION_STUB_MODE
|
| + ? kPointerSize
|
| + : 0;
|
| + __ lea(esp, MemOperand(esp, ebx, times_pointer_size, additional_offset));
|
| __ jmp(ecx); // Return to IC Miss stub, continuation still on stack.
|
| }
|
|
|
|
|