Chromium Code Reviews| Index: src/contexts.h |
| diff --git a/src/contexts.h b/src/contexts.h |
| index d154b82ca06e2d547219b101b512cb204b807a40..6ba06d3dd6ac38719021ca035e00b71695bbc3aa 100644 |
| --- a/src/contexts.h |
| +++ b/src/contexts.h |
| @@ -190,6 +190,8 @@ enum BindingFlags { |
| // Dynamically declared variables/functions are also added |
| // to lazily allocated extension object. Context::Lookup |
| // searches the extension object for properties. |
| +// For block contexts, contains the respective ScopeInfo. |
| +// For module contexts, points back to the respective JSModule. |
| // |
| // [ global ] A pointer to the global object. Provided for quick |
| // access to the global object from inside the code (since |
| @@ -217,7 +219,7 @@ class Context: public FixedArray { |
| // The extension slot is used for either the global object (in global |
| // contexts), eval extension object (function contexts), subject of with |
| // (with contexts), or the variable name (catch contexts), the serialized |
| - // scope info (block contexts). |
| + // scope info (block contexts), or the module instance (module contexts). |
| EXTENSION_INDEX, |
| GLOBAL_INDEX, |
| MIN_CONTEXT_SLOTS, |
| @@ -303,7 +305,7 @@ class Context: public FixedArray { |
| Context* previous() { |
| Object* result = unchecked_previous(); |
| - ASSERT(IsBootstrappingOrContext(result)); |
| + ASSERT(IsBootstrappingOrValidContext(result)); |
| return reinterpret_cast<Context*>(result); |
| } |
| void set_previous(Context* context) { set(PREVIOUS_INDEX, context); } |
| @@ -312,6 +314,9 @@ class Context: public FixedArray { |
| Object* extension() { return get(EXTENSION_INDEX); } |
| void set_extension(Object* object) { set(EXTENSION_INDEX, object); } |
| + JSModule* module() { return JSModule::cast(get(EXTENSION_INDEX)); } |
| + void set_module(JSModule* module) { set(EXTENSION_INDEX, module); } |
| + |
| // Get the context where var declarations will be hoisted to, which |
| // may be the context itself. |
| Context* declaration_context(); |
| @@ -426,8 +431,8 @@ class Context: public FixedArray { |
| #ifdef DEBUG |
| // Bootstrapping-aware type checks. |
| - static bool IsBootstrappingOrContext(Object* object); |
| - static bool IsBootstrappingOrGlobalObject(Object* object); |
| + bool IsBootstrappingOrValidContext(Object* object); |
|
Michael Starzinger
2012/07/06 10:53:22
Can we make these two debug methods static again a
rossberg
2012/07/06 15:39:28
Done.
|
| + bool IsBootstrappingOrGlobalObject(Object* object); |
| #endif |
| }; |