| Index: src/full-codegen/ia32/full-codegen-ia32.cc
|
| diff --git a/src/full-codegen/ia32/full-codegen-ia32.cc b/src/full-codegen/ia32/full-codegen-ia32.cc
|
| index 285975cbd9ed8fac8855b1e5fe49bb33a33fc4fc..24a1113d87d5e8be1a0b9e5360f978998fbd252d 100644
|
| --- a/src/full-codegen/ia32/full-codegen-ia32.cc
|
| +++ b/src/full-codegen/ia32/full-codegen-ia32.cc
|
| @@ -3916,9 +3916,6 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) {
|
| VisitForStackValue(args->at(0));
|
| VisitForStackValue(args->at(1));
|
|
|
| - // Load original constructor into ecx.
|
| - __ mov(ecx, Operand(esp, 1 * kPointerSize));
|
| -
|
| // Check if the calling frame is an arguments adaptor frame.
|
| Label adaptor_frame, args_set_up, runtime;
|
| __ mov(edx, Operand(ebp, StandardFrameConstants::kCallerFPOffset));
|
| @@ -3948,10 +3945,9 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) {
|
|
|
| __ bind(&args_set_up);
|
|
|
| - __ mov(edi, Operand(esp, eax, times_pointer_size, 0));
|
| - __ mov(ebx, Immediate(isolate()->factory()->undefined_value()));
|
| - CallConstructStub stub(isolate(), SUPER_CONSTRUCTOR_CALL);
|
| - __ call(stub.GetCode(), RelocInfo::CONSTRUCT_CALL);
|
| + __ mov(edx, Operand(esp, eax, times_pointer_size, 1 * kPointerSize));
|
| + __ mov(edi, Operand(esp, eax, times_pointer_size, 0 * kPointerSize));
|
| + __ Call(isolate()->builtins()->Construct(), RelocInfo::CONSTRUCT_CALL);
|
|
|
| // Restore context register.
|
| __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
|
|
|