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 "b" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@6..8 "=" [] [Whitespace(" ")], expression: JsObjectExpression { l_curly_token: L_CURLY@8..9 "{" [] [], members: JsObjectMemberList [ JsMethodObjectMember { async_token: missing (optional), star_token: missing (optional), name: JsLiteralMemberName { value: IDENT@9..15 "foo" [Newline("\n"), Whitespace(" ")] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@15..16 "(" [] [], items: JsParameterList [], r_paren_token: R_PAREN@16..18 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@18..19 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [], r_curly_token: R_CURLY@19..20 "}" [] [], }, }, COMMA@20..21 "," [] [], JsMethodObjectMember { async_token: missing (optional), star_token: missing (optional), name: JsLiteralMemberName { value: JS_STRING_LITERAL@21..29 "\"bar\"" [Newline("\n"), Whitespace(" ")] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@29..30 "(" [] [], items: JsParameterList [ JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@30..31 "a" [] [], }, question_mark_token: missing (optional), type_annotation: missing (optional), initializer: missing (optional), }, COMMA@31..33 "," [] [Whitespace(" ")], JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@33..34 "b" [] [], }, question_mark_token: missing (optional), type_annotation: missing (optional), initializer: missing (optional), }, COMMA@34..36 "," [] [Whitespace(" ")], JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@36..37 "c" [] [], }, question_mark_token: missing (optional), type_annotation: missing (optional), initializer: missing (optional), }, ], r_paren_token: R_PAREN@37..39 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@39..40 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [], r_curly_token: R_CURLY@40..41 "}" [] [], }, }, COMMA@41..42 "," [] [], JsMethodObjectMember { async_token: missing (optional), star_token: missing (optional), name: JsComputedMemberName { l_brack_token: L_BRACK@42..46 "[" [Newline("\n"), Whitespace(" ")] [], expression: JsBinaryExpression { left: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@46..52 "\"foo\"" [] [Whitespace(" ")], }, operator_token: PLUS@52..54 "+" [] [Whitespace(" ")], right: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@54..59 "\"bar\"" [] [], }, }, r_brack_token: R_BRACK@59..60 "]" [] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@60..61 "(" [] [], items: JsParameterList [ JsFormalParameter { decorators: JsDecoratorList [], binding: JsIdentifierBinding { name_token: IDENT@61..62 "a" [] [], }, question_mark_token: missing (optional), type_annotation: missing (optional), initializer: missing (optional), }, ], r_paren_token: R_PAREN@62..64 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@64..65 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [], r_curly_token: R_CURLY@65..66 "}" [] [], }, }, COMMA@66..67 "," [] [], JsMethodObjectMember { async_token: missing (optional), star_token: missing (optional), name: JsLiteralMemberName { value: JS_NUMBER_LITERAL@67..71 "5" [Newline("\n"), Whitespace(" ")] [], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@71..72 "(" [] [], items: JsParameterList [ JsRestParameter { decorators: JsDecoratorList [], dotdotdot_token: DOT3@72..75 "..." [] [], binding: JsIdentifierBinding { name_token: IDENT@75..79 "rest" [] [], }, type_annotation: missing (optional), }, ], r_paren_token: R_PAREN@79..81 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@81..82 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [], r_curly_token: R_CURLY@82..83 "}" [] [], }, }, ], r_curly_token: R_CURLY@83..85 "}" [Newline("\n")] [], }, }, }, ], }, 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_VARIABLE_STATEMENT@0..85 0: JS_VARIABLE_DECLARATION@0..85 0: (empty) 1: LET_KW@0..4 "let" [] [Whitespace(" ")] 2: JS_VARIABLE_DECLARATOR_LIST@4..85 0: JS_VARIABLE_DECLARATOR@4..85 0: JS_IDENTIFIER_BINDING@4..6 0: IDENT@4..6 "b" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@6..85 0: EQ@6..8 "=" [] [Whitespace(" ")] 1: JS_OBJECT_EXPRESSION@8..85 0: L_CURLY@8..9 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@9..83 0: JS_METHOD_OBJECT_MEMBER@9..20 0: (empty) 1: (empty) 2: JS_LITERAL_MEMBER_NAME@9..15 0: IDENT@9..15 "foo" [Newline("\n"), Whitespace(" ")] [] 3: (empty) 4: JS_PARAMETERS@15..18 0: L_PAREN@15..16 "(" [] [] 1: JS_PARAMETER_LIST@16..16 2: R_PAREN@16..18 ")" [] [Whitespace(" ")] 5: (empty) 6: JS_FUNCTION_BODY@18..20 0: L_CURLY@18..19 "{" [] [] 1: JS_DIRECTIVE_LIST@19..19 2: JS_STATEMENT_LIST@19..19 3: R_CURLY@19..20 "}" [] [] 1: COMMA@20..21 "," [] [] 2: JS_METHOD_OBJECT_MEMBER@21..41 0: (empty) 1: (empty) 2: JS_LITERAL_MEMBER_NAME@21..29 0: JS_STRING_LITERAL@21..29 "\"bar\"" [Newline("\n"), Whitespace(" ")] [] 3: (empty) 4: JS_PARAMETERS@29..39 0: L_PAREN@29..30 "(" [] [] 1: JS_PARAMETER_LIST@30..37 0: JS_FORMAL_PARAMETER@30..31 0: JS_DECORATOR_LIST@30..30 1: JS_IDENTIFIER_BINDING@30..31 0: IDENT@30..31 "a" [] [] 2: (empty) 3: (empty) 4: (empty) 1: COMMA@31..33 "," [] [Whitespace(" ")] 2: JS_FORMAL_PARAMETER@33..34 0: JS_DECORATOR_LIST@33..33 1: JS_IDENTIFIER_BINDING@33..34 0: IDENT@33..34 "b" [] [] 2: (empty) 3: (empty) 4: (empty) 3: COMMA@34..36 "," [] [Whitespace(" ")] 4: JS_FORMAL_PARAMETER@36..37 0: JS_DECORATOR_LIST@36..36 1: JS_IDENTIFIER_BINDING@36..37 0: IDENT@36..37 "c" [] [] 2: (empty) 3: (empty) 4: (empty) 2: R_PAREN@37..39 ")" [] [Whitespace(" ")] 5: (empty) 6: JS_FUNCTION_BODY@39..41 0: L_CURLY@39..40 "{" [] [] 1: JS_DIRECTIVE_LIST@40..40 2: JS_STATEMENT_LIST@40..40 3: R_CURLY@40..41 "}" [] [] 3: COMMA@41..42 "," [] [] 4: JS_METHOD_OBJECT_MEMBER@42..66 0: (empty) 1: (empty) 2: JS_COMPUTED_MEMBER_NAME@42..60 0: L_BRACK@42..46 "[" [Newline("\n"), Whitespace(" ")] [] 1: JS_BINARY_EXPRESSION@46..59 0: JS_STRING_LITERAL_EXPRESSION@46..52 0: JS_STRING_LITERAL@46..52 "\"foo\"" [] [Whitespace(" ")] 1: PLUS@52..54 "+" [] [Whitespace(" ")] 2: JS_STRING_LITERAL_EXPRESSION@54..59 0: JS_STRING_LITERAL@54..59 "\"bar\"" [] [] 2: R_BRACK@59..60 "]" [] [] 3: (empty) 4: JS_PARAMETERS@60..64 0: L_PAREN@60..61 "(" [] [] 1: JS_PARAMETER_LIST@61..62 0: JS_FORMAL_PARAMETER@61..62 0: JS_DECORATOR_LIST@61..61 1: JS_IDENTIFIER_BINDING@61..62 0: IDENT@61..62 "a" [] [] 2: (empty) 3: (empty) 4: (empty) 2: R_PAREN@62..64 ")" [] [Whitespace(" ")] 5: (empty) 6: JS_FUNCTION_BODY@64..66 0: L_CURLY@64..65 "{" [] [] 1: JS_DIRECTIVE_LIST@65..65 2: JS_STATEMENT_LIST@65..65 3: R_CURLY@65..66 "}" [] [] 5: COMMA@66..67 "," [] [] 6: JS_METHOD_OBJECT_MEMBER@67..83 0: (empty) 1: (empty) 2: JS_LITERAL_MEMBER_NAME@67..71 0: JS_NUMBER_LITERAL@67..71 "5" [Newline("\n"), Whitespace(" ")] [] 3: (empty) 4: JS_PARAMETERS@71..81 0: L_PAREN@71..72 "(" [] [] 1: JS_PARAMETER_LIST@72..79 0: JS_REST_PARAMETER@72..79 0: JS_DECORATOR_LIST@72..72 1: DOT3@72..75 "..." [] [] 2: JS_IDENTIFIER_BINDING@75..79 0: IDENT@75..79 "rest" [] [] 3: (empty) 2: R_PAREN@79..81 ")" [] [Whitespace(" ")] 5: (empty) 6: JS_FUNCTION_BODY@81..83 0: L_CURLY@81..82 "{" [] [] 1: JS_DIRECTIVE_LIST@82..82 2: JS_STATEMENT_LIST@82..82 3: R_CURLY@82..83 "}" [] [] 2: R_CURLY@83..85 "}" [Newline("\n")] [] 1: (empty) 4: EOF@85..86 "" [Newline("\n")] []