Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index 599231ef7fb1f4f1a98bfd6233b7c216180e2394..7508c01e4998473eb00ffd20ab7ce4700241e6a3 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -262,10 +262,6 @@ |
// function, receiver address, parameter count. |
// The stub will rewrite receiever and parameter count if the previous |
// stack frame was an arguments adapter frame. |
- ArgumentsAccessStub::HasNewTarget has_new_target = |
- IsSubclassConstructor(info->function()->kind()) |
- ? ArgumentsAccessStub::HAS_NEW_TARGET |
- : ArgumentsAccessStub::NO_NEW_TARGET; |
ArgumentsAccessStub::Type type; |
if (is_strict(language_mode())) { |
type = ArgumentsAccessStub::NEW_STRICT; |
@@ -274,7 +270,7 @@ |
} else { |
type = ArgumentsAccessStub::NEW_SLOPPY_FAST; |
} |
- ArgumentsAccessStub stub(isolate(), type, has_new_target); |
+ ArgumentsAccessStub stub(isolate(), type); |
__ CallStub(&stub); |
SetVar(arguments, r0, r1, r2); |
@@ -454,12 +450,7 @@ |
// Make sure that the constant pool is not emitted inside of the return |
// sequence. |
{ Assembler::BlockConstPoolScope block_const_pool(masm_); |
- int32_t arg_count = info_->scope()->num_parameters() + 1; |
- if (FLAG_experimental_classes && |
- IsSubclassConstructor(info_->function()->kind())) { |
- arg_count++; |
- } |
- int32_t sp_delta = arg_count * kPointerSize; |
+ int32_t sp_delta = (info_->scope()->num_parameters() + 1) * kPointerSize; |
CodeGenerator::RecordPositions(masm_, function()->end_position() - 1); |
// TODO(svenpanne) The code below is sometimes 4 words, sometimes 5! |
PredictableCodeSizeScope predictable(masm_, -1); |
@@ -3266,11 +3257,6 @@ |
void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) { |
- Comment cmnt(masm_, "[ SuperConstructorCall"); |
- Variable* new_target_var = scope()->DeclarationScope()->new_target_var(); |
- GetVar(result_register(), new_target_var); |
- __ Push(result_register()); |
- |
SuperReference* super_ref = expr->expression()->AsSuperReference(); |
EmitLoadSuperConstructor(super_ref); |
__ push(result_register()); |
@@ -3314,10 +3300,9 @@ |
__ Move(r2, FeedbackVector()); |
__ mov(r3, Operand(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); |