JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsVariableStatement { declaration: JsVariableDeclaration { await_token: missing (optional), kind: LET_KW@0..4 "let" [] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsIdentifierBinding { name_token: IDENT@4..6 "a" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@6..8 "=" [] [Whitespace(" ")], expression: JsObjectExpression { l_curly_token: L_CURLY@8..9 "{" [] [], members: JsObjectMemberList [ JsGetterObjectMember { get_token: GET_KW@9..16 "get" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], name: JsLiteralMemberName { value: IDENT@16..19 "foo" [] [], }, l_paren_token: L_PAREN@19..20 "(" [] [], r_paren_token: R_PAREN@20..22 ")" [] [Whitespace(" ")], return_type: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@22..23 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsReturnStatement { return_token: RETURN_KW@23..35 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], argument: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@35..38 "foo" [] [], }, }, semicolon_token: SEMICOLON@38..39 ";" [] [], }, ], r_curly_token: R_CURLY@39..43 "}" [Newline("\n"), Whitespace(" ")] [], }, }, COMMA@43..44 "," [] [], JsGetterObjectMember { get_token: GET_KW@44..51 "get" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], name: JsLiteralMemberName { value: JS_STRING_LITERAL@51..56 "\"bar\"" [] [], }, l_paren_token: L_PAREN@56..57 "(" [] [], r_paren_token: R_PAREN@57..59 ")" [] [Whitespace(" ")], return_type: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@59..60 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsReturnStatement { return_token: RETURN_KW@60..72 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], argument: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@72..77 "\"bar\"" [] [], }, semicolon_token: SEMICOLON@77..78 ";" [] [], }, ], r_curly_token: R_CURLY@78..82 "}" [Newline("\n"), Whitespace(" ")] [], }, }, COMMA@82..83 "," [] [], JsGetterObjectMember { get_token: GET_KW@83..90 "get" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], name: JsComputedMemberName { l_brack_token: L_BRACK@90..91 "[" [] [], expression: JsBinaryExpression { left: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@91..95 "\"a\"" [] [Whitespace(" ")], }, operator_token: PLUS@95..97 "+" [] [Whitespace(" ")], right: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@97..100 "\"b\"" [] [], }, }, r_brack_token: R_BRACK@100..101 "]" [] [], }, l_paren_token: L_PAREN@101..102 "(" [] [], r_paren_token: R_PAREN@102..104 ")" [] [Whitespace(" ")], return_type: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@104..105 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsReturnStatement { return_token: RETURN_KW@105..117 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], argument: JsBinaryExpression { left: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@117..121 "\"a\"" [] [Whitespace(" ")], }, operator_token: PLUS@121..123 "+" [] [Whitespace(" ")], right: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@123..126 "\"b\"" [] [], }, }, semicolon_token: missing (optional), }, ], r_curly_token: R_CURLY@126..130 "}" [Newline("\n"), Whitespace(" ")] [], }, }, COMMA@130..131 "," [] [], JsGetterObjectMember { get_token: GET_KW@131..138 "get" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], name: JsLiteralMemberName { value: JS_NUMBER_LITERAL@138..139 "5" [] [], }, l_paren_token: L_PAREN@139..140 "(" [] [], r_paren_token: R_PAREN@140..142 ")" [] [Whitespace(" ")], return_type: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@142..143 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsReturnStatement { return_token: RETURN_KW@143..155 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], argument: JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@155..156 "5" [] [], }, semicolon_token: SEMICOLON@156..157 ";" [] [], }, ], r_curly_token: R_CURLY@157..161 "}" [Newline("\n"), Whitespace(" ")] [], }, }, COMMA@161..162 "," [] [], JsMethodObjectMember { async_token: missing (optional), star_token: missing (optional), name: JsLiteralMemberName { value: IDENT@162..168 "get" [Newline("\n"), Whitespace(" ")] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@168..169 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@169..171 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@171..172 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [ JsReturnStatement { return_token: RETURN_KW@172..183 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")], argument: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@183..218 "\"This is a method and not a getter\"" [] [], }, semicolon_token: SEMICOLON@218..219 ";" [] [], }, ], r_curly_token: R_CURLY@219..223 "}" [Newline("\n"), Whitespace(" ")] [], }, }, ], r_curly_token: R_CURLY@223..225 "}" [Newline("\n")] [], }, }, }, ], }, semicolon_token: missing (optional), }, ], eof_token: EOF@225..226 "" [Newline("\n")] [], } 0: JS_MODULE@0..226 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..225 0: JS_VARIABLE_STATEMENT@0..225 0: JS_VARIABLE_DECLARATION@0..225 0: (empty) 1: LET_KW@0..4 "let" [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@4..225 0: JS_VARIABLE_DECLARATOR@4..225 0: JS_IDENTIFIER_BINDING@4..6 0: IDENT@4..6 "a" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@6..225 0: EQ@6..8 "=" [] [Whitespace(" ")] 1: JS_OBJECT_EXPRESSION@8..225 0: L_CURLY@8..9 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@9..223 0: JS_GETTER_OBJECT_MEMBER@9..43 0: GET_KW@9..16 "get" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@16..19 0: IDENT@16..19 "foo" [] [] 2: L_PAREN@19..20 "(" [] [] 3: R_PAREN@20..22 ")" [] [Whitespace(" ")] 4: (empty) 5: JS_FUNCTION_BODY@22..43 0: L_CURLY@22..23 "{" [] [] 1: JS_DIRECTIVE_LIST@23..23 2: JS_STATEMENT_LIST@23..39 0: JS_RETURN_STATEMENT@23..39 0: RETURN_KW@23..35 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_IDENTIFIER_EXPRESSION@35..38 0: JS_REFERENCE_IDENTIFIER@35..38 0: IDENT@35..38 "foo" [] [] 2: SEMICOLON@38..39 ";" [] [] 3: R_CURLY@39..43 "}" [Newline("\n"), Whitespace(" ")] [] 1: COMMA@43..44 "," [] [] 2: JS_GETTER_OBJECT_MEMBER@44..82 0: GET_KW@44..51 "get" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@51..56 0: JS_STRING_LITERAL@51..56 "\"bar\"" [] [] 2: L_PAREN@56..57 "(" [] [] 3: R_PAREN@57..59 ")" [] [Whitespace(" ")] 4: (empty) 5: JS_FUNCTION_BODY@59..82 0: L_CURLY@59..60 "{" [] [] 1: JS_DIRECTIVE_LIST@60..60 2: JS_STATEMENT_LIST@60..78 0: JS_RETURN_STATEMENT@60..78 0: RETURN_KW@60..72 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_STRING_LITERAL_EXPRESSION@72..77 0: JS_STRING_LITERAL@72..77 "\"bar\"" [] [] 2: SEMICOLON@77..78 ";" [] [] 3: R_CURLY@78..82 "}" [Newline("\n"), Whitespace(" ")] [] 3: COMMA@82..83 "," [] [] 4: JS_GETTER_OBJECT_MEMBER@83..130 0: GET_KW@83..90 "get" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_COMPUTED_MEMBER_NAME@90..101 0: L_BRACK@90..91 "[" [] [] 1: JS_BINARY_EXPRESSION@91..100 0: JS_STRING_LITERAL_EXPRESSION@91..95 0: JS_STRING_LITERAL@91..95 "\"a\"" [] [Whitespace(" ")] 1: PLUS@95..97 "+" [] [Whitespace(" ")] 2: JS_STRING_LITERAL_EXPRESSION@97..100 0: JS_STRING_LITERAL@97..100 "\"b\"" [] [] 2: R_BRACK@100..101 "]" [] [] 2: L_PAREN@101..102 "(" [] [] 3: R_PAREN@102..104 ")" [] [Whitespace(" ")] 4: (empty) 5: JS_FUNCTION_BODY@104..130 0: L_CURLY@104..105 "{" [] [] 1: JS_DIRECTIVE_LIST@105..105 2: JS_STATEMENT_LIST@105..126 0: JS_RETURN_STATEMENT@105..126 0: RETURN_KW@105..117 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_BINARY_EXPRESSION@117..126 0: JS_STRING_LITERAL_EXPRESSION@117..121 0: JS_STRING_LITERAL@117..121 "\"a\"" [] [Whitespace(" ")] 1: PLUS@121..123 "+" [] [Whitespace(" ")] 2: JS_STRING_LITERAL_EXPRESSION@123..126 0: JS_STRING_LITERAL@123..126 "\"b\"" [] [] 2: (empty) 3: R_CURLY@126..130 "}" [Newline("\n"), Whitespace(" ")] [] 5: COMMA@130..131 "," [] [] 6: JS_GETTER_OBJECT_MEMBER@131..161 0: GET_KW@131..138 "get" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_LITERAL_MEMBER_NAME@138..139 0: JS_NUMBER_LITERAL@138..139 "5" [] [] 2: L_PAREN@139..140 "(" [] [] 3: R_PAREN@140..142 ")" [] [Whitespace(" ")] 4: (empty) 5: JS_FUNCTION_BODY@142..161 0: L_CURLY@142..143 "{" [] [] 1: JS_DIRECTIVE_LIST@143..143 2: JS_STATEMENT_LIST@143..157 0: JS_RETURN_STATEMENT@143..157 0: RETURN_KW@143..155 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_NUMBER_LITERAL_EXPRESSION@155..156 0: JS_NUMBER_LITERAL@155..156 "5" [] [] 2: SEMICOLON@156..157 ";" [] [] 3: R_CURLY@157..161 "}" [Newline("\n"), Whitespace(" ")] [] 7: COMMA@161..162 "," [] [] 8: JS_METHOD_OBJECT_MEMBER@162..223 0: (empty) 1: (empty) 2: JS_LITERAL_MEMBER_NAME@162..168 0: IDENT@162..168 "get" [Newline("\n"), Whitespace(" ")] [] 3: (empty) 4: JS_PARAMETERS@168..171 0: L_PAREN@168..169 "(" [] [] 1: JS_PARAMETER_LIST@169..169 2: R_PAREN@169..171 ")" [] [Whitespace(" ")] 5: (empty) 6: JS_FUNCTION_BODY@171..223 0: L_CURLY@171..172 "{" [] [] 1: JS_DIRECTIVE_LIST@172..172 2: JS_STATEMENT_LIST@172..219 0: JS_RETURN_STATEMENT@172..219 0: RETURN_KW@172..183 "return" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")] 1: JS_STRING_LITERAL_EXPRESSION@183..218 0: JS_STRING_LITERAL@183..218 "\"This is a method and not a getter\"" [] [] 2: SEMICOLON@218..219 ";" [] [] 3: R_CURLY@219..223 "}" [Newline("\n"), Whitespace(" ")] [] 2: R_CURLY@223..225 "}" [Newline("\n")] [] 1: (empty) 4: EOF@225..226 "" [Newline("\n")] []