Index: src/full-codegen/ia32/full-codegen-ia32.cc |
diff --git a/src/full-codegen/ia32/full-codegen-ia32.cc b/src/full-codegen/ia32/full-codegen-ia32.cc |
index 569aa8d4d471950fa27a39cde8ce892e840bd2b4..9ee08abbda25075654eb3d4346b8d32e425ec643 100644 |
--- a/src/full-codegen/ia32/full-codegen-ia32.cc |
+++ b/src/full-codegen/ia32/full-codegen-ia32.cc |
@@ -1122,33 +1122,11 @@ void FullCodeGenerator::EmitLoadGlobalCheckExtensions(VariableProxy* proxy, |
context = temp; |
} |
// If no outer scope calls eval, we do not need to check more |
- // context extensions. If we have reached an eval scope, we check |
- // all extensions from this point. |
- if (!s->outer_scope_calls_sloppy_eval() || s->is_eval_scope()) break; |
+ // context extensions. |
+ if (!s->outer_scope_calls_sloppy_eval()) break; |
s = s->outer_scope(); |
} |
- if (s != NULL && s->is_eval_scope()) { |
- // Loop up the context chain. There is no frame effect so it is |
- // safe to use raw labels here. |
- Label next, fast; |
- if (!context.is(temp)) { |
- __ mov(temp, context); |
- } |
- __ bind(&next); |
- // Terminate at native context. |
- __ cmp(FieldOperand(temp, HeapObject::kMapOffset), |
- Immediate(isolate()->factory()->native_context_map())); |
- __ j(equal, &fast, Label::kNear); |
- // Check that extension is "the hole". |
- __ JumpIfNotRoot(ContextOperand(temp, Context::EXTENSION_INDEX), |
- Heap::kTheHoleValueRootIndex, slow); |
- // Load next context in chain. |
- __ mov(temp, ContextOperand(temp, Context::PREVIOUS_INDEX)); |
- __ jmp(&next); |
- __ bind(&fast); |
- } |
- |
// All extension objects were empty and it is safe to use a normal global |
// load machinery. |
EmitGlobalVariableLoad(proxy, typeof_mode); |