JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsForStatement {
for_token: FOR_KW@0..4 "for" [] [Whitespace(" ")],
l_paren_token: L_PAREN@4..5 "(" [] [],
initializer: JsVariableDeclaration {
await_token: missing (optional),
kind: LET_KW@5..9 "let" [] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@9..11 "i" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@11..13 "=" [] [Whitespace(" ")],
expression: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@13..14 "5" [] [],
},
},
},
],
},
first_semi_token: SEMICOLON@14..16 ";" [] [Whitespace(" ")],
test: JsBinaryExpression {
left: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@16..18 "i" [] [Whitespace(" ")],
},
},
operator_token: L_ANGLE@18..20 "<" [] [Whitespace(" ")],
right: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@20..22 "10" [] [],
},
},
second_semi_token: SEMICOLON@22..24 ";" [] [Whitespace(" ")],
update: JsPostUpdateExpression {
operand: JsIdentifierAssignment {
name_token: IDENT@24..25 "i" [] [],
},
operator_token: PLUS2@25..27 "++" [] [],
},
r_paren_token: R_PAREN@27..29 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@29..30 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@30..31 "}" [] [],
},
},
JsForOfStatement {
for_token: FOR_KW@31..36 "for" [Newline("\n")] [Whitespace(" ")],
await_token: missing (optional),
l_paren_token: L_PAREN@36..37 "(" [] [],
initializer: JsForVariableDeclaration {
await_token: missing (optional),
kind_token: LET_KW@37..41 "let" [] [Whitespace(" ")],
declarator: JsVariableDeclarator {
id: JsObjectBindingPattern {
l_curly_token: L_CURLY@41..43 "{" [] [Whitespace(" ")],
properties: JsObjectBindingPatternPropertyList [
JsObjectBindingPatternShorthandProperty {
identifier: JsIdentifierBinding {
name_token: IDENT@43..46 "foo" [] [],
},
init: missing (optional),
},
COMMA@46..48 "," [] [Whitespace(" ")],
JsObjectBindingPatternShorthandProperty {
identifier: JsIdentifierBinding {
name_token: IDENT@48..52 "bar" [] [Whitespace(" ")],
},
init: missing (optional),
},
],
r_curly_token: R_CURLY@52..54 "}" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: missing (optional),
},
},
of_token: OF_KW@54..57 "of" [] [Whitespace(" ")],
expression: JsObjectExpression {
l_curly_token: L_CURLY@57..58 "{" [] [],
members: JsObjectMemberList [],
r_curly_token: R_CURLY@58..59 "}" [] [],
},
r_paren_token: R_PAREN@59..61 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@61..62 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@62..63 "}" [] [],
},
},
JsForInStatement {
for_token: FOR_KW@63..68 "for" [Newline("\n")] [Whitespace(" ")],
l_paren_token: L_PAREN@68..69 "(" [] [],
initializer: JsIdentifierAssignment {
name_token: IDENT@69..73 "foo" [] [Whitespace(" ")],
},
in_token: IN_KW@73..76 "in" [] [Whitespace(" ")],
expression: JsObjectExpression {
l_curly_token: L_CURLY@76..77 "{" [] [],
members: JsObjectMemberList [],
r_curly_token: R_CURLY@77..78 "}" [] [],
},
r_paren_token: R_PAREN@78..80 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@80..81 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@81..82 "}" [] [],
},
},
JsForStatement {
for_token: FOR_KW@82..87 "for" [Newline("\n")] [Whitespace(" ")],
l_paren_token: L_PAREN@87..88 "(" [] [],
initializer: missing (optional),
first_semi_token: SEMICOLON@88..89 ";" [] [],
test: missing (optional),
second_semi_token: SEMICOLON@89..90 ";" [] [],
update: missing (optional),
r_paren_token: R_PAREN@90..92 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@92..93 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@93..94 "}" [] [],
},
},
JsForOfStatement {
for_token: FOR_KW@94..99 "for" [Newline("\n")] [Whitespace(" ")],
await_token: missing (optional),
l_paren_token: L_PAREN@99..100 "(" [] [],
initializer: JsForVariableDeclaration {
await_token: missing (optional),
kind_token: LET_KW@100..104 "let" [] [Whitespace(" ")],
declarator: JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@104..108 "foo" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: missing (optional),
},
},
of_token: OF_KW@108..111 "of" [] [Whitespace(" ")],
expression: JsArrayExpression {
l_brack_token: L_BRACK@111..112 "[" [] [],
elements: JsArrayElementList [],
r_brack_token: R_BRACK@112..113 "]" [] [],
},
r_paren_token: R_PAREN@113..115 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@115..116 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@116..117 "}" [] [],
},
},
JsForStatement {
for_token: FOR_KW@117..122 "for" [Newline("\n")] [Whitespace(" ")],
l_paren_token: L_PAREN@122..123 "(" [] [],
initializer: JsVariableDeclaration {
await_token: missing (optional),
kind: LET_KW@123..127 "let" [] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@127..129 "i" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@129..131 "=" [] [Whitespace(" ")],
expression: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@131..132 "5" [] [],
},
},
},
COMMA@132..134 "," [] [Whitespace(" ")],
JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@134..136 "j" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@136..138 "=" [] [Whitespace(" ")],
expression: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@138..139 "6" [] [],
},
},
},
],
},
first_semi_token: SEMICOLON@139..141 ";" [] [Whitespace(" ")],
test: JsBinaryExpression {
left: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@141..143 "i" [] [Whitespace(" ")],
},
},
operator_token: L_ANGLE@143..145 "<" [] [Whitespace(" ")],
right: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@145..146 "j" [] [],
},
},
},
second_semi_token: SEMICOLON@146..148 ";" [] [Whitespace(" ")],
update: JsPreUpdateExpression {
operator_token: PLUS2@148..150 "++" [] [],
operand: JsIdentifierAssignment {
name_token: IDENT@150..151 "j" [] [],
},
},
r_paren_token: R_PAREN@151..153 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@153..154 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@154..155 "}" [] [],
},
},
JsForOfStatement {
for_token: FOR_KW@155..160 "for" [Newline("\n")] [Whitespace(" ")],
await_token: AWAIT_KW@160..166 "await" [] [Whitespace(" ")],
l_paren_token: L_PAREN@166..167 "(" [] [],
initializer: JsForVariableDeclaration {
await_token: missing (optional),
kind_token: LET_KW@167..171 "let" [] [Whitespace(" ")],
declarator: JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@171..173 "a" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: missing (optional),
},
},
of_token: OF_KW@173..176 "of" [] [Whitespace(" ")],
expression: JsArrayExpression {
l_brack_token: L_BRACK@176..177 "[" [] [],
elements: JsArrayElementList [],
r_brack_token: R_BRACK@177..178 "]" [] [],
},
r_paren_token: R_PAREN@178..180 ")" [] [Whitespace(" ")],
body: JsBlockStatement {
l_curly_token: L_CURLY@180..181 "{" [] [],
statements: JsStatementList [],
r_curly_token: R_CURLY@181..182 "}" [] [],
},
},
],
eof_token: EOF@182..183 "" [Newline("\n")] [],
}
0: JS_MODULE@0..183
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..182
0: JS_FOR_STATEMENT@0..31
0: FOR_KW@0..4 "for" [] [Whitespace(" ")]
1: L_PAREN@4..5 "(" [] []
2: JS_VARIABLE_DECLARATION@5..14
0: (empty)
1: LET_KW@5..9 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@9..14
0: JS_VARIABLE_DECLARATOR@9..14
0: JS_IDENTIFIER_BINDING@9..11
0: IDENT@9..11 "i" [] [Whitespace(" ")]
1: (empty)
2: JS_INITIALIZER_CLAUSE@11..14
0: EQ@11..13 "=" [] [Whitespace(" ")]
1: JS_NUMBER_LITERAL_EXPRESSION@13..14
0: JS_NUMBER_LITERAL@13..14 "5" [] []
3: SEMICOLON@14..16 ";" [] [Whitespace(" ")]
4: JS_BINARY_EXPRESSION@16..22
0: JS_IDENTIFIER_EXPRESSION@16..18
0: JS_REFERENCE_IDENTIFIER@16..18
0: IDENT@16..18 "i" [] [Whitespace(" ")]
1: L_ANGLE@18..20 "<" [] [Whitespace(" ")]
2: JS_NUMBER_LITERAL_EXPRESSION@20..22
0: JS_NUMBER_LITERAL@20..22 "10" [] []
5: SEMICOLON@22..24 ";" [] [Whitespace(" ")]
6: JS_POST_UPDATE_EXPRESSION@24..27
0: JS_IDENTIFIER_ASSIGNMENT@24..25
0: IDENT@24..25 "i" [] []
1: PLUS2@25..27 "++" [] []
7: R_PAREN@27..29 ")" [] [Whitespace(" ")]
8: JS_BLOCK_STATEMENT@29..31
0: L_CURLY@29..30 "{" [] []
1: JS_STATEMENT_LIST@30..30
2: R_CURLY@30..31 "}" [] []
1: JS_FOR_OF_STATEMENT@31..63
0: FOR_KW@31..36 "for" [Newline("\n")] [Whitespace(" ")]
1: (empty)
2: L_PAREN@36..37 "(" [] []
3: JS_FOR_VARIABLE_DECLARATION@37..54
0: (empty)
1: LET_KW@37..41 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR@41..54
0: JS_OBJECT_BINDING_PATTERN@41..54
0: L_CURLY@41..43 "{" [] [Whitespace(" ")]
1: JS_OBJECT_BINDING_PATTERN_PROPERTY_LIST@43..52
0: JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY@43..46
0: JS_IDENTIFIER_BINDING@43..46
0: IDENT@43..46 "foo" [] []
1: (empty)
1: COMMA@46..48 "," [] [Whitespace(" ")]
2: JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY@48..52
0: JS_IDENTIFIER_BINDING@48..52
0: IDENT@48..52 "bar" [] [Whitespace(" ")]
1: (empty)
2: R_CURLY@52..54 "}" [] [Whitespace(" ")]
1: (empty)
2: (empty)
4: OF_KW@54..57 "of" [] [Whitespace(" ")]
5: JS_OBJECT_EXPRESSION@57..59
0: L_CURLY@57..58 "{" [] []
1: JS_OBJECT_MEMBER_LIST@58..58
2: R_CURLY@58..59 "}" [] []
6: R_PAREN@59..61 ")" [] [Whitespace(" ")]
7: JS_BLOCK_STATEMENT@61..63
0: L_CURLY@61..62 "{" [] []
1: JS_STATEMENT_LIST@62..62
2: R_CURLY@62..63 "}" [] []
2: JS_FOR_IN_STATEMENT@63..82
0: FOR_KW@63..68 "for" [Newline("\n")] [Whitespace(" ")]
1: L_PAREN@68..69 "(" [] []
2: JS_IDENTIFIER_ASSIGNMENT@69..73
0: IDENT@69..73 "foo" [] [Whitespace(" ")]
3: IN_KW@73..76 "in" [] [Whitespace(" ")]
4: JS_OBJECT_EXPRESSION@76..78
0: L_CURLY@76..77 "{" [] []
1: JS_OBJECT_MEMBER_LIST@77..77
2: R_CURLY@77..78 "}" [] []
5: R_PAREN@78..80 ")" [] [Whitespace(" ")]
6: JS_BLOCK_STATEMENT@80..82
0: L_CURLY@80..81 "{" [] []
1: JS_STATEMENT_LIST@81..81
2: R_CURLY@81..82 "}" [] []
3: JS_FOR_STATEMENT@82..94
0: FOR_KW@82..87 "for" [Newline("\n")] [Whitespace(" ")]
1: L_PAREN@87..88 "(" [] []
2: (empty)
3: SEMICOLON@88..89 ";" [] []
4: (empty)
5: SEMICOLON@89..90 ";" [] []
6: (empty)
7: R_PAREN@90..92 ")" [] [Whitespace(" ")]
8: JS_BLOCK_STATEMENT@92..94
0: L_CURLY@92..93 "{" [] []
1: JS_STATEMENT_LIST@93..93
2: R_CURLY@93..94 "}" [] []
4: JS_FOR_OF_STATEMENT@94..117
0: FOR_KW@94..99 "for" [Newline("\n")] [Whitespace(" ")]
1: (empty)
2: L_PAREN@99..100 "(" [] []
3: JS_FOR_VARIABLE_DECLARATION@100..108
0: (empty)
1: LET_KW@100..104 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR@104..108
0: JS_IDENTIFIER_BINDING@104..108
0: IDENT@104..108 "foo" [] [Whitespace(" ")]
1: (empty)
2: (empty)
4: OF_KW@108..111 "of" [] [Whitespace(" ")]
5: JS_ARRAY_EXPRESSION@111..113
0: L_BRACK@111..112 "[" [] []
1: JS_ARRAY_ELEMENT_LIST@112..112
2: R_BRACK@112..113 "]" [] []
6: R_PAREN@113..115 ")" [] [Whitespace(" ")]
7: JS_BLOCK_STATEMENT@115..117
0: L_CURLY@115..116 "{" [] []
1: JS_STATEMENT_LIST@116..116
2: R_CURLY@116..117 "}" [] []
5: JS_FOR_STATEMENT@117..155
0: FOR_KW@117..122 "for" [Newline("\n")] [Whitespace(" ")]
1: L_PAREN@122..123 "(" [] []
2: JS_VARIABLE_DECLARATION@123..139
0: (empty)
1: LET_KW@123..127 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@127..139
0: JS_VARIABLE_DECLARATOR@127..132
0: JS_IDENTIFIER_BINDING@127..129
0: IDENT@127..129 "i" [] [Whitespace(" ")]
1: (empty)
2: JS_INITIALIZER_CLAUSE@129..132
0: EQ@129..131 "=" [] [Whitespace(" ")]
1: JS_NUMBER_LITERAL_EXPRESSION@131..132
0: JS_NUMBER_LITERAL@131..132 "5" [] []
1: COMMA@132..134 "," [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR@134..139
0: JS_IDENTIFIER_BINDING@134..136
0: IDENT@134..136 "j" [] [Whitespace(" ")]
1: (empty)
2: JS_INITIALIZER_CLAUSE@136..139
0: EQ@136..138 "=" [] [Whitespace(" ")]
1: JS_NUMBER_LITERAL_EXPRESSION@138..139
0: JS_NUMBER_LITERAL@138..139 "6" [] []
3: SEMICOLON@139..141 ";" [] [Whitespace(" ")]
4: JS_BINARY_EXPRESSION@141..146
0: JS_IDENTIFIER_EXPRESSION@141..143
0: JS_REFERENCE_IDENTIFIER@141..143
0: IDENT@141..143 "i" [] [Whitespace(" ")]
1: L_ANGLE@143..145 "<" [] [Whitespace(" ")]
2: JS_IDENTIFIER_EXPRESSION@145..146
0: JS_REFERENCE_IDENTIFIER@145..146
0: IDENT@145..146 "j" [] []
5: SEMICOLON@146..148 ";" [] [Whitespace(" ")]
6: JS_PRE_UPDATE_EXPRESSION@148..151
0: PLUS2@148..150 "++" [] []
1: JS_IDENTIFIER_ASSIGNMENT@150..151
0: IDENT@150..151 "j" [] []
7: R_PAREN@151..153 ")" [] [Whitespace(" ")]
8: JS_BLOCK_STATEMENT@153..155
0: L_CURLY@153..154 "{" [] []
1: JS_STATEMENT_LIST@154..154
2: R_CURLY@154..155 "}" [] []
6: JS_FOR_OF_STATEMENT@155..182
0: FOR_KW@155..160 "for" [Newline("\n")] [Whitespace(" ")]
1: AWAIT_KW@160..166 "await" [] [Whitespace(" ")]
2: L_PAREN@166..167 "(" [] []
3: JS_FOR_VARIABLE_DECLARATION@167..173
0: (empty)
1: LET_KW@167..171 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR@171..173
0: JS_IDENTIFIER_BINDING@171..173
0: IDENT@171..173 "a" [] [Whitespace(" ")]
1: (empty)
2: (empty)
4: OF_KW@173..176 "of" [] [Whitespace(" ")]
5: JS_ARRAY_EXPRESSION@176..178
0: L_BRACK@176..177 "[" [] []
1: JS_ARRAY_ELEMENT_LIST@177..177
2: R_BRACK@177..178 "]" [] []
6: R_PAREN@178..180 ")" [] [Whitespace(" ")]
7: JS_BLOCK_STATEMENT@180..182
0: L_CURLY@180..181 "{" [] []
1: JS_STATEMENT_LIST@181..181
2: R_CURLY@181..182 "}" [] []
4: EOF@182..183 "" [Newline("\n")] []