Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index ca51dc32e64b52ded204a2028971eddf71550955..950a129499126f0e6f42d58afe7d08ee8571114f 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -264,11 +264,7 @@ |
} else { |
type = ArgumentsAccessStub::NEW_SLOPPY_FAST; |
} |
- ArgumentsAccessStub::HasNewTarget has_new_target = |
- IsSubclassConstructor(info->function()->kind()) |
- ? ArgumentsAccessStub::HAS_NEW_TARGET |
- : ArgumentsAccessStub::NO_NEW_TARGET; |
- ArgumentsAccessStub stub(isolate(), type, has_new_target); |
+ ArgumentsAccessStub stub(isolate(), type); |
__ CallStub(&stub); |
SetVar(arguments, eax, ebx, edx); |
@@ -417,12 +413,7 @@ |
int no_frame_start = masm_->pc_offset(); |
__ pop(ebp); |
- int arg_count = info_->scope()->num_parameters() + 1; |
- if (FLAG_experimental_classes && |
- IsSubclassConstructor(info_->function()->kind())) { |
- arg_count++; |
- } |
- int arguments_bytes = arg_count * kPointerSize; |
+ int arguments_bytes = (info_->scope()->num_parameters() + 1) * kPointerSize; |
__ Ret(arguments_bytes, ecx); |
// Check that the size of the code used for returning is large enough |
// for the debugger's requirements. |
@@ -3146,10 +3137,6 @@ |
void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) { |
- Variable* new_target_var = scope()->DeclarationScope()->new_target_var(); |
- GetVar(eax, new_target_var); |
- __ push(eax); |
- |
SuperReference* super_ref = expr->expression()->AsSuperReference(); |
EmitLoadSuperConstructor(super_ref); |
__ push(result_register()); |
@@ -3191,10 +3178,9 @@ |
__ LoadHeapObject(ebx, FeedbackVector()); |
__ mov(edx, Immediate(SmiFromSlot(expr->CallFeedbackSlot()))); |
- CallConstructStub stub(isolate(), SUPER_CALL_RECORD_TARGET); |
+ // TODO(dslomov): use a different stub and propagate new.target. |
+ CallConstructStub stub(isolate(), RECORD_CONSTRUCTOR_TARGET); |
__ call(stub.GetCode(), RelocInfo::CONSTRUCT_CALL); |
- |
- __ Drop(1); |
RecordJSReturnSite(expr); |