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

Unified Diff: src/ast/ast.h

Issue 2703563002: [ESNext] Implement DynamicImportCall (Closed)
Patch Set: rebase Created 3 years, 8 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/asmjs/asm-wasm-builder.cc ('k') | src/ast/ast-expression-rewriter.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ast/ast.h
diff --git a/src/ast/ast.h b/src/ast/ast.h
index cabfa5f3ebcef236dff6b9aa070c2f2bdc46a606..9d7b4de82c5363cab8f17c42d414acd6a19ecefe 100644
--- a/src/ast/ast.h
+++ b/src/ast/ast.h
@@ -105,7 +105,8 @@ namespace internal {
V(EmptyParentheses) \
V(GetIterator) \
V(DoExpression) \
- V(RewritableExpression)
+ V(RewritableExpression) \
+ V(ImportCallExpression)
#define AST_NODE_LIST(V) \
DECLARATION_NODE_LIST(V) \
@@ -2973,6 +2974,21 @@ class SuperCallReference final : public Expression {
VariableProxy* this_function_var_;
};
+// This AST Node is used to represent a dynamic import call --
+// import(argument).
+class ImportCallExpression final : public Expression {
+ public:
+ Expression* argument() const { return argument_; }
+ void set_argument(Expression* argument) { argument_ = argument; }
+
+ private:
+ friend class AstNodeFactory;
+
+ ImportCallExpression(Expression* argument, int pos)
+ : Expression(pos, kImportCallExpression), argument_(argument) {}
+
+ Expression* argument_;
+};
// This class is produced when parsing the () in arrow functions without any
// arguments and is not actually a valid expression.
@@ -3623,6 +3639,10 @@ class AstNodeFactory final BASE_EMBEDDED {
return new (zone_) GetIterator(iterable, hint, pos);
}
+ ImportCallExpression* NewImportCallExpression(Expression* args, int pos) {
+ return new (zone_) ImportCallExpression(args, pos);
+ }
+
Zone* zone() const { return zone_; }
void set_zone(Zone* zone) { zone_ = zone; }
« no previous file with comments | « src/asmjs/asm-wasm-builder.cc ('k') | src/ast/ast-expression-rewriter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698