| Index: src/mips64/full-codegen-mips64.cc
|
| diff --git a/src/mips64/full-codegen-mips64.cc b/src/mips64/full-codegen-mips64.cc
|
| index 39abc3fee6be7219754b7441dc3c9a5c1de3834c..6c06cf72aef911de19cc8d3ae0fa90399ac6c396 100644
|
| --- a/src/mips64/full-codegen-mips64.cc
|
| +++ b/src/mips64/full-codegen-mips64.cc
|
| @@ -2226,7 +2226,7 @@
|
| __ ld(load_name, MemOperand(sp, 2 * kPointerSize));
|
| __ li(LoadDescriptor::SlotRegister(),
|
| Operand(SmiFromSlot(expr->KeyedLoadFeedbackSlot())));
|
| - Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate()).code();
|
| + Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate(), SLOPPY).code();
|
| CallIC(ic, TypeFeedbackId::None());
|
| __ mov(a0, v0);
|
| __ mov(a1, a0);
|
| @@ -2399,7 +2399,7 @@
|
| __ li(LoadDescriptor::NameRegister(), Operand(key->value()));
|
| __ li(LoadDescriptor::SlotRegister(),
|
| Operand(SmiFromSlot(prop->PropertyFeedbackSlot())));
|
| - CallLoadIC(NOT_CONTEXTUAL);
|
| + CallLoadIC(NOT_CONTEXTUAL, language_mode());
|
| }
|
|
|
|
|
| @@ -2411,14 +2411,15 @@
|
| DCHECK(prop->IsSuperAccess());
|
|
|
| __ Push(key->value());
|
| - __ CallRuntime(Runtime::kLoadFromSuper, 3);
|
| + __ Push(Smi::FromInt(language_mode()));
|
| + __ CallRuntime(Runtime::kLoadFromSuper, 4);
|
| }
|
|
|
|
|
| void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) {
|
| SetSourcePosition(prop->position());
|
| // Call keyed load IC. It has register arguments receiver and key.
|
| - Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate()).code();
|
| + Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate(), language_mode()).code();
|
| __ li(LoadDescriptor::SlotRegister(),
|
| Operand(SmiFromSlot(prop->PropertyFeedbackSlot())));
|
| CallIC(ic);
|
| @@ -2427,9 +2428,10 @@
|
|
|
| void FullCodeGenerator::EmitKeyedSuperPropertyLoad(Property* prop) {
|
| // Stack: receiver, home_object, key.
|
| + __ Push(Smi::FromInt(language_mode()));
|
| SetSourcePosition(prop->position());
|
|
|
| - __ CallRuntime(Runtime::kLoadKeyedFromSuper, 3);
|
| + __ CallRuntime(Runtime::kLoadKeyedFromSuper, 4);
|
| }
|
|
|
|
|
| @@ -2978,6 +2980,7 @@
|
| VisitForAccumulatorValue(super_ref->this_var());
|
| __ Push(scratch, v0, v0, scratch);
|
| __ Push(key->value());
|
| + __ Push(Smi::FromInt(language_mode()));
|
|
|
| // Stack here:
|
| // - home_object
|
| @@ -2985,7 +2988,8 @@
|
| // - this (receiver) <-- LoadFromSuper will pop here and below.
|
| // - home_object
|
| // - key
|
| - __ CallRuntime(Runtime::kLoadFromSuper, 3);
|
| + // - language_mode
|
| + __ CallRuntime(Runtime::kLoadFromSuper, 4);
|
|
|
| // Replace home_object with target function.
|
| __ sd(v0, MemOperand(sp, kPointerSize));
|
| @@ -3036,6 +3040,7 @@
|
| VisitForAccumulatorValue(super_ref->this_var());
|
| __ Push(scratch, v0, v0, scratch);
|
| VisitForStackValue(prop->key());
|
| + __ Push(Smi::FromInt(language_mode()));
|
|
|
| // Stack here:
|
| // - home_object
|
| @@ -3043,7 +3048,8 @@
|
| // - this (receiver) <-- LoadKeyedFromSuper will pop here and below.
|
| // - home_object
|
| // - key
|
| - __ CallRuntime(Runtime::kLoadKeyedFromSuper, 3);
|
| + // - language_mode
|
| + __ CallRuntime(Runtime::kLoadKeyedFromSuper, 4);
|
|
|
| // Replace home_object with target function.
|
| __ sd(v0, MemOperand(sp, kPointerSize));
|
|
|