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: WITH_KW@11..16 "with" [] [Whitespace(" ")],
l_curly_token: L_CURLY@16..18 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@18..22 "type" [] [],
colon_token: COLON@22..24 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@24..31 "\"json\"" [] [Whitespace(" ")],
},
],
r_curly_token: R_CURLY@31..32 "}" [] [],
},
},
semicolon_token: missing (optional),
},
JsImport {
import_token: IMPORT_KW@32..40 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportBareClause {
source: JsModuleSource {
value_token: JS_STRING_LITERAL@40..46 "\"foo\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: WITH_KW@46..51 "with" [] [Whitespace(" ")],
l_curly_token: L_CURLY@51..53 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: JS_STRING_LITERAL@53..59 "\"type\"" [] [],
colon_token: COLON@59..61 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@61..68 "\"json\"" [] [Whitespace(" ")],
},
],
r_curly_token: R_CURLY@68..69 "}" [] [],
},
},
semicolon_token: SEMICOLON@69..70 ";" [] [],
},
JsImport {
import_token: IMPORT_KW@70..78 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportDefaultClause {
type_token: missing (optional),
default_specifier: JsDefaultImportSpecifier {
local_name: JsIdentifierBinding {
name_token: IDENT@78..82 "foo" [] [Whitespace(" ")],
},
},
from_token: FROM_KW@82..87 "from" [] [Whitespace(" ")],
source: JsModuleSource {
value_token: JS_STRING_LITERAL@87..98 "\"foo.json\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: WITH_KW@98..103 "with" [] [Whitespace(" ")],
l_curly_token: L_CURLY@103..105 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@105..109 "type" [] [],
colon_token: COLON@109..111 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@111..118 "\"json\"" [] [Whitespace(" ")],
},
],
r_curly_token: R_CURLY@118..119 "}" [] [],
},
},
semicolon_token: SEMICOLON@119..120 ";" [] [],
},
JsImport {
import_token: IMPORT_KW@120..128 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportNamedClause {
type_token: missing (optional),
named_specifiers: JsNamedImportSpecifiers {
l_curly_token: L_CURLY@128..129 "{" [] [],
specifiers: JsNamedImportSpecifierList [
JsShorthandNamedImportSpecifier {
type_token: missing (optional),
local_name: JsIdentifierBinding {
name_token: IDENT@129..133 "test" [] [],
},
},
],
r_curly_token: R_CURLY@133..135 "}" [] [Whitespace(" ")],
},
from_token: FROM_KW@135..140 "from" [] [Whitespace(" ")],
source: JsModuleSource {
value_token: JS_STRING_LITERAL@140..151 "\"foo.json\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: WITH_KW@151..156 "with" [] [Whitespace(" ")],
l_curly_token: L_CURLY@156..158 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@158..161 "for" [] [],
colon_token: COLON@161..163 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@163..169 "\"for\"" [] [Whitespace(" ")],
},
],
r_curly_token: R_CURLY@169..170 "}" [] [],
},
},
semicolon_token: missing (optional),
},
JsImport {
import_token: IMPORT_KW@170..178 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportDefaultClause {
type_token: missing (optional),
default_specifier: JsDefaultImportSpecifier {
local_name: JsIdentifierBinding {
name_token: IDENT@178..187 "foo_json" [] [Whitespace(" ")],
},
},
from_token: FROM_KW@187..192 "from" [] [Whitespace(" ")],
source: JsModuleSource {
value_token: JS_STRING_LITERAL@192..203 "\"foo.json\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: WITH_KW@203..208 "with" [] [Whitespace(" ")],
l_curly_token: L_CURLY@208..210 "{" [] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@210..214 "type" [] [],
colon_token: COLON@214..216 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@216..222 "\"json\"" [] [],
},
COMMA@222..224 "," [] [Whitespace(" ")],
JsImportAssertionEntry {
key: IDENT@224..238 "hasOwnProperty" [] [],
colon_token: COLON@238..240 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@240..247 "\"true\"" [] [Whitespace(" ")],
},
],
r_curly_token: R_CURLY@247..248 "}" [] [],
},
},
semicolon_token: SEMICOLON@248..249 ";" [] [],
},
JsImport {
import_token: IMPORT_KW@249..257 "import" [Newline("\n")] [Whitespace(" ")],
import_clause: JsImportBareClause {
source: JsModuleSource {
value_token: JS_STRING_LITERAL@257..261 "\"x\"" [] [Whitespace(" ")],
},
assertion: JsImportAssertion {
assertion_kind: WITH_KW@261..265 "with" [] [],
l_curly_token: L_CURLY@265..268 "{" [Newline("\n")] [Whitespace(" ")],
assertions: JsImportAssertionEntryList [
JsImportAssertionEntry {
key: IDENT@268..272 "type" [] [],
colon_token: COLON@272..274 ":" [] [Whitespace(" ")],
value_token: JS_STRING_LITERAL@274..281 "\"json\"" [] [Whitespace(" ")],
},
],
r_curly_token: R_CURLY@281..282 "}" [] [],
},
},
semicolon_token: missing (optional),
},
],
eof_token: EOF@282..283 "" [Newline("\n")] [],
}
0: JS_MODULE@0..283
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..282
0: JS_IMPORT@0..32
0: IMPORT_KW@0..7 "import" [] [Whitespace(" ")]
1: JS_IMPORT_BARE_CLAUSE@7..32
0: JS_MODULE_SOURCE@7..11
0: JS_STRING_LITERAL@7..11 "\"x\"" [] [Whitespace(" ")]
1: JS_IMPORT_ASSERTION@11..32
0: WITH_KW@11..16 "with" [] [Whitespace(" ")]
1: L_CURLY@16..18 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@18..31
0: JS_IMPORT_ASSERTION_ENTRY@18..31
0: IDENT@18..22 "type" [] []
1: COLON@22..24 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@24..31 "\"json\"" [] [Whitespace(" ")]
3: R_CURLY@31..32 "}" [] []
2: (empty)
1: JS_IMPORT@32..70
0: IMPORT_KW@32..40 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_BARE_CLAUSE@40..69
0: JS_MODULE_SOURCE@40..46
0: JS_STRING_LITERAL@40..46 "\"foo\"" [] [Whitespace(" ")]
1: JS_IMPORT_ASSERTION@46..69
0: WITH_KW@46..51 "with" [] [Whitespace(" ")]
1: L_CURLY@51..53 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@53..68
0: JS_IMPORT_ASSERTION_ENTRY@53..68
0: JS_STRING_LITERAL@53..59 "\"type\"" [] []
1: COLON@59..61 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@61..68 "\"json\"" [] [Whitespace(" ")]
3: R_CURLY@68..69 "}" [] []
2: SEMICOLON@69..70 ";" [] []
2: JS_IMPORT@70..120
0: IMPORT_KW@70..78 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_DEFAULT_CLAUSE@78..119
0: (empty)
1: JS_DEFAULT_IMPORT_SPECIFIER@78..82
0: JS_IDENTIFIER_BINDING@78..82
0: IDENT@78..82 "foo" [] [Whitespace(" ")]
2: FROM_KW@82..87 "from" [] [Whitespace(" ")]
3: JS_MODULE_SOURCE@87..98
0: JS_STRING_LITERAL@87..98 "\"foo.json\"" [] [Whitespace(" ")]
4: JS_IMPORT_ASSERTION@98..119
0: WITH_KW@98..103 "with" [] [Whitespace(" ")]
1: L_CURLY@103..105 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@105..118
0: JS_IMPORT_ASSERTION_ENTRY@105..118
0: IDENT@105..109 "type" [] []
1: COLON@109..111 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@111..118 "\"json\"" [] [Whitespace(" ")]
3: R_CURLY@118..119 "}" [] []
2: SEMICOLON@119..120 ";" [] []
3: JS_IMPORT@120..170
0: IMPORT_KW@120..128 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_NAMED_CLAUSE@128..170
0: (empty)
1: JS_NAMED_IMPORT_SPECIFIERS@128..135
0: L_CURLY@128..129 "{" [] []
1: JS_NAMED_IMPORT_SPECIFIER_LIST@129..133
0: JS_SHORTHAND_NAMED_IMPORT_SPECIFIER@129..133
0: (empty)
1: JS_IDENTIFIER_BINDING@129..133
0: IDENT@129..133 "test" [] []
2: R_CURLY@133..135 "}" [] [Whitespace(" ")]
2: FROM_KW@135..140 "from" [] [Whitespace(" ")]
3: JS_MODULE_SOURCE@140..151
0: JS_STRING_LITERAL@140..151 "\"foo.json\"" [] [Whitespace(" ")]
4: JS_IMPORT_ASSERTION@151..170
0: WITH_KW@151..156 "with" [] [Whitespace(" ")]
1: L_CURLY@156..158 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@158..169
0: JS_IMPORT_ASSERTION_ENTRY@158..169
0: IDENT@158..161 "for" [] []
1: COLON@161..163 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@163..169 "\"for\"" [] [Whitespace(" ")]
3: R_CURLY@169..170 "}" [] []
2: (empty)
4: JS_IMPORT@170..249
0: IMPORT_KW@170..178 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_DEFAULT_CLAUSE@178..248
0: (empty)
1: JS_DEFAULT_IMPORT_SPECIFIER@178..187
0: JS_IDENTIFIER_BINDING@178..187
0: IDENT@178..187 "foo_json" [] [Whitespace(" ")]
2: FROM_KW@187..192 "from" [] [Whitespace(" ")]
3: JS_MODULE_SOURCE@192..203
0: JS_STRING_LITERAL@192..203 "\"foo.json\"" [] [Whitespace(" ")]
4: JS_IMPORT_ASSERTION@203..248
0: WITH_KW@203..208 "with" [] [Whitespace(" ")]
1: L_CURLY@208..210 "{" [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@210..247
0: JS_IMPORT_ASSERTION_ENTRY@210..222
0: IDENT@210..214 "type" [] []
1: COLON@214..216 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@216..222 "\"json\"" [] []
1: COMMA@222..224 "," [] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY@224..247
0: IDENT@224..238 "hasOwnProperty" [] []
1: COLON@238..240 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@240..247 "\"true\"" [] [Whitespace(" ")]
3: R_CURLY@247..248 "}" [] []
2: SEMICOLON@248..249 ";" [] []
5: JS_IMPORT@249..282
0: IMPORT_KW@249..257 "import" [Newline("\n")] [Whitespace(" ")]
1: JS_IMPORT_BARE_CLAUSE@257..282
0: JS_MODULE_SOURCE@257..261
0: JS_STRING_LITERAL@257..261 "\"x\"" [] [Whitespace(" ")]
1: JS_IMPORT_ASSERTION@261..282
0: WITH_KW@261..265 "with" [] []
1: L_CURLY@265..268 "{" [Newline("\n")] [Whitespace(" ")]
2: JS_IMPORT_ASSERTION_ENTRY_LIST@268..281
0: JS_IMPORT_ASSERTION_ENTRY@268..281
0: IDENT@268..272 "type" [] []
1: COLON@272..274 ":" [] [Whitespace(" ")]
2: JS_STRING_LITERAL@274..281 "\"json\"" [] [Whitespace(" ")]
3: R_CURLY@281..282 "}" [] []
2: (empty)
4: EOF@282..283 "" [Newline("\n")] []