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), }, COMMA@36..38 "," [] [Whitespace(" ")], JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@38..39 "d" [] [], }, variable_annotation: missing (optional), initializer: missing (optional), }, ], }, semicolon_token: SEMICOLON@39..40 ";" [] [], }, JsExpressionStatement { expression: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@40..44 "foo" [Newline("\n")] [], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@44..45 "(" [] [], args: JsCallArgumentList [ JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@45..46 "a" [] [], }, }, ], r_paren_token: R_PAREN@46..47 ")" [] [], }, }, semicolon_token: SEMICOLON@47..48 ";" [] [], }, JsExpressionStatement { expression: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@48..52 "foo" [Newline("\n")] [], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@52..53 "(" [] [], args: JsCallArgumentList [ JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@53..54 "a" [] [], }, }, COMMA@54..56 "," [] [Whitespace(" ")], JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@56..57 "b" [] [], }, }, COMMA@57..58 "," [] [], ], r_paren_token: R_PAREN@58..59 ")" [] [], }, }, semicolon_token: SEMICOLON@59..60 ";" [] [], }, JsExpressionStatement { expression: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@60..64 "foo" [Newline("\n")] [], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@64..65 "(" [] [], args: JsCallArgumentList [ JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@65..66 "a" [] [], }, }, COMMA@66..68 "," [] [Whitespace(" ")], JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@68..69 "b" [] [], }, }, COMMA@69..71 "," [] [Whitespace(" ")], JsSpread { dotdotdot_token: DOT3@71..74 "..." [] [], argument: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@74..75 "c" [] [], }, }, }, ], r_paren_token: R_PAREN@75..76 ")" [] [], }, }, semicolon_token: SEMICOLON@76..77 ";" [] [], }, JsExpressionStatement { expression: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@77..81 "foo" [Newline("\n")] [], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@81..82 "(" [] [], args: JsCallArgumentList [ JsSpread { dotdotdot_token: DOT3@82..85 "..." [] [], argument: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@85..86 "a" [] [], }, }, }, COMMA@86..88 "," [] [Whitespace(" ")], JsSpread { dotdotdot_token: DOT3@88..91 "..." [] [], argument: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@91..92 "b" [] [], }, }, }, COMMA@92..94 "," [] [Whitespace(" ")], JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@94..95 "c" [] [], }, }, COMMA@95..97 "," [] [Whitespace(" ")], JsSpread { dotdotdot_token: DOT3@97..100 "..." [] [], argument: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@100..101 "d" [] [], }, }, }, COMMA@101..102 "," [] [], ], r_paren_token: R_PAREN@102..103 ")" [] [], }, }, semicolon_token: SEMICOLON@103..104 ";" [] [], }, ], eof_token: EOF@104..105 "" [Newline("\n")] [], } 0: JS_MODULE@0..105 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..104 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..40 0: JS_VARIABLE_DECLARATION@24..39 0: (empty) 1: LET_KW@24..29 "let" [Newline("\n")] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@29..39 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) 5: COMMA@36..38 "," [] [Whitespace(" ")] 6: JS_VARIABLE_DECLARATOR@38..39 0: JS_IDENTIFIER_BINDING@38..39 0: IDENT@38..39 "d" [] [] 1: (empty) 2: (empty) 1: SEMICOLON@39..40 ";" [] [] 2: JS_EXPRESSION_STATEMENT@40..48 0: JS_CALL_EXPRESSION@40..47 0: JS_IDENTIFIER_EXPRESSION@40..44 0: JS_REFERENCE_IDENTIFIER@40..44 0: IDENT@40..44 "foo" [Newline("\n")] [] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@44..47 0: L_PAREN@44..45 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@45..46 0: JS_IDENTIFIER_EXPRESSION@45..46 0: JS_REFERENCE_IDENTIFIER@45..46 0: IDENT@45..46 "a" [] [] 2: R_PAREN@46..47 ")" [] [] 1: SEMICOLON@47..48 ";" [] [] 3: JS_EXPRESSION_STATEMENT@48..60 0: JS_CALL_EXPRESSION@48..59 0: JS_IDENTIFIER_EXPRESSION@48..52 0: JS_REFERENCE_IDENTIFIER@48..52 0: IDENT@48..52 "foo" [Newline("\n")] [] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@52..59 0: L_PAREN@52..53 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@53..58 0: JS_IDENTIFIER_EXPRESSION@53..54 0: JS_REFERENCE_IDENTIFIER@53..54 0: IDENT@53..54 "a" [] [] 1: COMMA@54..56 "," [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@56..57 0: JS_REFERENCE_IDENTIFIER@56..57 0: IDENT@56..57 "b" [] [] 3: COMMA@57..58 "," [] [] 2: R_PAREN@58..59 ")" [] [] 1: SEMICOLON@59..60 ";" [] [] 4: JS_EXPRESSION_STATEMENT@60..77 0: JS_CALL_EXPRESSION@60..76 0: JS_IDENTIFIER_EXPRESSION@60..64 0: JS_REFERENCE_IDENTIFIER@60..64 0: IDENT@60..64 "foo" [Newline("\n")] [] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@64..76 0: L_PAREN@64..65 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@65..75 0: JS_IDENTIFIER_EXPRESSION@65..66 0: JS_REFERENCE_IDENTIFIER@65..66 0: IDENT@65..66 "a" [] [] 1: COMMA@66..68 "," [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@68..69 0: JS_REFERENCE_IDENTIFIER@68..69 0: IDENT@68..69 "b" [] [] 3: COMMA@69..71 "," [] [Whitespace(" ")] 4: JS_SPREAD@71..75 0: DOT3@71..74 "..." [] [] 1: JS_IDENTIFIER_EXPRESSION@74..75 0: JS_REFERENCE_IDENTIFIER@74..75 0: IDENT@74..75 "c" [] [] 2: R_PAREN@75..76 ")" [] [] 1: SEMICOLON@76..77 ";" [] [] 5: JS_EXPRESSION_STATEMENT@77..104 0: JS_CALL_EXPRESSION@77..103 0: JS_IDENTIFIER_EXPRESSION@77..81 0: JS_REFERENCE_IDENTIFIER@77..81 0: IDENT@77..81 "foo" [Newline("\n")] [] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@81..103 0: L_PAREN@81..82 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@82..102 0: JS_SPREAD@82..86 0: DOT3@82..85 "..." [] [] 1: JS_IDENTIFIER_EXPRESSION@85..86 0: JS_REFERENCE_IDENTIFIER@85..86 0: IDENT@85..86 "a" [] [] 1: COMMA@86..88 "," [] [Whitespace(" ")] 2: JS_SPREAD@88..92 0: DOT3@88..91 "..." [] [] 1: JS_IDENTIFIER_EXPRESSION@91..92 0: JS_REFERENCE_IDENTIFIER@91..92 0: IDENT@91..92 "b" [] [] 3: COMMA@92..94 "," [] [Whitespace(" ")] 4: JS_IDENTIFIER_EXPRESSION@94..95 0: JS_REFERENCE_IDENTIFIER@94..95 0: IDENT@94..95 "c" [] [] 5: COMMA@95..97 "," [] [Whitespace(" ")] 6: JS_SPREAD@97..101 0: DOT3@97..100 "..." [] [] 1: JS_IDENTIFIER_EXPRESSION@100..101 0: JS_REFERENCE_IDENTIFIER@100..101 0: IDENT@100..101 "d" [] [] 7: COMMA@101..102 "," [] [] 2: R_PAREN@102..103 ")" [] [] 1: SEMICOLON@103..104 ";" [] [] 4: EOF@104..105 "" [Newline("\n")] []