| Index: src/ia32/full-codegen-ia32.cc
|
| diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc
|
| index d7d8438568545fb1b2ea845b6a790887c593ad57..6b9f307b000dab1bfd8f08924497cd315969419d 100644
|
| --- a/src/ia32/full-codegen-ia32.cc
|
| +++ b/src/ia32/full-codegen-ia32.cc
|
| @@ -3142,6 +3142,8 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) {
|
|
|
|
|
| void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) {
|
| + if (!ValidateSuperCall(expr)) return;
|
| +
|
| Variable* new_target_var = scope()->DeclarationScope()->new_target_var();
|
| GetVar(eax, new_target_var);
|
| __ push(eax);
|
| @@ -4078,6 +4080,8 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) {
|
| EmitLoadSuperConstructor();
|
| __ push(result_register());
|
|
|
| + SetSourcePosition(expr->position());
|
| +
|
| // Check if the calling frame is an arguments adaptor frame.
|
| Label adaptor_frame, args_set_up, runtime;
|
| __ mov(edx, Operand(ebp, StandardFrameConstants::kCallerFPOffset));
|
| @@ -4108,6 +4112,7 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) {
|
| }
|
|
|
| __ bind(&args_set_up);
|
| +
|
| __ mov(edi, Operand(esp, eax, times_pointer_size, 0));
|
|
|
| CallConstructStub stub(isolate(), SUPER_CONSTRUCTOR_CALL);
|
|
|