| Index: src/ia32/lithium-codegen-ia32.cc
|
| diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc
|
| index d4cbbcec8fd609f1029221de88cce9b027e83327..4288f1b41e7ef43dbe3efc151cb9341138db5561 100644
|
| --- a/src/ia32/lithium-codegen-ia32.cc
|
| +++ b/src/ia32/lithium-codegen-ia32.cc
|
| @@ -144,7 +144,7 @@ bool LCodeGen::GeneratePrologue() {
|
| // with undefined when called as functions (without an explicit
|
| // receiver object). ecx is zero for method calls and non-zero for
|
| // function calls.
|
| - if (info_->is_strict_mode() || info_->is_native()) {
|
| + if (!info_->is_classic_mode() || info_->is_native()) {
|
| Label ok;
|
| __ test(ecx, Operand(ecx));
|
| __ j(zero, &ok, Label::kNear);
|
| @@ -2148,7 +2148,7 @@ void LCodeGen::DoStoreGlobalGeneric(LStoreGlobalGeneric* instr) {
|
| ASSERT(ToRegister(instr->value()).is(eax));
|
|
|
| __ mov(ecx, instr->name());
|
| - Handle<Code> ic = instr->strict_mode()
|
| + Handle<Code> ic = (instr->strict_mode_flag() == kStrictMode)
|
| ? isolate()->builtins()->StoreIC_Initialize_Strict()
|
| : isolate()->builtins()->StoreIC_Initialize();
|
| CallCode(ic, RelocInfo::CODE_TARGET_CONTEXT, instr);
|
| @@ -3213,7 +3213,7 @@ void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) {
|
| ASSERT(ToRegister(instr->value()).is(eax));
|
|
|
| __ mov(ecx, instr->name());
|
| - Handle<Code> ic = instr->strict_mode()
|
| + Handle<Code> ic = (instr->strict_mode_flag() == kStrictMode)
|
| ? isolate()->builtins()->StoreIC_Initialize_Strict()
|
| : isolate()->builtins()->StoreIC_Initialize();
|
| CallCode(ic, RelocInfo::CODE_TARGET, instr);
|
| @@ -3345,7 +3345,7 @@ void LCodeGen::DoStoreKeyedGeneric(LStoreKeyedGeneric* instr) {
|
| ASSERT(ToRegister(instr->key()).is(ecx));
|
| ASSERT(ToRegister(instr->value()).is(eax));
|
|
|
| - Handle<Code> ic = instr->strict_mode()
|
| + Handle<Code> ic = (instr->strict_mode_flag() == kStrictMode)
|
| ? isolate()->builtins()->KeyedStoreIC_Initialize_Strict()
|
| : isolate()->builtins()->KeyedStoreIC_Initialize();
|
| CallCode(ic, RelocInfo::CODE_TARGET, instr);
|
| @@ -4313,7 +4313,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) {
|
| Handle<SharedFunctionInfo> shared_info = instr->shared_info();
|
| bool pretenure = instr->hydrogen()->pretenure();
|
| if (!pretenure && shared_info->num_literals() == 0) {
|
| - FastNewClosureStub stub(shared_info->strict_mode_flag());
|
| + FastNewClosureStub stub(shared_info->language_mode());
|
| __ push(Immediate(shared_info));
|
| CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
|
| } else {
|
|
|