| Index: src/ia32/full-codegen-ia32.cc
|
| diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc
|
| index f27dd21d5a13fbb541c472ebf1c5d31f4246570b..1fd2cb90ca0801e4124404f90f5c20a9eb374d93 100644
|
| --- a/src/ia32/full-codegen-ia32.cc
|
| +++ b/src/ia32/full-codegen-ia32.cc
|
| @@ -2166,7 +2166,7 @@
|
| __ mov(load_receiver, Operand(esp, kPointerSize));
|
| __ mov(LoadDescriptor::SlotRegister(),
|
| Immediate(SmiFromSlot(expr->KeyedLoadFeedbackSlot())));
|
| - Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate()).code();
|
| + Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate(), SLOPPY).code();
|
| CallIC(ic, TypeFeedbackId::None());
|
| __ mov(edi, eax);
|
| __ mov(Operand(esp, 2 * kPointerSize), edi);
|
| @@ -2335,7 +2335,7 @@
|
| __ mov(LoadDescriptor::NameRegister(), Immediate(key->value()));
|
| __ mov(LoadDescriptor::SlotRegister(),
|
| Immediate(SmiFromSlot(prop->PropertyFeedbackSlot())));
|
| - CallLoadIC(NOT_CONTEXTUAL);
|
| + CallLoadIC(NOT_CONTEXTUAL, language_mode());
|
| }
|
|
|
|
|
| @@ -2347,13 +2347,14 @@
|
| DCHECK(prop->IsSuperAccess());
|
|
|
| __ push(Immediate(key->value()));
|
| - __ CallRuntime(Runtime::kLoadFromSuper, 3);
|
| + __ push(Immediate(Smi::FromInt(language_mode())));
|
| + __ CallRuntime(Runtime::kLoadFromSuper, 4);
|
| }
|
|
|
|
|
| void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) {
|
| SetSourcePosition(prop->position());
|
| - Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate()).code();
|
| + Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate(), language_mode()).code();
|
| __ mov(LoadDescriptor::SlotRegister(),
|
| Immediate(SmiFromSlot(prop->PropertyFeedbackSlot())));
|
| CallIC(ic);
|
| @@ -2362,9 +2363,10 @@
|
|
|
| void FullCodeGenerator::EmitKeyedSuperPropertyLoad(Property* prop) {
|
| // Stack: receiver, home_object, key.
|
| + __ push(Immediate(Smi::FromInt(language_mode())));
|
| SetSourcePosition(prop->position());
|
|
|
| - __ CallRuntime(Runtime::kLoadKeyedFromSuper, 3);
|
| + __ CallRuntime(Runtime::kLoadKeyedFromSuper, 4);
|
| }
|
|
|
|
|
| @@ -2894,13 +2896,15 @@
|
| __ push(eax);
|
| __ push(Operand(esp, kPointerSize * 2));
|
| __ push(Immediate(key->value()));
|
| + __ push(Immediate(Smi::FromInt(language_mode())));
|
| // Stack here:
|
| // - home_object
|
| // - this (receiver)
|
| // - 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.
|
| __ mov(Operand(esp, kPointerSize), eax);
|
| @@ -2950,13 +2954,15 @@
|
| __ push(eax);
|
| __ push(Operand(esp, kPointerSize * 2));
|
| VisitForStackValue(prop->key());
|
| + __ push(Immediate(Smi::FromInt(language_mode())));
|
| // Stack here:
|
| // - home_object
|
| // - this (receiver)
|
| // - 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.
|
| __ mov(Operand(esp, kPointerSize), eax);
|
|
|