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 946ed8f83c3c847fa0284c7c90dd00428cbf4b00..763c97f604dfd679d02db38bd0397cf55ce63819 100644 |
--- a/src/full-codegen/ia32/full-codegen-ia32.cc |
+++ b/src/full-codegen/ia32/full-codegen-ia32.cc |
@@ -2975,7 +2975,7 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) { |
// Call the construct call builtin that handles allocation and |
// constructor invocation. |
- SetConstructCallPosition(expr); |
+ SetConstructCallPosition(expr, arg_count); |
// Load function and argument count into edi and eax. |
__ Move(eax, Immediate(arg_count)); |
@@ -3011,7 +3011,7 @@ void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) { |
// Call the construct call builtin that handles allocation and |
// constructor invocation. |
- SetConstructCallPosition(expr); |
+ SetConstructCallPosition(expr, arg_count); |
// Load new target into ecx. |
VisitForAccumulatorValue(super_call_ref->new_target_var()); |
@@ -3752,6 +3752,10 @@ void FullCodeGenerator::EmitDefaultConstructorCallSuper(CallRuntime* expr) { |
VisitForStackValue(args->at(0)); |
VisitForStackValue(args->at(1)); |
+ // Call the construct call builtin that handles allocation and |
+ // constructor invocation. |
+ SetConstructCallPosition(expr, 0); |
+ |
// Check if the calling frame is an arguments adaptor frame. |
Label adaptor_frame, args_set_up, runtime; |
__ mov(edx, Operand(ebp, StandardFrameConstants::kCallerFPOffset)); |