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")] []