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