| Index: src/arm/full-codegen-arm.cc
|
| diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc
|
| index d8bd27fbd4b275b9d02e3d9a35412d8108b6d7a3..882fd1547b4e11835886a33b4bd69c0da14cf3c7 100644
|
| --- a/src/arm/full-codegen-arm.cc
|
| +++ b/src/arm/full-codegen-arm.cc
|
| @@ -1410,10 +1410,7 @@ void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy,
|
| Operand(Smi::FromInt(proxy->VariableFeedbackSlot())));
|
| }
|
|
|
| - ContextualMode mode = (typeof_state == INSIDE_TYPEOF)
|
| - ? NOT_CONTEXTUAL
|
| - : CONTEXTUAL;
|
| - CallLoadIC(mode);
|
| + CallLoadIC(typeof_state);
|
| }
|
|
|
|
|
| @@ -1498,7 +1495,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
| __ mov(LoadIC::SlotRegister(),
|
| Operand(Smi::FromInt(proxy->VariableFeedbackSlot())));
|
| }
|
| - CallLoadIC(CONTEXTUAL);
|
| + CallLoadIC(NOT_INSIDE_TYPEOF);
|
| context()->Plug(r0);
|
| break;
|
| }
|
| @@ -2112,7 +2109,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
| __ mov(LoadIC::SlotRegister(),
|
| Operand(Smi::FromInt(expr->DoneFeedbackSlot())));
|
| }
|
| - CallLoadIC(NOT_CONTEXTUAL); // r0=result.done
|
| + CallLoadIC(); // r0=result.done
|
| Handle<Code> bool_ic = ToBooleanStub::GetUninitialized(isolate());
|
| CallIC(bool_ic);
|
| __ cmp(r0, Operand(0));
|
| @@ -2125,7 +2122,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
| __ mov(LoadIC::SlotRegister(),
|
| Operand(Smi::FromInt(expr->ValueFeedbackSlot())));
|
| }
|
| - CallLoadIC(NOT_CONTEXTUAL); // r0=result.value
|
| + CallLoadIC(); // r0=result.value
|
| context()->DropAndPlug(2, r0); // drop iter and g
|
| break;
|
| }
|
| @@ -2303,9 +2300,9 @@ void FullCodeGenerator::EmitNamedPropertyLoad(Property* prop) {
|
| if (FLAG_vector_ics) {
|
| __ mov(LoadIC::SlotRegister(),
|
| Operand(Smi::FromInt(prop->PropertyFeedbackSlot())));
|
| - CallLoadIC(NOT_CONTEXTUAL);
|
| + CallLoadIC(INSIDE_TYPEOF);
|
| } else {
|
| - CallLoadIC(NOT_CONTEXTUAL, prop->PropertyFeedbackId());
|
| + CallLoadIC(INSIDE_TYPEOF, prop->PropertyFeedbackId());
|
| }
|
| }
|
|
|
| @@ -4091,9 +4088,9 @@ void FullCodeGenerator::VisitCallRuntime(CallRuntime* expr) {
|
| if (FLAG_vector_ics) {
|
| __ mov(LoadIC::SlotRegister(),
|
| Operand(Smi::FromInt(expr->CallRuntimeFeedbackSlot())));
|
| - CallLoadIC(NOT_CONTEXTUAL);
|
| + CallLoadIC(INSIDE_TYPEOF);
|
| } else {
|
| - CallLoadIC(NOT_CONTEXTUAL, expr->CallRuntimeFeedbackId());
|
| + CallLoadIC(INSIDE_TYPEOF, expr->CallRuntimeFeedbackId());
|
| }
|
|
|
| // Push the target function under the receiver.
|
| @@ -4432,9 +4429,8 @@ void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
|
| __ mov(LoadIC::SlotRegister(),
|
| Operand(Smi::FromInt(proxy->VariableFeedbackSlot())));
|
| }
|
| - // Use a regular load, not a contextual load, to avoid a reference
|
| - // error.
|
| - CallLoadIC(NOT_CONTEXTUAL);
|
| + // We don't want a reference error if the load fails on the global object.
|
| + CallLoadIC();
|
| PrepareForBailout(expr, TOS_REG);
|
| context()->Plug(r0);
|
| } else if (proxy != NULL && proxy->var()->IsLookupSlot()) {
|
|
|