diff options
Diffstat (limited to 'deps/v8/src/modules.h')
-rw-r--r-- | deps/v8/src/modules.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/deps/v8/src/modules.h b/deps/v8/src/modules.h index 7dd7e26716..33afd6128d 100644 --- a/deps/v8/src/modules.h +++ b/deps/v8/src/modules.h @@ -20,7 +20,7 @@ class ModuleDescriptor : public ZoneObject { // Factory methods. static ModuleDescriptor* New(Zone* zone) { - return new (zone) ModuleDescriptor(); + return new (zone) ModuleDescriptor(zone); } // --------------------------------------------------------------------------- @@ -31,6 +31,10 @@ class ModuleDescriptor : public ZoneObject { void AddLocalExport(const AstRawString* export_name, const AstRawString* local_name, Zone* zone, bool* ok); + // Add module_specifier to the list of requested modules, + // if not already present. + void AddModuleRequest(const AstRawString* module_specifier, Zone* zone); + // Do not allow any further refinements, directly or through unification. void Freeze() { frozen_ = true; } @@ -61,6 +65,10 @@ class ModuleDescriptor : public ZoneObject { const AstRawString* LookupLocalExport(const AstRawString* export_name, Zone* zone); + const ZoneList<const AstRawString*>& requested_modules() const { + return requested_modules_; + } + // --------------------------------------------------------------------------- // Iterators. @@ -95,11 +103,16 @@ class ModuleDescriptor : public ZoneObject { // --------------------------------------------------------------------------- // Implementation. private: + explicit ModuleDescriptor(Zone* zone) + : frozen_(false), + exports_(NULL), + requested_modules_(1, zone), + index_(-1) {} + bool frozen_; ZoneHashMap* exports_; // Module exports and their types (allocated lazily) + ZoneList<const AstRawString*> requested_modules_; int index_; - - ModuleDescriptor() : frozen_(false), exports_(NULL), index_(-1) {} }; } } // namespace v8::internal |