Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 6ca22154cde7446faf52df4bb2fda040724c873c..d403c5d99b8208282557e160f8de64aafdc49e6a 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -2079,7 +2079,9 @@ void LCodeGen::DoStoreGlobalGeneric(LStoreGlobalGeneric* instr) { |
ASSERT(ToRegister(instr->value()).is(eax)); |
__ mov(ecx, instr->name()); |
- Handle<Code> ic = isolate()->builtins()->StoreIC_Initialize(); |
+ Handle<Code> ic = instr->strict_mode() |
+ ? isolate()->builtins()->StoreIC_Initialize_Strict() |
+ : isolate()->builtins()->StoreIC_Initialize(); |
CallCode(ic, RelocInfo::CODE_TARGET_CONTEXT, instr); |
} |
@@ -2971,7 +2973,7 @@ void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) { |
ASSERT(ToRegister(instr->value()).is(eax)); |
__ mov(ecx, instr->name()); |
- Handle<Code> ic = info_->is_strict_mode() |
+ Handle<Code> ic = instr->strict_mode() |
? isolate()->builtins()->StoreIC_Initialize_Strict() |
: isolate()->builtins()->StoreIC_Initialize(); |
CallCode(ic, RelocInfo::CODE_TARGET, instr); |
@@ -3071,7 +3073,7 @@ void LCodeGen::DoStoreKeyedGeneric(LStoreKeyedGeneric* instr) { |
ASSERT(ToRegister(instr->key()).is(ecx)); |
ASSERT(ToRegister(instr->value()).is(eax)); |
- Handle<Code> ic = info_->is_strict_mode() |
+ Handle<Code> ic = instr->strict_mode() |
? isolate()->builtins()->KeyedStoreIC_Initialize_Strict() |
: isolate()->builtins()->KeyedStoreIC_Initialize(); |
CallCode(ic, RelocInfo::CODE_TARGET, instr); |