Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(788)

Unified Diff: src/ast/modules.h

Issue 2302783002: [modules] Basic support of exports (Closed)
Patch Set: . Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ast/ast.h ('k') | src/ast/modules.cc » ('j') | src/contexts.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ast/modules.h
diff --git a/src/ast/modules.h b/src/ast/modules.h
index 7e78ac2bad9927332d1ee64a5cc5dfa252d16c0d..5d6ffaf6fb5ef159538308957a24f10b6f3ccce2 100644
--- a/src/ast/modules.h
+++ b/src/ast/modules.h
@@ -5,6 +5,11 @@
#ifndef V8_AST_MODULES_H_
#define V8_AST_MODULES_H_
+#ifdef DEBUG
+// TODO: Remove before landing.
+#include "src/ast/ast-value-factory.h"
+#endif // DEBUG
+
#include "src/parsing/scanner.h" // Only for Scanner::Location.
#include "src/pending-compilation-error-handler.h"
#include "src/zone-containers.h"
@@ -14,6 +19,7 @@ namespace internal {
class AstRawString;
+class ModuleInfoEntry;
class ModuleDescriptor : public ZoneObject {
@@ -80,6 +86,7 @@ class ModuleDescriptor : public ZoneObject {
const AstRawString* import_name;
const AstRawString* module_request;
+ // TODO(neis): Remove local_name component?
explicit Entry(Scanner::Location loc)
: location(loc),
export_name(nullptr),
@@ -87,9 +94,27 @@ class ModuleDescriptor : public ZoneObject {
import_name(nullptr),
module_request(nullptr) {}
- Handle<FixedArray> Serialize(Isolate* isolate) const;
+#ifdef DEBUG
+ // TODO: Remove before landing.
+ void Print() const {
+ PrintF("export name: ");
+ if (export_name != nullptr) {
+ PrintF("%.*s\n", export_name->length(), export_name->raw_data());
+ }
+ PrintF("local name: ");
+ if (local_name != nullptr) {
+ PrintF("%.*s\n", local_name->length(), local_name->raw_data());
+ // local_name->string()->ShortPrint();
+ }
+ }
+#endif // DEBUG
+
+ // (De-)serialization support.
+ // Note that the location value is not preserved as it's only needed by the
+ // parser. (A Deserialize'd entry has an invalid location.)
+ Handle<ModuleInfoEntry> Serialize(Isolate* isolate) const;
static Entry* Deserialize(Isolate* isolate, AstValueFactory* avfactory,
- Handle<FixedArray> data);
+ Handle<ModuleInfoEntry> entry);
};
// Empty imports and namespace imports.
@@ -112,6 +137,10 @@ class ModuleDescriptor : public ZoneObject {
return regular_exports_;
}
+#ifdef DEBUG
+ void Print() const;
+#endif // DEBUG
+
void AddRegularExport(Entry* entry) {
DCHECK_NOT_NULL(entry->export_name);
DCHECK_NOT_NULL(entry->local_name);
« no previous file with comments | « src/ast/ast.h ('k') | src/ast/modules.cc » ('j') | src/contexts.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698