Index: src/full-codegen/full-codegen.cc |
diff --git a/src/full-codegen/full-codegen.cc b/src/full-codegen/full-codegen.cc |
index 4da840d67e932e0a2288344ee996b6fd618ebd1d..da33c825e1d5ad43640549515e06f800455302f9 100644 |
--- a/src/full-codegen/full-codegen.cc |
+++ b/src/full-codegen/full-codegen.cc |
@@ -853,30 +853,17 @@ void FullCodeGenerator::VisitProperty(Property* expr) { |
Expression* key = expr->key(); |
if (key->IsPropertyName()) { |
- if (!expr->IsSuperAccess()) { |
- VisitForAccumulatorValue(expr->obj()); |
- __ Move(LoadDescriptor::ReceiverRegister(), result_register()); |
- EmitNamedPropertyLoad(expr); |
- } else { |
- VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var()); |
- VisitForStackValue( |
- expr->obj()->AsSuperPropertyReference()->home_object()); |
- EmitNamedSuperPropertyLoad(expr); |
- } |
+ DCHECK(!expr->IsSuperAccess()); |
+ VisitForAccumulatorValue(expr->obj()); |
+ __ Move(LoadDescriptor::ReceiverRegister(), result_register()); |
+ EmitNamedPropertyLoad(expr); |
} else { |
- if (!expr->IsSuperAccess()) { |
- VisitForStackValue(expr->obj()); |
- VisitForAccumulatorValue(expr->key()); |
- __ Move(LoadDescriptor::NameRegister(), result_register()); |
- PopOperand(LoadDescriptor::ReceiverRegister()); |
- EmitKeyedPropertyLoad(expr); |
- } else { |
- VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var()); |
- VisitForStackValue( |
- expr->obj()->AsSuperPropertyReference()->home_object()); |
- VisitForStackValue(expr->key()); |
- EmitKeyedSuperPropertyLoad(expr); |
- } |
+ DCHECK(!expr->IsSuperAccess()); |
+ VisitForStackValue(expr->obj()); |
+ VisitForAccumulatorValue(expr->key()); |
+ __ Move(LoadDescriptor::NameRegister(), result_register()); |
+ PopOperand(LoadDescriptor::ReceiverRegister()); |
+ EmitKeyedPropertyLoad(expr); |
} |
PrepareForBailoutForId(expr->LoadId(), BailoutState::TOS_REGISTER); |
context()->Plug(result_register()); |
@@ -1059,17 +1046,6 @@ void FullCodeGenerator::EmitNamedPropertyLoad(Property* prop) { |
CallLoadIC(prop->PropertyFeedbackSlot(), key->value()); |
} |
-void FullCodeGenerator::EmitNamedSuperPropertyLoad(Property* prop) { |
- // Stack: receiver, home_object |
- SetExpressionPosition(prop); |
- Literal* key = prop->key()->AsLiteral(); |
- DCHECK(!key->value()->IsSmi()); |
- DCHECK(prop->IsSuperAccess()); |
- |
- PushOperand(key->value()); |
- CallRuntimeWithOperands(Runtime::kLoadFromSuper); |
-} |
- |
void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) { |
SetExpressionPosition(prop); |
@@ -1080,12 +1056,6 @@ void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) { |
RestoreContext(); |
} |
-void FullCodeGenerator::EmitKeyedSuperPropertyLoad(Property* prop) { |
- // Stack: receiver, home_object, key. |
- SetExpressionPosition(prop); |
- CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); |
-} |
- |
void FullCodeGenerator::EmitPropertyKey(LiteralProperty* property, |
BailoutId bailout_id) { |
VisitForStackValue(property->key()); |
@@ -1404,12 +1374,6 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
EmitKeyedCallWithLoadIC(expr, property->key()); |
break; |
} |
- case Call::NAMED_SUPER_PROPERTY_CALL: |
- EmitSuperCallWithLoadIC(expr); |
- break; |
- case Call::KEYED_SUPER_PROPERTY_CALL: |
- EmitKeyedSuperCallWithLoadIC(expr); |
- break; |
case Call::OTHER_CALL: |
// Call to an arbitrary expression not handled specially above. |
VisitForStackValue(callee); |
@@ -1418,6 +1382,8 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
// Emit function call. |
EmitCall(expr); |
break; |
+ case Call::NAMED_SUPER_PROPERTY_CALL: |
+ case Call::KEYED_SUPER_PROPERTY_CALL: |
case Call::SUPER_CALL: |
case Call::WITH_CALL: |
UNREACHABLE(); |