JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsDoWhileStatement { do_token: DO_KW@0..3 "do" [] [Whitespace(" ")], body: JsBlockStatement { l_curly_token: L_CURLY@3..5 "{" [] [Whitespace(" ")], statements: JsStatementList [], r_curly_token: R_CURLY@5..7 "}" [] [Whitespace(" ")], }, while_token: WHILE_KW@7..13 "while" [] [Whitespace(" ")], l_paren_token: L_PAREN@13..14 "(" [] [], test: JsBooleanLiteralExpression { value_token: TRUE_KW@14..18 "true" [] [], }, r_paren_token: R_PAREN@18..19 ")" [] [], semicolon_token: missing (optional), }, JsDoWhileStatement { do_token: DO_KW@19..23 "do" [Newline("\n")] [Whitespace(" ")], body: JsBlockStatement { l_curly_token: L_CURLY@23..25 "{" [] [Whitespace(" ")], statements: JsStatementList [ JsThrowStatement { throw_token: THROW_KW@25..31 "throw" [] [Whitespace(" ")], argument: JsCallExpression { callee: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@31..36 "Error" [] [], }, }, optional_chain_token: missing (optional), type_arguments: missing (optional), arguments: JsCallArguments { l_paren_token: L_PAREN@36..37 "(" [] [], args: JsCallArgumentList [ JsStringLiteralExpression { value_token: JS_STRING_LITERAL@37..42 "\"foo\"" [] [], }, ], r_paren_token: R_PAREN@42..44 ")" [] [Whitespace(" ")], }, }, semicolon_token: missing (optional), }, ], r_curly_token: R_CURLY@44..46 "}" [] [Whitespace(" ")], }, while_token: WHILE_KW@46..52 "while" [] [Whitespace(" ")], l_paren_token: L_PAREN@52..53 "(" [] [], test: JsBooleanLiteralExpression { value_token: TRUE_KW@53..57 "true" [] [], }, r_paren_token: R_PAREN@57..58 ")" [] [], semicolon_token: missing (optional), }, JsDoWhileStatement { do_token: DO_KW@58..62 "do" [Newline("\n")] [Whitespace(" ")], body: JsBlockStatement { l_curly_token: L_CURLY@62..64 "{" [] [Whitespace(" ")], statements: JsStatementList [ JsBreakStatement { break_token: BREAK_KW@64..69 "break" [] [], label: missing (optional), semicolon_token: SEMICOLON@69..71 ";" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@71..73 "}" [] [Whitespace(" ")], }, while_token: WHILE_KW@73..79 "while" [] [Whitespace(" ")], l_paren_token: L_PAREN@79..80 "(" [] [], test: JsBooleanLiteralExpression { value_token: TRUE_KW@80..84 "true" [] [], }, r_paren_token: R_PAREN@84..85 ")" [] [], semicolon_token: missing (optional), }, ], eof_token: EOF@85..86 "" [Newline("\n")] [], } 0: JS_MODULE@0..86 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..85 0: JS_DO_WHILE_STATEMENT@0..19 0: DO_KW@0..3 "do" [] [Whitespace(" ")] 1: JS_BLOCK_STATEMENT@3..7 0: L_CURLY@3..5 "{" [] [Whitespace(" ")] 1: JS_STATEMENT_LIST@5..5 2: R_CURLY@5..7 "}" [] [Whitespace(" ")] 2: WHILE_KW@7..13 "while" [] [Whitespace(" ")] 3: L_PAREN@13..14 "(" [] [] 4: JS_BOOLEAN_LITERAL_EXPRESSION@14..18 0: TRUE_KW@14..18 "true" [] [] 5: R_PAREN@18..19 ")" [] [] 6: (empty) 1: JS_DO_WHILE_STATEMENT@19..58 0: DO_KW@19..23 "do" [Newline("\n")] [Whitespace(" ")] 1: JS_BLOCK_STATEMENT@23..46 0: L_CURLY@23..25 "{" [] [Whitespace(" ")] 1: JS_STATEMENT_LIST@25..44 0: JS_THROW_STATEMENT@25..44 0: THROW_KW@25..31 "throw" [] [Whitespace(" ")] 1: JS_CALL_EXPRESSION@31..44 0: JS_IDENTIFIER_EXPRESSION@31..36 0: JS_REFERENCE_IDENTIFIER@31..36 0: IDENT@31..36 "Error" [] [] 1: (empty) 2: (empty) 3: JS_CALL_ARGUMENTS@36..44 0: L_PAREN@36..37 "(" [] [] 1: JS_CALL_ARGUMENT_LIST@37..42 0: JS_STRING_LITERAL_EXPRESSION@37..42 0: JS_STRING_LITERAL@37..42 "\"foo\"" [] [] 2: R_PAREN@42..44 ")" [] [Whitespace(" ")] 2: (empty) 2: R_CURLY@44..46 "}" [] [Whitespace(" ")] 2: WHILE_KW@46..52 "while" [] [Whitespace(" ")] 3: L_PAREN@52..53 "(" [] [] 4: JS_BOOLEAN_LITERAL_EXPRESSION@53..57 0: TRUE_KW@53..57 "true" [] [] 5: R_PAREN@57..58 ")" [] [] 6: (empty) 2: JS_DO_WHILE_STATEMENT@58..85 0: DO_KW@58..62 "do" [Newline("\n")] [Whitespace(" ")] 1: JS_BLOCK_STATEMENT@62..73 0: L_CURLY@62..64 "{" [] [Whitespace(" ")] 1: JS_STATEMENT_LIST@64..71 0: JS_BREAK_STATEMENT@64..71 0: BREAK_KW@64..69 "break" [] [] 1: (empty) 2: SEMICOLON@69..71 ";" [] [Whitespace(" ")] 2: R_CURLY@71..73 "}" [] [Whitespace(" ")] 2: WHILE_KW@73..79 "while" [] [Whitespace(" ")] 3: L_PAREN@79..80 "(" [] [] 4: JS_BOOLEAN_LITERAL_EXPRESSION@80..84 0: TRUE_KW@80..84 "true" [] [] 5: R_PAREN@84..85 ")" [] [] 6: (empty) 4: EOF@85..86 "" [Newline("\n")] []