| 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; }
|
|
|
|
|