Index: src/ast/ast.h |
diff --git a/src/ast/ast.h b/src/ast/ast.h |
index de603f8ad3fe2b6199f43e3beca6131cf99d0106..2952d576a3d15bbcd5ebf0bde2865f5cfdea88e1 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) \ |
@@ -2942,6 +2943,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. |
@@ -3590,6 +3606,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; } |