@@ -47,7 +47,7 @@ enum CompoundAssignmentOperator {
47
47
};
48
48
enum BinaryOperator {
49
49
"==", "!=", "===", "!==", "<", "<=", ">", ">=", "in", "instanceof", "<<",
50
- ">>", ">>>", "+", "-", "*", "/", "%", "**", ",", "||", "&&", "|", "^", "&"
50
+ ">>", ">>>", "+", "-", "*", "/", "%", "**", ",", "||", "&&", "|", "^", "&", "??"
51
51
};
52
52
enum UnaryOperator { "+", "-", "!", "~", "typeof", "void", "delete" };
53
53
enum UpdateOperator { "++", "--" };
@@ -255,8 +255,9 @@ interface ImportSpecifier : Node {
255
255
attribute BindingIdentifier binding;
256
256
};
257
257
258
- // `export * FromClause;`
258
+ // `export * FromClause;`, `export * as IdentifierName FromClause`
259
259
interface ExportAllFrom : ExportDeclaration {
260
+ attribute IdentifierName? name;
260
261
attribute string moduleSpecifier;
261
262
};
262
263
@@ -349,6 +350,12 @@ interface StaticPropertyName : PropertyName {
349
350
350
351
// literals
351
352
353
+ // `BigIntLiteral`
354
+ interface LiteralBigIntExpression : Expression {
355
+ attribute string bigint;
356
+ attribute double value;
357
+ };
358
+
352
359
// `BooleanLiteral`
353
360
interface LiteralBooleanExpression : Expression {
354
361
attribute boolean value;
@@ -412,7 +419,7 @@ interface AssignmentExpression : Expression {
412
419
attribute Expression expression;
413
420
};
414
421
415
- // `ExponentiationExpression`, `MultiplicativeExpression`, `AdditiveExpression`, `ShiftExpression`, `RelationalExpression`, `EqualityExpression`, `BitwiseANDExpression`, `BitwiseXORExpression`, `BitwiseORExpression`, `LogicalANDExpression`, `LogicalORExpression`
422
+ // `ExponentiationExpression`, `MultiplicativeExpression`, `AdditiveExpression`, `ShiftExpression`, `RelationalExpression`, `EqualityExpression`, `BitwiseANDExpression`, `BitwiseXORExpression`, `BitwiseORExpression`, `LogicalANDExpression`, `LogicalORExpression`, `NullishCoalescingExpression`
416
423
interface BinaryExpression : Expression {
417
424
attribute BinaryOperator operator;
418
425
// The expression before the operator.
@@ -459,17 +466,34 @@ FunctionExpression implements Function;
459
466
interface IdentifierExpression : Expression { };
460
467
IdentifierExpression implements VariableReference;
461
468
469
+ // `ImportExpression`
470
+ interface ImportExpression : Expression {
471
+ attribute Expression source;
472
+ };
473
+
474
+ // `import.meta`, `new.target`
475
+ interface MetaProperty: Expression {
476
+ attribute Identifier meta;
477
+ attribute Identifier property;
478
+ };
479
+
462
480
interface NewExpression : Expression {
463
481
attribute Expression callee;
464
482
attribute Arguments arguments;
465
483
};
466
484
467
- interface NewTargetExpression : Expression { };
468
-
469
485
interface ObjectExpression : Expression {
470
486
attribute ObjectProperty[] properties;
471
487
};
472
488
489
+ interface OptionalChainingExpression: Expression {
490
+ attribute Expression expression;
491
+ };
492
+
493
+ interface OptionalMemberExpression: MemberExpression {
494
+ attribute IdentifierName property;
495
+ };
496
+
473
497
interface UnaryExpression : Expression {
474
498
attribute UnaryOperator operator;
475
499
attribute Expression operand;
0 commit comments