JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsExpressionStatement { expression: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@0..3 "foo" [] [], }, }, operator_token: DOT@3..4 "." [] [], member: JsName { value_token: IDENT@4..7 "bar" [] [], }, }, semicolon_token: missing (optional), }, JsExpressionStatement { expression: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@7..11 "foo" [Newline("\n")] [], }, }, operator_token: DOT@11..12 "." [] [], member: JsName { value_token: IDENT@12..17 "await" [] [], }, }, semicolon_token: missing (optional), }, JsExpressionStatement { expression: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@17..21 "foo" [Newline("\n")] [], }, }, operator_token: DOT@21..22 "." [] [], member: JsName { value_token: IDENT@22..27 "yield" [] [], }, }, semicolon_token: missing (optional), }, JsExpressionStatement { expression: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@27..31 "foo" [Newline("\n")] [], }, }, operator_token: DOT@31..32 "." [] [], member: JsName { value_token: IDENT@32..35 "for" [] [], }, }, semicolon_token: missing (optional), }, JsExpressionStatement { expression: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@35..39 "foo" [Newline("\n")] [], }, }, operator_token: QUESTIONDOT@39..41 "?." [] [], member: JsName { value_token: IDENT@41..44 "for" [] [], }, }, semicolon_token: missing (optional), }, JsExpressionStatement { expression: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@44..48 "foo" [Newline("\n")] [], }, }, operator_token: QUESTIONDOT@48..50 "?." [] [], member: JsName { value_token: IDENT@50..53 "bar" [] [], }, }, semicolon_token: missing (optional), }, JsClassDeclaration { decorators: JsDecoratorList [], abstract_token: missing (optional), class_token: CLASS_KW@53..60 "class" [Newline("\n")] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@60..65 "Test" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), implements_clause: missing (optional), l_curly_token: L_CURLY@65..66 "{" [] [], members: JsClassMemberList [ JsPropertyClassMember { modifiers: JsPropertyModifierList [], name: JsPrivateClassMemberName { hash_token: HASH@66..70 "#" [Newline("\n"), Whitespace(" ")] [], id_token: IDENT@70..73 "bar" [] [], }, property_annotation: missing (optional), value: missing (optional), semicolon_token: missing (optional), }, JsMethodClassMember { modifiers: JsMethodModifierList [], async_token: missing (optional), star_token: missing (optional), name: JsLiteralMemberName { value: IDENT@73..80 "test" [Newline("\n"), Whitespace(" ")] [], }, question_mark_token: missing (optional), type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@80..81 "(" [] [], items: JsParameterList [ JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@81..86 "other" [] [], }, question_mark_token: missing (optional), type_annotation: missing (optional), initializer: missing (optional), }, ], r_paren_token: R_PAREN@86..88 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@88..89 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsExpressionStatement { expression: JsStaticMemberExpression { object: JsThisExpression { this_token: THIS_KW@89..98 "this" [Newline("\n"), Whitespace(" ")] [], }, operator_token: DOT@98..99 "." [] [], member: JsPrivateName { hash_token: HASH@99..100 "#" [] [], value_token: IDENT@100..103 "bar" [] [], }, }, semicolon_token: SEMICOLON@103..104 ";" [] [], }, JsExpressionStatement { expression: JsStaticMemberExpression { object: JsThisExpression { this_token: THIS_KW@104..113 "this" [Newline("\n"), Whitespace(" ")] [], }, operator_token: QUESTIONDOT@113..115 "?." [] [], member: JsPrivateName { hash_token: HASH@115..116 "#" [] [], value_token: IDENT@116..119 "bar" [] [], }, }, semicolon_token: SEMICOLON@119..120 ";" [] [], }, JsExpressionStatement { expression: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@120..130 "other" [Newline("\n"), Whitespace(" ")] [], }, }, operator_token: DOT@130..131 "." [] [], member: JsPrivateName { hash_token: HASH@131..132 "#" [] [], value_token: IDENT@132..135 "bar" [] [], }, }, semicolon_token: SEMICOLON@135..136 ";" [] [], }, JsExpressionStatement { expression: JsStaticMemberExpression { object: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@136..146 "other" [Newline("\n"), Whitespace(" ")] [], }, }, operator_token: QUESTIONDOT@146..148 "?." [] [], member: JsPrivateName { hash_token: HASH@148..149 "#" [] [], value_token: IDENT@149..152 "bar" [] [], }, }, semicolon_token: SEMICOLON@152..153 ";" [] [], }, ], r_curly_token: R_CURLY@153..157 "}" [Newline("\n"), Whitespace(" ")] [], }, }, ], r_curly_token: R_CURLY@157..159 "}" [Newline("\n")] [], }, ], eof_token: EOF@159..160 "" [Newline("\n")] [], } 0: JS_MODULE@0..160 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..159 0: JS_EXPRESSION_STATEMENT@0..7 0: JS_STATIC_MEMBER_EXPRESSION@0..7 0: JS_IDENTIFIER_EXPRESSION@0..3 0: JS_REFERENCE_IDENTIFIER@0..3 0: IDENT@0..3 "foo" [] [] 1: DOT@3..4 "." [] [] 2: JS_NAME@4..7 0: IDENT@4..7 "bar" [] [] 1: (empty) 1: JS_EXPRESSION_STATEMENT@7..17 0: JS_STATIC_MEMBER_EXPRESSION@7..17 0: JS_IDENTIFIER_EXPRESSION@7..11 0: JS_REFERENCE_IDENTIFIER@7..11 0: IDENT@7..11 "foo" [Newline("\n")] [] 1: DOT@11..12 "." [] [] 2: JS_NAME@12..17 0: IDENT@12..17 "await" [] [] 1: (empty) 2: JS_EXPRESSION_STATEMENT@17..27 0: JS_STATIC_MEMBER_EXPRESSION@17..27 0: JS_IDENTIFIER_EXPRESSION@17..21 0: JS_REFERENCE_IDENTIFIER@17..21 0: IDENT@17..21 "foo" [Newline("\n")] [] 1: DOT@21..22 "." [] [] 2: JS_NAME@22..27 0: IDENT@22..27 "yield" [] [] 1: (empty) 3: JS_EXPRESSION_STATEMENT@27..35 0: JS_STATIC_MEMBER_EXPRESSION@27..35 0: JS_IDENTIFIER_EXPRESSION@27..31 0: JS_REFERENCE_IDENTIFIER@27..31 0: IDENT@27..31 "foo" [Newline("\n")] [] 1: DOT@31..32 "." [] [] 2: JS_NAME@32..35 0: IDENT@32..35 "for" [] [] 1: (empty) 4: JS_EXPRESSION_STATEMENT@35..44 0: JS_STATIC_MEMBER_EXPRESSION@35..44 0: JS_IDENTIFIER_EXPRESSION@35..39 0: JS_REFERENCE_IDENTIFIER@35..39 0: IDENT@35..39 "foo" [Newline("\n")] [] 1: QUESTIONDOT@39..41 "?." [] [] 2: JS_NAME@41..44 0: IDENT@41..44 "for" [] [] 1: (empty) 5: JS_EXPRESSION_STATEMENT@44..53 0: JS_STATIC_MEMBER_EXPRESSION@44..53 0: JS_IDENTIFIER_EXPRESSION@44..48 0: JS_REFERENCE_IDENTIFIER@44..48 0: IDENT@44..48 "foo" [Newline("\n")] [] 1: QUESTIONDOT@48..50 "?." [] [] 2: JS_NAME@50..53 0: IDENT@50..53 "bar" [] [] 1: (empty) 6: JS_CLASS_DECLARATION@53..159 0: JS_DECORATOR_LIST@53..53 1: (empty) 2: CLASS_KW@53..60 "class" [Newline("\n")] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@60..65 0: IDENT@60..65 "Test" [] [Whitespace(" ")] 4: (empty) 5: (empty) 6: (empty) 7: L_CURLY@65..66 "{" [] [] 8: JS_CLASS_MEMBER_LIST@66..157 0: JS_PROPERTY_CLASS_MEMBER@66..73 0: JS_PROPERTY_MODIFIER_LIST@66..66 1: JS_PRIVATE_CLASS_MEMBER_NAME@66..73 0: HASH@66..70 "#" [Newline("\n"), Whitespace(" ")] [] 1: IDENT@70..73 "bar" [] [] 2: (empty) 3: (empty) 4: (empty) 1: JS_METHOD_CLASS_MEMBER@73..157 0: JS_METHOD_MODIFIER_LIST@73..73 1: (empty) 2: (empty) 3: JS_LITERAL_MEMBER_NAME@73..80 0: IDENT@73..80 "test" [Newline("\n"), Whitespace(" ")] [] 4: (empty) 5: (empty) 6: JS_PARAMETERS@80..88 0: L_PAREN@80..81 "(" [] [] 1: JS_PARAMETER_LIST@81..86 0: JS_FORMAL_PARAMETER@81..86 0: JS_DECORATOR_LIST@81..81 1: JS_IDENTIFIER_BINDING@81..86 0: IDENT@81..86 "other" [] [] 2: (empty) 3: (empty) 4: (empty) 2: R_PAREN@86..88 ")" [] [Whitespace(" ")] 7: (empty) 8: JS_FUNCTION_BODY@88..157 0: L_CURLY@88..89 "{" [] [] 1: JS_DIRECTIVE_LIST@89..89 2: JS_STATEMENT_LIST@89..153 0: JS_EXPRESSION_STATEMENT@89..104 0: JS_STATIC_MEMBER_EXPRESSION@89..103 0: JS_THIS_EXPRESSION@89..98 0: THIS_KW@89..98 "this" [Newline("\n"), Whitespace(" ")] [] 1: DOT@98..99 "." [] [] 2: JS_PRIVATE_NAME@99..103 0: HASH@99..100 "#" [] [] 1: IDENT@100..103 "bar" [] [] 1: SEMICOLON@103..104 ";" [] [] 1: JS_EXPRESSION_STATEMENT@104..120 0: JS_STATIC_MEMBER_EXPRESSION@104..119 0: JS_THIS_EXPRESSION@104..113 0: THIS_KW@104..113 "this" [Newline("\n"), Whitespace(" ")] [] 1: QUESTIONDOT@113..115 "?." [] [] 2: JS_PRIVATE_NAME@115..119 0: HASH@115..116 "#" [] [] 1: IDENT@116..119 "bar" [] [] 1: SEMICOLON@119..120 ";" [] [] 2: JS_EXPRESSION_STATEMENT@120..136 0: JS_STATIC_MEMBER_EXPRESSION@120..135 0: JS_IDENTIFIER_EXPRESSION@120..130 0: JS_REFERENCE_IDENTIFIER@120..130 0: IDENT@120..130 "other" [Newline("\n"), Whitespace(" ")] [] 1: DOT@130..131 "." [] [] 2: JS_PRIVATE_NAME@131..135 0: HASH@131..132 "#" [] [] 1: IDENT@132..135 "bar" [] [] 1: SEMICOLON@135..136 ";" [] [] 3: JS_EXPRESSION_STATEMENT@136..153 0: JS_STATIC_MEMBER_EXPRESSION@136..152 0: JS_IDENTIFIER_EXPRESSION@136..146 0: JS_REFERENCE_IDENTIFIER@136..146 0: IDENT@136..146 "other" [Newline("\n"), Whitespace(" ")] [] 1: QUESTIONDOT@146..148 "?." [] [] 2: JS_PRIVATE_NAME@148..152 0: HASH@148..149 "#" [] [] 1: IDENT@149..152 "bar" [] [] 1: SEMICOLON@152..153 ";" [] [] 3: R_CURLY@153..157 "}" [Newline("\n"), Whitespace(" ")] [] 9: R_CURLY@157..159 "}" [Newline("\n")] [] 4: EOF@159..160 "" [Newline("\n")] []