JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsImport { import_token: IMPORT_KW@0..7 "import" [] [Whitespace(" ")], import_clause: JsImportBareClause { source: JsModuleSource { value_token: JS_STRING_LITERAL@7..11 "\"x\"" [] [Whitespace(" ")], }, assertion: JsImportAssertion { assertion_kind: ASSERT_KW@11..18 "assert" [] [Whitespace(" ")], l_curly_token: L_CURLY@18..20 "{" [] [Whitespace(" ")], assertions: JsImportAssertionEntryList [ JsImportAssertionEntry { key: IDENT@20..24 "type" [] [], colon_token: COLON@24..26 ":" [] [Whitespace(" ")], value_token: JS_STRING_LITERAL@26..33 "\"json\"" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@33..34 "}" [] [], }, }, semicolon_token: missing (optional), }, JsImport { import_token: IMPORT_KW@34..42 "import" [Newline("\n")] [Whitespace(" ")], import_clause: JsImportBareClause { source: JsModuleSource { value_token: JS_STRING_LITERAL@42..48 "\"foo\"" [] [Whitespace(" ")], }, assertion: JsImportAssertion { assertion_kind: ASSERT_KW@48..55 "assert" [] [Whitespace(" ")], l_curly_token: L_CURLY@55..57 "{" [] [Whitespace(" ")], assertions: JsImportAssertionEntryList [ JsImportAssertionEntry { key: JS_STRING_LITERAL@57..63 "\"type\"" [] [], colon_token: COLON@63..65 ":" [] [Whitespace(" ")], value_token: JS_STRING_LITERAL@65..72 "\"json\"" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@72..73 "}" [] [], }, }, semicolon_token: SEMICOLON@73..74 ";" [] [], }, JsImport { import_token: IMPORT_KW@74..82 "import" [Newline("\n")] [Whitespace(" ")], import_clause: JsImportDefaultClause { type_token: missing (optional), default_specifier: JsDefaultImportSpecifier { local_name: JsIdentifierBinding { name_token: IDENT@82..86 "foo" [] [Whitespace(" ")], }, }, from_token: FROM_KW@86..91 "from" [] [Whitespace(" ")], source: JsModuleSource { value_token: JS_STRING_LITERAL@91..102 "\"foo.json\"" [] [Whitespace(" ")], }, assertion: JsImportAssertion { assertion_kind: ASSERT_KW@102..109 "assert" [] [Whitespace(" ")], l_curly_token: L_CURLY@109..111 "{" [] [Whitespace(" ")], assertions: JsImportAssertionEntryList [ JsImportAssertionEntry { key: IDENT@111..115 "type" [] [], colon_token: COLON@115..117 ":" [] [Whitespace(" ")], value_token: JS_STRING_LITERAL@117..124 "\"json\"" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@124..125 "}" [] [], }, }, semicolon_token: SEMICOLON@125..126 ";" [] [], }, JsImport { import_token: IMPORT_KW@126..134 "import" [Newline("\n")] [Whitespace(" ")], import_clause: JsImportNamedClause { type_token: missing (optional), named_specifiers: JsNamedImportSpecifiers { l_curly_token: L_CURLY@134..135 "{" [] [], specifiers: JsNamedImportSpecifierList [ JsShorthandNamedImportSpecifier { type_token: missing (optional), local_name: JsIdentifierBinding { name_token: IDENT@135..139 "test" [] [], }, }, ], r_curly_token: R_CURLY@139..141 "}" [] [Whitespace(" ")], }, from_token: FROM_KW@141..146 "from" [] [Whitespace(" ")], source: JsModuleSource { value_token: JS_STRING_LITERAL@146..157 "\"foo.json\"" [] [Whitespace(" ")], }, assertion: JsImportAssertion { assertion_kind: ASSERT_KW@157..164 "assert" [] [Whitespace(" ")], l_curly_token: L_CURLY@164..166 "{" [] [Whitespace(" ")], assertions: JsImportAssertionEntryList [ JsImportAssertionEntry { key: IDENT@166..169 "for" [] [], colon_token: COLON@169..171 ":" [] [Whitespace(" ")], value_token: JS_STRING_LITERAL@171..177 "\"for\"" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@177..178 "}" [] [], }, }, semicolon_token: missing (optional), }, JsImport { import_token: IMPORT_KW@178..186 "import" [Newline("\n")] [Whitespace(" ")], import_clause: JsImportDefaultClause { type_token: missing (optional), default_specifier: JsDefaultImportSpecifier { local_name: JsIdentifierBinding { name_token: IDENT@186..195 "foo_json" [] [Whitespace(" ")], }, }, from_token: FROM_KW@195..200 "from" [] [Whitespace(" ")], source: JsModuleSource { value_token: JS_STRING_LITERAL@200..211 "\"foo.json\"" [] [Whitespace(" ")], }, assertion: JsImportAssertion { assertion_kind: ASSERT_KW@211..218 "assert" [] [Whitespace(" ")], l_curly_token: L_CURLY@218..220 "{" [] [Whitespace(" ")], assertions: JsImportAssertionEntryList [ JsImportAssertionEntry { key: IDENT@220..224 "type" [] [], colon_token: COLON@224..226 ":" [] [Whitespace(" ")], value_token: JS_STRING_LITERAL@226..232 "\"json\"" [] [], }, COMMA@232..234 "," [] [Whitespace(" ")], JsImportAssertionEntry { key: IDENT@234..248 "hasOwnProperty" [] [], colon_token: COLON@248..250 ":" [] [Whitespace(" ")], value_token: JS_STRING_LITERAL@250..257 "\"true\"" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@257..258 "}" [] [], }, }, semicolon_token: SEMICOLON@258..259 ";" [] [], }, JsImport { import_token: IMPORT_KW@259..267 "import" [Newline("\n")] [Whitespace(" ")], import_clause: JsImportBareClause { source: JsModuleSource { value_token: JS_STRING_LITERAL@267..271 "\"x\"" [] [Whitespace(" ")], }, assertion: JsImportAssertion { assertion_kind: ASSERT_KW@271..277 "assert" [] [], l_curly_token: L_CURLY@277..280 "{" [Newline("\n")] [Whitespace(" ")], assertions: JsImportAssertionEntryList [ JsImportAssertionEntry { key: IDENT@280..284 "type" [] [], colon_token: COLON@284..286 ":" [] [Whitespace(" ")], value_token: JS_STRING_LITERAL@286..293 "\"json\"" [] [Whitespace(" ")], }, ], r_curly_token: R_CURLY@293..294 "}" [] [], }, }, semicolon_token: missing (optional), }, ], eof_token: EOF@294..295 "" [Newline("\n")] [], } 0: JS_MODULE@0..295 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..294 0: JS_IMPORT@0..34 0: IMPORT_KW@0..7 "import" [] [Whitespace(" ")] 1: JS_IMPORT_BARE_CLAUSE@7..34 0: JS_MODULE_SOURCE@7..11 0: JS_STRING_LITERAL@7..11 "\"x\"" [] [Whitespace(" ")] 1: JS_IMPORT_ASSERTION@11..34 0: ASSERT_KW@11..18 "assert" [] [Whitespace(" ")] 1: L_CURLY@18..20 "{" [] [Whitespace(" ")] 2: JS_IMPORT_ASSERTION_ENTRY_LIST@20..33 0: JS_IMPORT_ASSERTION_ENTRY@20..33 0: IDENT@20..24 "type" [] [] 1: COLON@24..26 ":" [] [Whitespace(" ")] 2: JS_STRING_LITERAL@26..33 "\"json\"" [] [Whitespace(" ")] 3: R_CURLY@33..34 "}" [] [] 2: (empty) 1: JS_IMPORT@34..74 0: IMPORT_KW@34..42 "import" [Newline("\n")] [Whitespace(" ")] 1: JS_IMPORT_BARE_CLAUSE@42..73 0: JS_MODULE_SOURCE@42..48 0: JS_STRING_LITERAL@42..48 "\"foo\"" [] [Whitespace(" ")] 1: JS_IMPORT_ASSERTION@48..73 0: ASSERT_KW@48..55 "assert" [] [Whitespace(" ")] 1: L_CURLY@55..57 "{" [] [Whitespace(" ")] 2: JS_IMPORT_ASSERTION_ENTRY_LIST@57..72 0: JS_IMPORT_ASSERTION_ENTRY@57..72 0: JS_STRING_LITERAL@57..63 "\"type\"" [] [] 1: COLON@63..65 ":" [] [Whitespace(" ")] 2: JS_STRING_LITERAL@65..72 "\"json\"" [] [Whitespace(" ")] 3: R_CURLY@72..73 "}" [] [] 2: SEMICOLON@73..74 ";" [] [] 2: JS_IMPORT@74..126 0: IMPORT_KW@74..82 "import" [Newline("\n")] [Whitespace(" ")] 1: JS_IMPORT_DEFAULT_CLAUSE@82..125 0: (empty) 1: JS_DEFAULT_IMPORT_SPECIFIER@82..86 0: JS_IDENTIFIER_BINDING@82..86 0: IDENT@82..86 "foo" [] [Whitespace(" ")] 2: FROM_KW@86..91 "from" [] [Whitespace(" ")] 3: JS_MODULE_SOURCE@91..102 0: JS_STRING_LITERAL@91..102 "\"foo.json\"" [] [Whitespace(" ")] 4: JS_IMPORT_ASSERTION@102..125 0: ASSERT_KW@102..109 "assert" [] [Whitespace(" ")] 1: L_CURLY@109..111 "{" [] [Whitespace(" ")] 2: JS_IMPORT_ASSERTION_ENTRY_LIST@111..124 0: JS_IMPORT_ASSERTION_ENTRY@111..124 0: IDENT@111..115 "type" [] [] 1: COLON@115..117 ":" [] [Whitespace(" ")] 2: JS_STRING_LITERAL@117..124 "\"json\"" [] [Whitespace(" ")] 3: R_CURLY@124..125 "}" [] [] 2: SEMICOLON@125..126 ";" [] [] 3: JS_IMPORT@126..178 0: IMPORT_KW@126..134 "import" [Newline("\n")] [Whitespace(" ")] 1: JS_IMPORT_NAMED_CLAUSE@134..178 0: (empty) 1: JS_NAMED_IMPORT_SPECIFIERS@134..141 0: L_CURLY@134..135 "{" [] [] 1: JS_NAMED_IMPORT_SPECIFIER_LIST@135..139 0: JS_SHORTHAND_NAMED_IMPORT_SPECIFIER@135..139 0: (empty) 1: JS_IDENTIFIER_BINDING@135..139 0: IDENT@135..139 "test" [] [] 2: R_CURLY@139..141 "}" [] [Whitespace(" ")] 2: FROM_KW@141..146 "from" [] [Whitespace(" ")] 3: JS_MODULE_SOURCE@146..157 0: JS_STRING_LITERAL@146..157 "\"foo.json\"" [] [Whitespace(" ")] 4: JS_IMPORT_ASSERTION@157..178 0: ASSERT_KW@157..164 "assert" [] [Whitespace(" ")] 1: L_CURLY@164..166 "{" [] [Whitespace(" ")] 2: JS_IMPORT_ASSERTION_ENTRY_LIST@166..177 0: JS_IMPORT_ASSERTION_ENTRY@166..177 0: IDENT@166..169 "for" [] [] 1: COLON@169..171 ":" [] [Whitespace(" ")] 2: JS_STRING_LITERAL@171..177 "\"for\"" [] [Whitespace(" ")] 3: R_CURLY@177..178 "}" [] [] 2: (empty) 4: JS_IMPORT@178..259 0: IMPORT_KW@178..186 "import" [Newline("\n")] [Whitespace(" ")] 1: JS_IMPORT_DEFAULT_CLAUSE@186..258 0: (empty) 1: JS_DEFAULT_IMPORT_SPECIFIER@186..195 0: JS_IDENTIFIER_BINDING@186..195 0: IDENT@186..195 "foo_json" [] [Whitespace(" ")] 2: FROM_KW@195..200 "from" [] [Whitespace(" ")] 3: JS_MODULE_SOURCE@200..211 0: JS_STRING_LITERAL@200..211 "\"foo.json\"" [] [Whitespace(" ")] 4: JS_IMPORT_ASSERTION@211..258 0: ASSERT_KW@211..218 "assert" [] [Whitespace(" ")] 1: L_CURLY@218..220 "{" [] [Whitespace(" ")] 2: JS_IMPORT_ASSERTION_ENTRY_LIST@220..257 0: JS_IMPORT_ASSERTION_ENTRY@220..232 0: IDENT@220..224 "type" [] [] 1: COLON@224..226 ":" [] [Whitespace(" ")] 2: JS_STRING_LITERAL@226..232 "\"json\"" [] [] 1: COMMA@232..234 "," [] [Whitespace(" ")] 2: JS_IMPORT_ASSERTION_ENTRY@234..257 0: IDENT@234..248 "hasOwnProperty" [] [] 1: COLON@248..250 ":" [] [Whitespace(" ")] 2: JS_STRING_LITERAL@250..257 "\"true\"" [] [Whitespace(" ")] 3: R_CURLY@257..258 "}" [] [] 2: SEMICOLON@258..259 ";" [] [] 5: JS_IMPORT@259..294 0: IMPORT_KW@259..267 "import" [Newline("\n")] [Whitespace(" ")] 1: JS_IMPORT_BARE_CLAUSE@267..294 0: JS_MODULE_SOURCE@267..271 0: JS_STRING_LITERAL@267..271 "\"x\"" [] [Whitespace(" ")] 1: JS_IMPORT_ASSERTION@271..294 0: ASSERT_KW@271..277 "assert" [] [] 1: L_CURLY@277..280 "{" [Newline("\n")] [Whitespace(" ")] 2: JS_IMPORT_ASSERTION_ENTRY_LIST@280..293 0: JS_IMPORT_ASSERTION_ENTRY@280..293 0: IDENT@280..284 "type" [] [] 1: COLON@284..286 ":" [] [Whitespace(" ")] 2: JS_STRING_LITERAL@286..293 "\"json\"" [] [Whitespace(" ")] 3: R_CURLY@293..294 "}" [] [] 2: (empty) 4: EOF@294..295 "" [Newline("\n")] []