JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsClassDeclaration { decorators: JsDecoratorList [], abstract_token: missing (optional), class_token: CLASS_KW@0..6 "class" [] [Whitespace(" ")], id: JsIdentifierBinding { name_token: IDENT@6..8 "A" [] [Whitespace(" ")], }, type_parameters: missing (optional), extends_clause: missing (optional), implements_clause: missing (optional), l_curly_token: L_CURLY@8..9 "{" [] [], members: JsClassMemberList [ JsPropertyClassMember { modifiers: JsPropertyModifierList [], name: JsPrivateClassMemberName { hash_token: HASH@9..12 "#" [Newline("\n"), Whitespace("\t")] [], id_token: IDENT@12..16 "prop" [] [], }, property_annotation: missing (optional), value: missing (optional), semicolon_token: SEMICOLON@16..17 ";" [] [], }, JsMethodClassMember { modifiers: JsMethodModifierList [], async_token: missing (optional), star_token: missing (optional), name: JsLiteralMemberName { value: IDENT@17..23 "test" [Newline("\n"), Whitespace("\t")] [], }, question_mark_token: missing (optional), type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@23..24 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@24..26 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@26..27 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsExpressionStatement { expression: JsInExpression { property: JsPrivateName { hash_token: HASH@27..32 "#" [Newline("\n"), Whitespace(" ")] [], value_token: IDENT@32..37 "prop" [] [Whitespace(" ")], }, in_token: IN_KW@37..40 "in" [] [Whitespace(" ")], object: JsThisExpression { this_token: THIS_KW@40..44 "this" [] [], }, }, semicolon_token: missing (optional), }, ], r_curly_token: R_CURLY@44..47 "}" [Newline("\n"), Whitespace(" ")] [], }, }, ], r_curly_token: R_CURLY@47..49 "}" [Newline("\n")] [], }, ], eof_token: EOF@49..50 "" [Newline("\n")] [], } 0: JS_MODULE@0..50 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..49 0: JS_CLASS_DECLARATION@0..49 0: JS_DECORATOR_LIST@0..0 1: (empty) 2: CLASS_KW@0..6 "class" [] [Whitespace(" ")] 3: JS_IDENTIFIER_BINDING@6..8 0: IDENT@6..8 "A" [] [Whitespace(" ")] 4: (empty) 5: (empty) 6: (empty) 7: L_CURLY@8..9 "{" [] [] 8: JS_CLASS_MEMBER_LIST@9..47 0: JS_PROPERTY_CLASS_MEMBER@9..17 0: JS_PROPERTY_MODIFIER_LIST@9..9 1: JS_PRIVATE_CLASS_MEMBER_NAME@9..16 0: HASH@9..12 "#" [Newline("\n"), Whitespace("\t")] [] 1: IDENT@12..16 "prop" [] [] 2: (empty) 3: (empty) 4: SEMICOLON@16..17 ";" [] [] 1: JS_METHOD_CLASS_MEMBER@17..47 0: JS_METHOD_MODIFIER_LIST@17..17 1: (empty) 2: (empty) 3: JS_LITERAL_MEMBER_NAME@17..23 0: IDENT@17..23 "test" [Newline("\n"), Whitespace("\t")] [] 4: (empty) 5: (empty) 6: JS_PARAMETERS@23..26 0: L_PAREN@23..24 "(" [] [] 1: JS_PARAMETER_LIST@24..24 2: R_PAREN@24..26 ")" [] [Whitespace(" ")] 7: (empty) 8: JS_FUNCTION_BODY@26..47 0: L_CURLY@26..27 "{" [] [] 1: JS_DIRECTIVE_LIST@27..27 2: JS_STATEMENT_LIST@27..44 0: JS_EXPRESSION_STATEMENT@27..44 0: JS_IN_EXPRESSION@27..44 0: JS_PRIVATE_NAME@27..37 0: HASH@27..32 "#" [Newline("\n"), Whitespace(" ")] [] 1: IDENT@32..37 "prop" [] [Whitespace(" ")] 1: IN_KW@37..40 "in" [] [Whitespace(" ")] 2: JS_THIS_EXPRESSION@40..44 0: THIS_KW@40..44 "this" [] [] 1: (empty) 3: R_CURLY@44..47 "}" [Newline("\n"), Whitespace(" ")] [] 9: R_CURLY@47..49 "}" [Newline("\n")] [] 4: EOF@49..50 "" [Newline("\n")] []