OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "bootstrapper.h" | 7 #include "bootstrapper.h" |
8 #include "debug.h" | 8 #include "debug.h" |
9 #include "scopeinfo.h" | 9 #include "scopeinfo.h" |
10 | 10 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 Handle<ScopeInfo> scope_info; | 130 Handle<ScopeInfo> scope_info; |
131 if (context->IsFunctionContext()) { | 131 if (context->IsFunctionContext()) { |
132 scope_info = Handle<ScopeInfo>( | 132 scope_info = Handle<ScopeInfo>( |
133 context->closure()->shared()->scope_info(), isolate); | 133 context->closure()->shared()->scope_info(), isolate); |
134 } else { | 134 } else { |
135 scope_info = Handle<ScopeInfo>( | 135 scope_info = Handle<ScopeInfo>( |
136 ScopeInfo::cast(context->extension()), isolate); | 136 ScopeInfo::cast(context->extension()), isolate); |
137 } | 137 } |
138 VariableMode mode; | 138 VariableMode mode; |
139 InitializationFlag init_flag; | 139 InitializationFlag init_flag; |
140 int slot_index = scope_info->ContextSlotIndex(*name, &mode, &init_flag); | 140 int slot_index = |
| 141 ScopeInfo::ContextSlotIndex(scope_info, name, &mode, &init_flag); |
141 ASSERT(slot_index < 0 || slot_index >= MIN_CONTEXT_SLOTS); | 142 ASSERT(slot_index < 0 || slot_index >= MIN_CONTEXT_SLOTS); |
142 if (slot_index >= 0) { | 143 if (slot_index >= 0) { |
143 if (FLAG_trace_contexts) { | 144 if (FLAG_trace_contexts) { |
144 PrintF("=> found local in context slot %d (mode = %d)\n", | 145 PrintF("=> found local in context slot %d (mode = %d)\n", |
145 slot_index, mode); | 146 slot_index, mode); |
146 } | 147 } |
147 *index = slot_index; | 148 *index = slot_index; |
148 // Note: Fixed context slots are statically allocated by the compiler. | 149 // Note: Fixed context slots are statically allocated by the compiler. |
149 // Statically allocated variables always have a statically known mode, | 150 // Statically allocated variables always have a statically known mode, |
150 // which is the mode with which they were declared when added to the | 151 // which is the mode with which they were declared when added to the |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 bool Context::IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object) { | 367 bool Context::IsBootstrappingOrGlobalObject(Isolate* isolate, Object* object) { |
367 // During bootstrapping we allow all objects to pass as global | 368 // During bootstrapping we allow all objects to pass as global |
368 // objects. This is necessary to fix circular dependencies. | 369 // objects. This is necessary to fix circular dependencies. |
369 return isolate->heap()->gc_state() != Heap::NOT_IN_GC || | 370 return isolate->heap()->gc_state() != Heap::NOT_IN_GC || |
370 isolate->bootstrapper()->IsActive() || | 371 isolate->bootstrapper()->IsActive() || |
371 object->IsGlobalObject(); | 372 object->IsGlobalObject(); |
372 } | 373 } |
373 #endif | 374 #endif |
374 | 375 |
375 } } // namespace v8::internal | 376 } } // namespace v8::internal |
OLD | NEW |