JsModule { bom_token: UNICODE_BOM@0..3 "\u{feff}" [] [], interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsFunctionDeclaration { async_token: missing (optional), function_token: FUNCTION_KW@3..12 "function" [] [Whitespace(" ")], star_token: missing (optional), id: JsIdentifierBinding { name_token: IDENT@12..16 "foo" [] [Whitespace(" ")], }, type_parameters: missing (optional), parameters: JsParameters { l_paren_token: L_PAREN@16..18 "(" [] [Whitespace(" ")], items: JsParameterList [], r_paren_token: R_PAREN@18..20 ")" [] [Whitespace(" ")], }, return_type_annotation: missing (optional), body: JsFunctionBody { l_curly_token: L_CURLY@20..21 "{" [] [], directives: JsDirectiveList [], statements: JsStatementList [], r_curly_token: R_CURLY@21..22 "}" [] [], }, }, ], eof_token: EOF@22..22 "" [] [], } 0: JS_MODULE@0..22 0: UNICODE_BOM@0..3 "\u{feff}" [] [] 1: (empty) 2: JS_DIRECTIVE_LIST@3..3 3: JS_MODULE_ITEM_LIST@3..22 0: JS_FUNCTION_DECLARATION@3..22 0: (empty) 1: FUNCTION_KW@3..12 "function" [] [Whitespace(" ")] 2: (empty) 3: JS_IDENTIFIER_BINDING@12..16 0: IDENT@12..16 "foo" [] [Whitespace(" ")] 4: (empty) 5: JS_PARAMETERS@16..20 0: L_PAREN@16..18 "(" [] [Whitespace(" ")] 1: JS_PARAMETER_LIST@18..18 2: R_PAREN@18..20 ")" [] [Whitespace(" ")] 6: (empty) 7: JS_FUNCTION_BODY@20..22 0: L_CURLY@20..21 "{" [] [] 1: JS_DIRECTIVE_LIST@21..21 2: JS_STATEMENT_LIST@21..21 3: R_CURLY@21..22 "}" [] [] 4: EOF@22..22 "" [] []