JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@0..4 "let" [] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@4..9 "async" [] [], }, variable_annotation: missing (optional), initializer: missing (optional), }, ], }, semicolon_token: SEMICOLON@9..10 ";" [] [], }, JsForOfStatement { for_token: FOR_KW@10..15 "for" [Newline("\n")] [Whitespace(" ")], await_token: missing (optional), l_paren_token: L_PAREN@15..16 "(" [] [], initializer: JsBogusAssignment { items: [ IDENT@16..22 "async" [] [Whitespace(" ")], ], }, of_token: OF_KW@22..25 "of" [] [Whitespace(" ")], expression: JsArrayExpression { l_brack_token: L_BRACK@25..26 "[" [] [], elements: JsArrayElementList [ JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@26..27 "1" [] [], }, ], r_brack_token: R_BRACK@27..28 "]" [] [], }, r_paren_token: R_PAREN@28..30 ")" [] [Whitespace(" ")], body: JsEmptyStatement { semicolon_token: SEMICOLON@30..31 ";" [] [], }, }, ], eof_token: EOF@31..32 "" [Newline("\n")] [], } 0: JS_MODULE@0..32 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..31 0: JS_VARIABLE_STATEMENT@0..10 0: JS_VARIABLE_DECLARATION@0..9 0: (empty) 1: LET_KW@0..4 "let" [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@4..9 0: JS_VARIABLE_DECLARATOR@4..9 0: JS_IDENTIFIER_BINDING@4..9 0: IDENT@4..9 "async" [] [] 1: (empty) 2: (empty) 1: SEMICOLON@9..10 ";" [] [] 1: JS_FOR_OF_STATEMENT@10..31 0: FOR_KW@10..15 "for" [Newline("\n")] [Whitespace(" ")] 1: (empty) 2: L_PAREN@15..16 "(" [] [] 3: JS_BOGUS_ASSIGNMENT@16..22 0: IDENT@16..22 "async" [] [Whitespace(" ")] 4: OF_KW@22..25 "of" [] [Whitespace(" ")] 5: JS_ARRAY_EXPRESSION@25..28 0: L_BRACK@25..26 "[" [] [] 1: JS_ARRAY_ELEMENT_LIST@26..27 0: JS_NUMBER_LITERAL_EXPRESSION@26..27 0: JS_NUMBER_LITERAL@26..27 "1" [] [] 2: R_BRACK@27..28 "]" [] [] 6: R_PAREN@28..30 ")" [] [Whitespace(" ")] 7: JS_EMPTY_STATEMENT@30..31 0: SEMICOLON@30..31 ";" [] [] 4: EOF@31..32 "" [Newline("\n")] [] -- for_of_async_identifier.js:2:6 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × The left-hand side of a `for...of` statement may not be `async` 1 │ let async; > 2 │ for (async of [1]) ; │ ^^^^^ 3 │ -- let async; for (async of [1]) ;