JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsExpressionStatement { expression: JsLogicalExpression { left: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@0..4 "foo" [] [Whitespace(" ")], }, }, operator_token: QUESTION2@4..7 "??" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@7..10 "bar" [] [], }, }, }, semicolon_token: missing (optional), }, JsExpressionStatement { expression: JsLogicalExpression { left: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@10..13 "a" [Newline("\n")] [Whitespace(" ")], }, }, operator_token: PIPE2@13..16 "||" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@16..17 "b" [] [], }, }, }, semicolon_token: missing (optional), }, JsExpressionStatement { expression: JsLogicalExpression { left: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@17..20 "a" [Newline("\n")] [Whitespace(" ")], }, }, operator_token: AMP2@20..23 "&&" [] [Whitespace(" ")], right: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@23..24 "b" [] [], }, }, }, semicolon_token: missing (optional), }, ], eof_token: EOF@24..25 "" [Newline("\n")] [], } 0: JS_MODULE@0..25 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..24 0: JS_EXPRESSION_STATEMENT@0..10 0: JS_LOGICAL_EXPRESSION@0..10 0: JS_IDENTIFIER_EXPRESSION@0..4 0: JS_REFERENCE_IDENTIFIER@0..4 0: IDENT@0..4 "foo" [] [Whitespace(" ")] 1: QUESTION2@4..7 "??" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@7..10 0: JS_REFERENCE_IDENTIFIER@7..10 0: IDENT@7..10 "bar" [] [] 1: (empty) 1: JS_EXPRESSION_STATEMENT@10..17 0: JS_LOGICAL_EXPRESSION@10..17 0: JS_IDENTIFIER_EXPRESSION@10..13 0: JS_REFERENCE_IDENTIFIER@10..13 0: IDENT@10..13 "a" [Newline("\n")] [Whitespace(" ")] 1: PIPE2@13..16 "||" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@16..17 0: JS_REFERENCE_IDENTIFIER@16..17 0: IDENT@16..17 "b" [] [] 1: (empty) 2: JS_EXPRESSION_STATEMENT@17..24 0: JS_LOGICAL_EXPRESSION@17..24 0: JS_IDENTIFIER_EXPRESSION@17..20 0: JS_REFERENCE_IDENTIFIER@17..20 0: IDENT@17..20 "a" [Newline("\n")] [Whitespace(" ")] 1: AMP2@20..23 "&&" [] [Whitespace(" ")] 2: JS_IDENTIFIER_EXPRESSION@23..24 0: JS_REFERENCE_IDENTIFIER@23..24 0: IDENT@23..24 "b" [] [] 1: (empty) 4: EOF@24..25 "" [Newline("\n")] []