aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/modules.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/modules.h')
-rw-r--r--deps/v8/src/modules.h19
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