JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsExpressionStatement { expression: JsArrowFunctionExpression { async_token: ASYNC_KW@0..6 "async" [] [Whitespace(" ")], type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@6..7 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@7..9 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), fat_arrow_token: FAT_ARROW@9..12 "=>" [] [Whitespace(" ")], body: JsFunctionBody { l_curly_token: L_CURLY@12..14 "{" [] [Whitespace(" ")], directives: JsDirectiveList [], statements: JsStatementList [ JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@14..18 "let" [] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsBogusBinding { items: [ IDENT@18..24 "await" [] [Whitespace(" ")], ], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@24..26 "=" [] [Whitespace(" ")], expression: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@26..27 "5" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@27..29 ";" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@29..30 "}" [] [], }, }, semicolon_token: missing (optional), }, JsFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@30..40 "function" [Newline("\n")] [Whitespace(" ")], star_token: STAR@40..41 "*" [] [], id: JsIdentifierBinding { name_token: IDENT@41..44 "foo" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@44..45 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@45..47 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@47..48 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@48..56 "let" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsBogusBinding { items: [ IDENT@56..62 "yield" [] [Whitespace(" ")], ], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@62..64 "=" [] [Whitespace(" ")], expression: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@64..65 "5" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@65..66 ";" [] [], }, ], r_curly_token: R_CURLY@66..68 "}" [Newline("\n")] [], }, }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@68..73 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsBogusBinding { items: [ IDENT@73..78 "eval" [] [Whitespace(" ")], ], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@78..80 "=" [] [Whitespace(" ")], expression: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@80..81 "5" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@81..82 ";" [] [], }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@82..87 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsBogusBinding { items: [ IDENT@87..91 "let" [] [Whitespace(" ")], ], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@91..93 "=" [] [Whitespace(" ")], expression: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@93..94 "5" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@94..95 ";" [] [], }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: CONST_KW@95..102 "const" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsBogusBinding { items: [ IDENT@102..106 "let" [] [Whitespace(" ")], ], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@106..108 "=" [] [Whitespace(" ")], expression: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@108..109 "5" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@109..110 ";" [] [], }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@110..115 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@115..116 "a" [] [], }, variable_annotation: missing (optional), initializer: missing (optional), }, COMMA@116..118 "," [] [Whitespace(" ")], JsVariableDeclarator { id: JsBogusBinding { items: [ IDENT@118..119 "a" [] [], ], }, variable_annotation: missing (optional), initializer: missing (optional), }, ], }, semicolon_token: SEMICOLON@119..120 ";" [] [], }, ], eof_token: EOF@120..121 "" [Newline("\n")] [], } 0: JS_MODULE@0..121 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..120 0: JS_EXPRESSION_STATEMENT@0..30 0: JS_ARROW_FUNCTION_EXPRESSION@0..30 0: ASYNC_KW@0..6 "async" [] [Whitespace(" ")] 1: (empty) 2: JS_PARAMETERS@6..9 0: L_PAREN@6..7 "(" [] [] 1: JS_PARAMETER_LIST@7..7 2: R_PAREN@7..9 ")" [] [Whitespace(" ")] 3: (empty) 4: FAT_ARROW@9..12 "=>" [] [Whitespace(" ")] 5: JS_FUNCTION_BODY@12..30 0: L_CURLY@12..14 "{" [] [Whitespace(" ")] 1: JS_DIRECTIVE_LIST@14..14 2: JS_STATEMENT_LIST@14..29 0: JS_VARIABLE_STATEMENT@14..29 0: JS_VARIABLE_DECLARATION@14..27 0: (empty) 1: LET_KW@14..18 "let" [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@18..27 0: JS_VARIABLE_DECLARATOR@18..27 0: JS_BOGUS_BINDING@18..24 0: IDENT@18..24 "await" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@24..27 0: EQ@24..26 "=" [] [Whitespace(" ")] 1: JS_NUMBER_LITERAL_EXPRESSION@26..27 0: JS_NUMBER_LITERAL@26..27 "5" [] [] 1: SEMICOLON@27..29 ";" [] [Whitespace(" ")] 3: R_CURLY@29..30 "}" [] [] 1: (empty) 1: JS_FUNCTION_DECLARATION@30..68 0: (empty) 1: FUNCTION_KW@30..40 "function" [Newline("\n")] [Whitespace(" ")] 2: STAR@40..41 "*" [] [] 3: JS_IDENTIFIER_BINDING@41..44 0: IDENT@41..44 "foo" [] [] 4: (empty) 5: JS_PARAMETERS@44..47 0: L_PAREN@44..45 "(" [] [] 1: JS_PARAMETER_LIST@45..45 2: R_PAREN@45..47 ")" [] [Whitespace(" ")] 6: (empty) 7: JS_FUNCTION_BODY@47..68 0: L_CURLY@47..48 "{" [] [] 1: JS_DIRECTIVE_LIST@48..48 2: JS_STATEMENT_LIST@48..66 0: JS_VARIABLE_STATEMENT@48..66 0: JS_VARIABLE_DECLARATION@48..65 0: (empty) 1: LET_KW@48..56 "let" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@56..65 0: JS_VARIABLE_DECLARATOR@56..65 0: JS_BOGUS_BINDING@56..62 0: IDENT@56..62 "yield" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@62..65 0: EQ@62..64 "=" [] [Whitespace(" ")] 1: JS_NUMBER_LITERAL_EXPRESSION@64..65 0: JS_NUMBER_LITERAL@64..65 "5" [] [] 1: SEMICOLON@65..66 ";" [] [] 3: R_CURLY@66..68 "}" [Newline("\n")] [] 2: JS_VARIABLE_STATEMENT@68..82 0: JS_VARIABLE_DECLARATION@68..81 0: (empty) 1: LET_KW@68..73 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@73..81 0: JS_VARIABLE_DECLARATOR@73..81 0: JS_BOGUS_BINDING@73..78 0: IDENT@73..78 "eval" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@78..81 0: EQ@78..80 "=" [] [Whitespace(" ")] 1: JS_NUMBER_LITERAL_EXPRESSION@80..81 0: JS_NUMBER_LITERAL@80..81 "5" [] [] 1: SEMICOLON@81..82 ";" [] [] 3: JS_VARIABLE_STATEMENT@82..95 0: JS_VARIABLE_DECLARATION@82..94 0: (empty) 1: LET_KW@82..87 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@87..94 0: JS_VARIABLE_DECLARATOR@87..94 0: JS_BOGUS_BINDING@87..91 0: IDENT@87..91 "let" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@91..94 0: EQ@91..93 "=" [] [Whitespace(" ")] 1: JS_NUMBER_LITERAL_EXPRESSION@93..94 0: JS_NUMBER_LITERAL@93..94 "5" [] [] 1: SEMICOLON@94..95 ";" [] [] 4: JS_VARIABLE_STATEMENT@95..110 0: JS_VARIABLE_DECLARATION@95..109 0: (empty) 1: CONST_KW@95..102 "const" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@102..109 0: JS_VARIABLE_DECLARATOR@102..109 0: JS_BOGUS_BINDING@102..106 0: IDENT@102..106 "let" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@106..109 0: EQ@106..108 "=" [] [Whitespace(" ")] 1: JS_NUMBER_LITERAL_EXPRESSION@108..109 0: JS_NUMBER_LITERAL@108..109 "5" [] [] 1: SEMICOLON@109..110 ";" [] [] 5: JS_VARIABLE_STATEMENT@110..120 0: JS_VARIABLE_DECLARATION@110..119 0: (empty) 1: LET_KW@110..115 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@115..119 0: JS_VARIABLE_DECLARATOR@115..116 0: JS_IDENTIFIER_BINDING@115..116 0: IDENT@115..116 "a" [] [] 1: (empty) 2: (empty) 1: COMMA@116..118 "," [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR@118..119 0: JS_BOGUS_BINDING@118..119 0: IDENT@118..119 "a" [] [] 1: (empty) 2: (empty) 1: SEMICOLON@119..120 ";" [] [] 4: EOF@120..121 "" [Newline("\n")] [] -- binding_identifier_invalid.js:1:19 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Illegal use of `await` as an identifier in an async context > 1 │ async () => { let await = 5; } │ ^^^^^ 2 │ function *foo() { 3 │ let yield = 5; -- binding_identifier_invalid.js:3:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Illegal use of `yield` as an identifier in generator function 1 │ async () => { let await = 5; } 2 │ function *foo() { > 3 │ let yield = 5; │ ^^^^^ 4 │ } 5 │ let eval = 5; -- binding_identifier_invalid.js:5:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Illegal use of `eval` as an identifier in strict mode 3 │ let yield = 5; 4 │ } > 5 │ let eval = 5; │ ^^^^ 6 │ let let = 5; 7 │ const let = 5; -- binding_identifier_invalid.js:6:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Illegal use of reserved keyword `let` as an identifier in strict mode 4 │ } 5 │ let eval = 5; > 6 │ let let = 5; │ ^^^ 7 │ const let = 5; 8 │ let a, a; -- binding_identifier_invalid.js:7:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Illegal use of reserved keyword `let` as an identifier in strict mode 5 │ let eval = 5; 6 │ let let = 5; > 7 │ const let = 5; │ ^^^ 8 │ let a, a; 9 │ -- binding_identifier_invalid.js:8:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Declarations inside of a `let` declaration may not have duplicates 6 │ let let = 5; 7 │ const let = 5; > 8 │ let a, a; │ ^ 9 │ i a second declaration of `a` is not allowed 6 │ let let = 5; 7 │ const let = 5; > 8 │ let a, a; │ ^ 9 │ i `a` is first declared here 6 │ let let = 5; 7 │ const let = 5; > 8 │ let a, a; │ ^ 9 │ -- async () => { let await = 5; } function *foo() { let yield = 5; } let eval = 5; let let = 5; const let = 5; let a, a;