mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-30 19:24:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.0 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-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';
 |