for-await-await-expr-func-expression.js (2541B)
1 // |reftest| module 2 // This file was procedurally generated from the following sources: 3 // - src/top-level-await/await-expr-func-expression.case 4 // - src/top-level-await/syntax/for-await-expr.template 5 /*--- 6 description: AwaitExpression StringLiteral (Valid syntax for top level await in for await statements.) 7 esid: prod-AwaitExpression 8 features: [top-level-await, async-iteration] 9 flags: [generated, module] 10 info: | 11 ModuleItem: 12 StatementListItem[~Yield, +Await, ~Return] 13 14 ... 15 16 IterationStatement[Yield, Await, Return]: 17 [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] 18 [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] 19 [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] 20 21 ... 22 23 UnaryExpression[Yield, Await] 24 [+Await]AwaitExpression[?Yield] 25 26 AwaitExpression[Yield]: 27 await UnaryExpression[?Yield, +Await] 28 29 ... 30 31 32 ExpressionStatement[Yield, Await]: 33 [lookahead ∉ { {, function, async [no LineTerminator here] function, class, let [ }] 34 Expression[+In, ?Yield, ?Await]; 35 36 ... 37 38 PrimaryExpression[Yield, Await]: 39 this 40 IdentifierReference[?Yield, ?Await] 41 Literal 42 ArrayLiteral[?Yield, ?Await] 43 ObjectLiteral[?Yield, ?Await] 44 FunctionExpression 45 ClassExpression[?Yield, ?Await] 46 GeneratorExpression 47 AsyncFunctionExpression 48 AsyncGeneratorExpression 49 RegularExpressionLiteral 50 TemplateLiteral[?Yield, ?Await, ~Tagged] 51 CoverParenthesizedExpressionAndArrowParameterList[?Yield, ?Await] 52 53 ---*/ 54 55 56 var binding; 57 58 // [+Await]for await ( [lookahead ≠ let] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] 59 for await (binding of [await function() {}]) { 60 await function() {}; 61 break; 62 } 63 64 // [+Await]for await ( var ForBinding[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] 65 for await (var binding of [await function() {}]) { 66 await function() {}; 67 break; 68 } 69 70 // [+Await]for await ( ForDeclaration[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return] 71 for await (let binding of [await function() {}]) { 72 await function() {}; 73 break; 74 } 75 76 reportCompare(0, 0);