mirror of https://github.com/tc39/test262.git
65 lines
2.2 KiB
JavaScript
65 lines
2.2 KiB
JavaScript
|
// 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') {};
|