Generate tests

This commit is contained in:
Leo Balter 2019-08-07 13:13:14 -04:00 committed by Rick Waldron
parent 2e82d31eac
commit 8d4c5f502f
204 changed files with 12372 additions and 0 deletions

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await [];
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,82 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await function() {};
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,77 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await foo;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await 1;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-string.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await '';
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,72 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-nested.case
// - src/top-level-await/syntax/block.template
/*---
description: Nested AwaitExpressions (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
TryStatement[Yield, Await, Return]:
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await await await await await await await await await await await await await await await 'await';
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-new-expr.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression new MemberExpression (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await new Promise(function(res, rej) { res(1); });
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-null.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression NullLiteral (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await null;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-obj-literal.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression ObjectLiteral (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await { function() {} };
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-regexp.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression RegularExpressionLiteral (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await /1/;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-template-literal.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression TemplateLiteral (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await ``;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-this.case
// - src/top-level-await/syntax/block.template
/*---
description: AwaitExpression this (Valid syntax for top level await in a block.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
{
await this;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await []) {};

View File

@ -0,0 +1,74 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await function() {}) {};

View File

@ -0,0 +1,69 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await foo) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await 1) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-string.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await '') {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-nested.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: Nested AwaitExpressions (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
TryStatement[Yield, Await, Return]:
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await await await await await await await await await await await await await await await 'await') {};

View File

@ -0,0 +1,65 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-new-expr.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression new MemberExpression (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await new Promise(function(res, rej) { res(1); })) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-null.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression NullLiteral (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await null) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-obj-literal.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression ObjectLiteral (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await { function() {} }) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-regexp.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression RegularExpressionLiteral (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await /1/) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-template-literal.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression TemplateLiteral (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await ``) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-this.case
// - src/top-level-await/syntax/export-class-decl.template
/*---
description: AwaitExpression this (Valid syntax for top level await in export ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export class C extends fn(await this) {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await [];

View File

@ -0,0 +1,70 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await function() {};

View File

@ -0,0 +1,65 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
export default await foo;

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await 1;

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-string.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await '';

View File

@ -0,0 +1,60 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-nested.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: Nested AwaitExpressions (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
TryStatement[Yield, Await, Return]:
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
---*/
export default await await await await await await await await await await await await await await await 'await';

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-new-expr.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression new MemberExpression (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
---*/
export default await new Promise(function(res, rej) { res(1); });

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-null.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression NullLiteral (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await null;

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-obj-literal.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression ObjectLiteral (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await { function() {} };

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-regexp.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression RegularExpressionLiteral (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await /1/;

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-template-literal.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression TemplateLiteral (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await ``;

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-this.case
// - src/top-level-await/syntax/export-dflt-assign-expr.template
/*---
description: AwaitExpression this (Valid syntax for top level await in export default AssignmentExpression)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default [lookahead { function, async [no LineTerminator here] function, class }] AssignmentExpression [+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export default await this;

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await []) {};

View File

@ -0,0 +1,74 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await function() {}) {};

View File

@ -0,0 +1,69 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await foo) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await 1) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-string.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await '') {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-nested.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: Nested AwaitExpressions (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
TryStatement[Yield, Await, Return]:
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await await await await await await await await await await await await await await await 'await') {};

View File

@ -0,0 +1,65 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-new-expr.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression new MemberExpression (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await new Promise(function(res, rej) { res(1); })) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-null.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression NullLiteral (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await null) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-obj-literal.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression ObjectLiteral (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await { function() {} }) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-regexp.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression RegularExpressionLiteral (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await /1/) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-template-literal.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression TemplateLiteral (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await ``) {};

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-this.case
// - src/top-level-await/syntax/export-dflt-class-decl.template
/*---
description: AwaitExpression this (Valid syntax for top level await in export default ClassDeclaration)
esid: prod-AwaitExpression
features: [top-level-await, class]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
ClassDeclaration[Yield, Await, Default]:
classBindingIdentifier[?Yield, ?Await] ClassTail[?Yield, ?Await]
[+Default] class ClassTail[?Yield, ?Await]
ClassTail[Yield, Await]:
ClassHeritage[?Yield, ?Await]_opt { ClassBody[?Yield, ?Await]_opt }
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
function fn() {
return function() {};
}
// extends CallExpression with arguments
export default class extends fn(await this) {};

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await [];
export const y = await [];

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await function() {};
export const y = await function() {};

View File

@ -0,0 +1,62 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
export let x = await foo;
export const y = await foo;

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await 1;
export const y = await 1;

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-string.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await '';
export const y = await '';

View File

@ -0,0 +1,57 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-nested.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: Nested AwaitExpressions (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
TryStatement[Yield, Await, Return]:
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
---*/
export let x = await await await await await await await await await await await await await await await 'await';
export const y = await await await await await await await await await await await await await await await 'await';

View File

@ -0,0 +1,58 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-new-expr.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression new MemberExpression (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
---*/
export let x = await new Promise(function(res, rej) { res(1); });
export const y = await new Promise(function(res, rej) { res(1); });

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-null.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression NullLiteral (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await null;
export const y = await null;

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-obj-literal.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression ObjectLiteral (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await { function() {} };
export const y = await { function() {} };

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-regexp.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression RegularExpressionLiteral (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await /1/;
export const y = await /1/;

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-template-literal.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression TemplateLiteral (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await ``;
export const y = await ``;

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-this.case
// - src/top-level-await/syntax/export-lex-declaration.template
/*---
description: AwaitExpression this (Valid syntax for top level await in export LexicalDeclaration)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
Declaration[Yield, Await]:
HoistableDeclaration[?Yield, ?Await, ~Default]
ClassDeclaration[?Yield, ?Await, ~Default]
LexicalDeclaration[+In, ?Yield, ?Await]
LexicalDeclaration[In, Yield, Await]:
LetOrConstBindingList[?In, ?Yield, ?Await];
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export let x = await this;
export const y = await this;

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await [];
export var { x = await [] } = {};

View File

@ -0,0 +1,70 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await function() {};
export var { x = await function() {} } = {};

View File

@ -0,0 +1,65 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
export var name1 = await foo;
export var { x = await foo } = {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await 1;
export var { x = await 1 } = {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-string.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await '';
export var { x = await '' } = {};

View File

@ -0,0 +1,60 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-nested.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: Nested AwaitExpressions (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
TryStatement[Yield, Await, Return]:
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
---*/
export var name1 = await await await await await await await await await await await await await await await 'await';
export var { x = await await await await await await await await await await await await await await await 'await' } = {};

View File

@ -0,0 +1,61 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-new-expr.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression new MemberExpression (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
---*/
export var name1 = await new Promise(function(res, rej) { res(1); });
export var { x = await new Promise(function(res, rej) { res(1); }) } = {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-null.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression NullLiteral (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await null;
export var { x = await null } = {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-obj-literal.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression ObjectLiteral (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await { function() {} };
export var { x = await { function() {} } } = {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-regexp.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression RegularExpressionLiteral (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await /1/;
export var { x = await /1/ } = {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-template-literal.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression TemplateLiteral (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await ``;
export var { x = await `` } = {};

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-this.case
// - src/top-level-await/syntax/export-var-init.template
/*---
description: AwaitExpression this (Valid syntax for top level await in export var BindingIdentifier Await_initializer)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExportDeclaration:
export * FromClause ;
export ExportClause FromClause ;
export ExportClause ;
export VariableStatement[~Yield, +Await]
export Declaration[~Yield, +Await]
export defaultHoistableDeclaration[~Yield, +Await, +Default]
export defaultClassDeclaration[~Yield, +Await, +Default]
export default[lookahead { function, async [no LineTerminator here] function, class }]AssignmentExpression[+In, ~Yield, ~Await];
VariableStatement[Yield, Await]:
var VariableDeclarationList[+In, ?Yield, ?Await];
VariableDeclarationList[In, Yield, Await]:
VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclarationList[?In, ?Yield, ?Await] , VariableDeclaration[?In, ?Yield, ?Await]
VariableDeclaration[In, Yield, Await]:
BindingIdentifier[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]opt
BindingPattern[?Yield, ?Await] Initializer[?In, ?Yield, ?Await]
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
export var name1 = await this;
export var { x = await this } = {};

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await []]) {
await [];
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await []]) {
await [];
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await []]) {
await [];
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await function() {}]) {
await function() {};
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await function() {}]) {
await function() {};
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await function() {}]) {
await function() {};
break;
}

View File

@ -0,0 +1,68 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await foo]) {
await foo;
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await foo]) {
await foo;
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await foo]) {
await foo;
break;
}

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await 1]) {
await 1;
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await 1]) {
await 1;
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await 1]) {
await 1;
break;
}

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-string.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await '']) {
await '';
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await '']) {
await '';
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await '']) {
await '';
break;
}

View File

@ -0,0 +1,63 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-nested.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: Nested AwaitExpressions (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
TryStatement[Yield, Await, Return]:
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await await await await await await await await await await await await await await await 'await']) {
await await await await await await await await await await await await await await await 'await';
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await await await await await await await await await await await await await await await 'await']) {
await await await await await await await await await await await await await await await 'await';
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await await await await await await await await await await await await await await await 'await']) {
await await await await await await await await await await await await await await await 'await';
break;
}

View File

@ -0,0 +1,64 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-new-expr.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression new MemberExpression (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await new Promise(function(res, rej) { res(1); })]) {
await new Promise(function(res, rej) { res(1); });
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await new Promise(function(res, rej) { res(1); })]) {
await new Promise(function(res, rej) { res(1); });
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await new Promise(function(res, rej) { res(1); })]) {
await new Promise(function(res, rej) { res(1); });
break;
}

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-null.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression NullLiteral (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await null]) {
await null;
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await null]) {
await null;
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await null]) {
await null;
break;
}

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-obj-literal.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression ObjectLiteral (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await { function() {} }]) {
await { function() {} };
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await { function() {} }]) {
await { function() {} };
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await { function() {} }]) {
await { function() {} };
break;
}

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-regexp.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression RegularExpressionLiteral (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await /1/]) {
await /1/;
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await /1/]) {
await /1/;
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await /1/]) {
await /1/;
break;
}

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-template-literal.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression TemplateLiteral (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await ``]) {
await ``;
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await ``]) {
await ``;
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await ``]) {
await ``;
break;
}

View File

@ -0,0 +1,67 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-this.case
// - src/top-level-await/syntax/for-await-expr.template
/*---
description: AwaitExpression this (Valid syntax for top level await in for await statements.)
esid: prod-AwaitExpression
features: [top-level-await, async-iteration]
flags: [generated, module]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
[+Await]for await ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
[+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (binding of [await this]) {
await this;
break;
}
// [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (var binding of [await this]) {
await this;
break;
}
// [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for await (let binding of [await this]) {
await this;
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await [] ; await []; await [] ) {
await [];
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await []; await [] ) {
await [];
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await []; await [] ) {
await [];
break;
}

View File

@ -0,0 +1,79 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await function() {} ; await function() {}; await function() {} ) {
await function() {};
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await function() {}; await function() {} ) {
await function() {};
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await function() {}; await function() {} ) {
await function() {};
break;
}

View File

@ -0,0 +1,74 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await foo ; await foo; await foo ) {
await foo;
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await foo; await foo ) {
await foo;
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await foo; await foo ) {
await foo;
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await 1 ; await 1; await 1 ) {
await 1;
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await 1; await 1 ) {
await 1;
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await 1; await 1 ) {
await 1;
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-string.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await '' ; await ''; await '' ) {
await '';
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await ''; await '' ) {
await '';
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await ''; await '' ) {
await '';
break;
}

View File

@ -0,0 +1,69 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-nested.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: Nested AwaitExpressions (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
TryStatement[Yield, Await, Return]:
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
try Block[?Yield, ?Await, ?Return] Catch[?Yield, ?Await, ?Return] Finally[?Yield, ?Await, ?Return]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await await await await await await await await await await await await await await await 'await' ; await await await await await await await await await await await await await await await 'await'; await await await await await await await await await await await await await await await 'await' ) {
await await await await await await await await await await await await await await await 'await';
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await await await await await await await await await await await await await await await 'await'; await await await await await await await await await await await await await await await 'await' ) {
await await await await await await await await await await await await await await await 'await';
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await await await await await await await await await await await await await await await 'await'; await await await await await await await await await await await await await await await 'await' ) {
await await await await await await await await await await await await await await await 'await';
break;
}

View File

@ -0,0 +1,70 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-new-expr.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression new MemberExpression (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
LeftHandSideExpression[Yield, Await]:
NewExpression[?Yield, ?Await]
CallExpression[?Yield, ?Await]
NewExpression[Yield, Await]:
MemberExpression[?Yield, ?Await]
new NewExpression[?Yield, ?Await]
MemberExpression[Yield, Await]:
...
new MemberExpression[?Yield, ?Await] Arguments[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await new Promise(function(res, rej) { res(1); }) ; await new Promise(function(res, rej) { res(1); }); await new Promise(function(res, rej) { res(1); }) ) {
await new Promise(function(res, rej) { res(1); });
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await new Promise(function(res, rej) { res(1); }); await new Promise(function(res, rej) { res(1); }) ) {
await new Promise(function(res, rej) { res(1); });
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await new Promise(function(res, rej) { res(1); }); await new Promise(function(res, rej) { res(1); }) ) {
await new Promise(function(res, rej) { res(1); });
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-null.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression NullLiteral (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await null ; await null; await null ) {
await null;
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await null; await null ) {
await null;
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await null; await null ) {
await null;
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-obj-literal.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression ObjectLiteral (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await { function() {} } ; await { function() {} }; await { function() {} } ) {
await { function() {} };
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await { function() {} }; await { function() {} } ) {
await { function() {} };
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await { function() {} }; await { function() {} } ) {
await { function() {} };
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-regexp.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression RegularExpressionLiteral (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await /1/ ; await /1/; await /1/ ) {
await /1/;
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await /1/; await /1/ ) {
await /1/;
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await /1/; await /1/ ) {
await /1/;
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-template-literal.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression TemplateLiteral (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await `` ; await ``; await `` ) {
await ``;
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await ``; await `` ) {
await ``;
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await ``; await `` ) {
await ``;
break;
}

View File

@ -0,0 +1,73 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-this.case
// - src/top-level-await/syntax/for-expr.template
/*---
description: AwaitExpression this (Valid syntax for top level await in for statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
// for ( [ lookahead ≠ let [] Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( await this ; await this; await this ) {
await this;
break;
}
// for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var binding; await this; await this ) {
await this;
break;
}
// for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( let binding; await this; await this ) {
await this;
break;
}

View File

@ -0,0 +1,75 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-array-literal.case
// - src/top-level-await/syntax/for-in-expr.template
/*---
description: AwaitExpression ArrayLiteral (Valid syntax for top level await in for-in statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let []Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// for ( [lookahead ≠ let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (binding in [await []]) {
await [];
break;
}
// for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (var binding in [await []]) {
await [];
break;
}
// for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (let binding in [await []]) {
await [];
break;
}

View File

@ -0,0 +1,81 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-func-expression.case
// - src/top-level-await/syntax/for-in-expr.template
/*---
description: AwaitExpression StringLiteral (Valid syntax for top level await in for-in statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let []Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
ExpressionStatement[Yield, Await]:
[lookahead { {, function, async [no LineTerminator here] function, class, let [ }]
Expression[+In, ?Yield, ?Await];
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// for ( [lookahead ≠ let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (binding in [await function() {}]) {
await function() {};
break;
}
// for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (var binding in [await function() {}]) {
await function() {};
break;
}
// for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (let binding in [await function() {}]) {
await function() {};
break;
}

View File

@ -0,0 +1,76 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-identifier.case
// - src/top-level-await/syntax/for-in-expr.template
/*---
description: AwaitExpression IdentifierReference (Valid syntax for top level await in for-in statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let []Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var foo = 1;
var binding;
// for ( [lookahead ≠ let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (binding in [await foo]) {
await foo;
break;
}
// for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (var binding in [await foo]) {
await foo;
break;
}
// for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (let binding in [await foo]) {
await foo;
break;
}

View File

@ -0,0 +1,75 @@
// This file was procedurally generated from the following sources:
// - src/top-level-await/await-expr-literal-number.case
// - src/top-level-await/syntax/for-in-expr.template
/*---
description: AwaitExpression NumberLiteral (Valid syntax for top level await in for-in statements.)
esid: prod-AwaitExpression
features: [top-level-await]
flags: [generated]
info: |
ModuleItem:
StatementListItem[~Yield, +Await, ~Return]
...
IterationStatement[Yield, Await, Return]:
...
for ( [ lookahead let []Expression[~In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( var VariableDeclarationList[~In, ?Yield, ?Await] ; Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( LexicalDeclaration[~In, ?Yield, ?Await] Expression[+In, ?Yield, ?Await]opt ; Expression[+In, ?Yield, ?Await]opt ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( [lookahead let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
...
...
UnaryExpression[Yield, Await]
[+Await]AwaitExpression[?Yield]
AwaitExpression[Yield]:
await UnaryExpression[?Yield, +Await]
...
PrimaryExpression[Yield, Await]:
this
IdentifierReference[?Yield, ?Await]
Literal
ArrayLiteral[?Yield, ?Await]
ObjectLiteral[?Yield, ?Await]
FunctionExpression
ClassExpression[?Yield, ?Await]
GeneratorExpression
AsyncFunctionExpression
AsyncGeneratorExpression
RegularExpressionLiteral
TemplateLiteral[?Yield, ?Await, ~Tagged]
CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await]
---*/
var binding;
// for ( [lookahead ≠ let [] LeftHandSideExpression[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (binding in [await 1]) {
await 1;
break;
}
// for ( var ForBinding[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (var binding in [await 1]) {
await 1;
break;
}
// for ( ForDeclaration[?Yield, ?Await] in Expression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
for (let binding in [await 1]) {
await 1;
break;
}

Some files were not shown because too many files have changed in this diff Show More