JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@0..9 "function" [] [Whitespace(" ")], star_token: missing (optional), id: JsIdentifierBinding { name_token: IDENT@9..12 "foo" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@12..13 "(" [] [], items: JsParameterList [ JsRestParameter { decorators: JsDecoratorList [], dotdotdot_token: DOT3@13..16 "..." [] [], binding: JsIdentifierBinding { name_token: IDENT@16..20 "args" [] [], }, type_annotation: missing (optional), }, ], r_paren_token: R_PAREN@20..22 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@22..23 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [], r_curly_token: R_CURLY@23..24 "}" [] [], }, }, JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@24..29 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@29..30 "a" [] [], }, variable_annotation: missing (optional), initializer: missing (optional), }, COMMA@30..32 "," [] [Whitespace(" ")], JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@32..33 "b" [] [], }, variable_annotation: missing (optional), initializer: missing (optional), }, COMMA@33..35 "," [] [Whitespace(" ")], JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@35..36 "c" [] [], }, variable_annotation: missing (optional), initializer: missing (optional), }, ], }, semicolon_token: SEMICOLON@36..37 ";" [] [], }, JsExpressionStatement { expression: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@37..41 "foo" [Newline("\n")] [], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@41..42 "(" [] [], args: JsCallArgumentList [ JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@42..43 "a" [] [], }, }, COMMA@43..44 "," [] [], JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@44..45 "b" [] [], }, }, ], r_paren_token: missing (required), }, }, semicolon_token: SEMICOLON@45..46 ";" [] [], }, JsExpressionStatement { expression: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@46..50 "foo" [Newline("\n")] [], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@50..51 "(" [] [], args: JsCallArgumentList [ JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@51..52 "a" [] [], }, }, COMMA@52..53 "," [] [], JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@53..55 "b" [] [Whitespace(" ")], }, }, ], r_paren_token: missing (required), }, }, semicolon_token: missing (optional), }, JsBogusStatement { items: [ JsBogus { items: [ VAR_KW@55..58 "var" [] [], JsBogus { items: [], }, ], }, SEMICOLON@58..59 ";" [] [], ], }, JsExpressionStatement { expression: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@59..64 "foo" [Newline("\n")] [Whitespace(" ")], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@64..65 "(" [] [], args: JsCallArgumentList [ missing element, COMMA@65..66 "," [] [], missing element, COMMA@66..67 "," [] [], JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@67..68 "b" [] [], }, }, ], r_paren_token: R_PAREN@68..69 ")" [] [], }, }, semicolon_token: SEMICOLON@69..70 ";" [] [], }, JsExpressionStatement { expression: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@70..75 "foo" [Newline("\n")] [Whitespace(" ")], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@75..76 "(" [] [], args: JsCallArgumentList [ JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@76..77 "a" [] [], }, }, COMMA@77..79 "," [] [Whitespace(" ")], JsSpread { dotdotdot_token: DOT3@79..82 "..." [] [], argument: missing (required), }, ], r_paren_token: R_PAREN@82..83 ")" [] [], }, }, semicolon_token: SEMICOLON@83..84 ";" [] [], }, ], eof_token: EOF@84..85 "" [Newline("\n")] [], } 0: JS_MODULE@0..85 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..84 0: JS_FUNCTION_DECLARATION@0..24 0: (empty) 1: FUNCTION_KW@0..9 "function" [] [Whitespace(" ")] 2: (empty) 3: JS_IDENTIFIER_BINDING@9..12 0: IDENT@9..12 "foo" [] [] 4: (empty) 5: JS_PARAMETERS@12..22 0: L_PAREN@12..13 "(" [] [] 1: JS_PARAMETER_LIST@13..20 0: JS_REST_PARAMETER@13..20 0: JS_DECORATOR_LIST@13..13 1: DOT3@13..16 "..." [] [] 2: JS_IDENTIFIER_BINDING@16..20 0: IDENT@16..20 "args" [] [] 3: (empty) 2: R_PAREN@20..22 ")" [] [Whitespace(" ")] 6: (empty) 7: JS_FUNCTION_BODY@22..24 0: L_CURLY@22..23 "{" [] [] 1: JS_DIRECTIVE_LIST@23..23 2: JS_STATEMENT_LIST@23..23 3: R_CURLY@23..24 "}" [] [] 1: JS_VARIABLE_STATEMENT@24..37 0: JS_VARIABLE_DECLARATION@24..36 0: (empty) 1: LET_KW@24..29 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@29..36 0: JS_VARIABLE_DECLARATOR@29..30 0: JS_IDENTIFIER_BINDING@29..30 0: IDENT@29..30 "a" [] [] 1: (empty) 2: (empty) 1: COMMA@30..32 "," [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR@32..33 0: JS_IDENTIFIER_BINDING@32..33 0: IDENT@32..33 "b" [] [] 1: (empty) 2: (empty) 3: COMMA@33..35 "," [] [Whitespace(" ")] 4: JS_VARIABLE_DECLARATOR@35..36 0: JS_IDENTIFIER_BINDING@35..36 0: IDENT@35..36 "c" [] [] 1: (empty) 2: (empty) 1: SEMICOLON@36..37 ";" [] [] 2: JS_EXPRESSION_STATEMENT@37..46 0: JS_CALL_EXPRESSION@37..45 0: JS_IDENTIFIER_EXPRESSION@37..41 0: JS_REFERENCE_IDENTIFIER@37..41 0: IDENT@37..41 "foo" [Newline("\n")] [] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@41..45 0: L_PAREN@41..42 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@42..45 0: JS_IDENTIFIER_EXPRESSION@42..43 0: JS_REFERENCE_IDENTIFIER@42..43 0: IDENT@42..43 "a" [] [] 1: COMMA@43..44 "," [] [] 2: JS_IDENTIFIER_EXPRESSION@44..45 0: JS_REFERENCE_IDENTIFIER@44..45 0: IDENT@44..45 "b" [] [] 2: (empty) 1: SEMICOLON@45..46 ";" [] [] 3: JS_EXPRESSION_STATEMENT@46..55 0: JS_CALL_EXPRESSION@46..55 0: JS_IDENTIFIER_EXPRESSION@46..50 0: JS_REFERENCE_IDENTIFIER@46..50 0: IDENT@46..50 "foo" [Newline("\n")] [] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@50..55 0: L_PAREN@50..51 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@51..55 0: JS_IDENTIFIER_EXPRESSION@51..52 0: JS_REFERENCE_IDENTIFIER@51..52 0: IDENT@51..52 "a" [] [] 1: COMMA@52..53 "," [] [] 2: JS_IDENTIFIER_EXPRESSION@53..55 0: JS_REFERENCE_IDENTIFIER@53..55 0: IDENT@53..55 "b" [] [Whitespace(" ")] 2: (empty) 1: (empty) 4: JS_BOGUS_STATEMENT@55..59 0: JS_BOGUS@55..58 0: VAR_KW@55..58 "var" [] [] 1: JS_BOGUS@58..58 1: SEMICOLON@58..59 ";" [] [] 5: JS_EXPRESSION_STATEMENT@59..70 0: JS_CALL_EXPRESSION@59..69 0: JS_IDENTIFIER_EXPRESSION@59..64 0: JS_REFERENCE_IDENTIFIER@59..64 0: IDENT@59..64 "foo" [Newline("\n")] [Whitespace(" ")] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@64..69 0: L_PAREN@64..65 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@65..68 0: (empty) 1: COMMA@65..66 "," [] [] 2: (empty) 3: COMMA@66..67 "," [] [] 4: JS_IDENTIFIER_EXPRESSION@67..68 0: JS_REFERENCE_IDENTIFIER@67..68 0: IDENT@67..68 "b" [] [] 2: R_PAREN@68..69 ")" [] [] 1: SEMICOLON@69..70 ";" [] [] 6: JS_EXPRESSION_STATEMENT@70..84 0: JS_CALL_EXPRESSION@70..83 0: JS_IDENTIFIER_EXPRESSION@70..75 0: JS_REFERENCE_IDENTIFIER@70..75 0: IDENT@70..75 "foo" [Newline("\n")] [Whitespace(" ")] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@75..83 0: L_PAREN@75..76 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@76..82 0: JS_IDENTIFIER_EXPRESSION@76..77 0: JS_REFERENCE_IDENTIFIER@76..77 0: IDENT@76..77 "a" [] [] 1: COMMA@77..79 "," [] [Whitespace(" ")] 2: JS_SPREAD@79..82 0: DOT3@79..82 "..." [] [] 1: (empty) 2: R_PAREN@82..83 ")" [] [] 1: SEMICOLON@83..84 ";" [] [] 4: EOF@84..85 "" [Newline("\n")] [] -- invalid_arg_list.js:3:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `,` but instead found `;` 1 │ function foo(...args) {} 2 │ let a, b, c; > 3 │ foo(a,b; │ ^ 4 │ foo(a,b var; 5 │ foo (,,b); i Remove ; -- invalid_arg_list.js:4:9 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `,` but instead found `var` 2 │ let a, b, c; 3 │ foo(a,b; > 4 │ foo(a,b var; │ ^^^ 5 │ foo (,,b); 6 │ foo (a, ...); i Remove var -- invalid_arg_list.js:4:12 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an identifier, an array pattern, or an object pattern but instead found ';'. 2 │ let a, b, c; 3 │ foo(a,b; > 4 │ foo(a,b var; │ ^ 5 │ foo (,,b); 6 │ foo (a, ...); i Expected an identifier, an array pattern, or an object pattern here. 2 │ let a, b, c; 3 │ foo(a,b; > 4 │ foo(a,b var; │ ^ 5 │ foo (,,b); 6 │ foo (a, ...); -- invalid_arg_list.js:5:6 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an expression but instead found ','. 3 │ foo(a,b; 4 │ foo(a,b var; > 5 │ foo (,,b); │ ^ 6 │ foo (a, ...); 7 │ i Expected an expression here. 3 │ foo(a,b; 4 │ foo(a,b var; > 5 │ foo (,,b); │ ^ 6 │ foo (a, ...); 7 │ -- invalid_arg_list.js:5:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an expression but instead found ','. 3 │ foo(a,b; 4 │ foo(a,b var; > 5 │ foo (,,b); │ ^ 6 │ foo (a, ...); 7 │ i Expected an expression here. 3 │ foo(a,b; 4 │ foo(a,b var; > 5 │ foo (,,b); │ ^ 6 │ foo (a, ...); 7 │ -- invalid_arg_list.js:6:12 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an expression, or an assignment but instead found ')'. 4 │ foo(a,b var; 5 │ foo (,,b); > 6 │ foo (a, ...); │ ^ 7 │ i Expected an expression, or an assignment here. 4 │ foo(a,b var; 5 │ foo (,,b); > 6 │ foo (a, ...); │ ^ 7 │ -- function foo(...args) {} let a, b, c; foo(a,b; foo(a,b var; foo (,,b); foo (a, ...);