| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 6184bb9e46b25c6a22015b216a3e60046a537f2d..e3bbac50e0ccd6cc789711f353d81be305769d92 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -5376,6 +5376,20 @@ void HOptimizedGraphBuilder::VisitVariableProxy(VariableProxy* expr) {
|
| }
|
|
|
| Handle<GlobalObject> global(current_info()->global_object());
|
| +
|
| + Handle<GlobalContextTable> global_contexts(
|
| + global->native_context()->global_context_table());
|
| + GlobalContextTable::LookupResult lookup;
|
| + if (GlobalContextTable::Lookup(global_contexts, variable->name(),
|
| + &lookup)) {
|
| + Handle<Context> global_context = GlobalContextTable::GetContext(
|
| + global_contexts, lookup.context_index);
|
| + HInstruction* result = New<HLoadNamedField>(
|
| + Add<HConstant>(global_context), static_cast<HValue*>(NULL),
|
| + HObjectAccess::ForContextSlot(lookup.slot_index));
|
| + return ast_context()->ReturnInstruction(result, expr->id());
|
| + }
|
| +
|
| LookupIterator it(global, variable->name(),
|
| LookupIterator::OWN_SKIP_INTERCEPTOR);
|
| GlobalPropertyAccess type = LookupGlobalProperty(variable, &it, LOAD);
|
|
|