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..5 "a" [] [],
},
variable_annotation: missing (optional),
initializer: missing (optional),
},
COMMA@5..7 "," [] [Whitespace(" ")],
JsVariableDeclarator {
id: JsObjectBindingPattern {
l_curly_token: L_CURLY@7..9 "{" [] [Whitespace(" ")],
properties: JsObjectBindingPatternPropertyList [
JsObjectBindingPatternShorthandProperty {
identifier: JsIdentifierBinding {
name_token: IDENT@9..11 "b" [] [Whitespace(" ")],
},
init: missing (optional),
},
],
r_curly_token: R_CURLY@11..13 "}" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@13..15 "=" [] [Whitespace(" ")],
expression: JsObjectExpression {
l_curly_token: L_CURLY@15..17 "{" [] [Whitespace(" ")],
members: JsObjectMemberList [
JsPropertyObjectMember {
name: JsLiteralMemberName {
value: IDENT@17..18 "a" [] [],
},
colon_token: COLON@18..20 ":" [] [Whitespace(" ")],
value: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@20..23 "10" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@23..24 "}" [] [],
},
},
},
],
},
semicolon_token: missing (optional),
},
JsVariableStatement {
declaration: JsVariableDeclaration {
await_token: missing (optional),
kind: CONST_KW@24..31 "const" [Newline("\n")] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@31..33 "c" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@33..35 "=" [] [Whitespace(" ")],
expression: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@35..36 "1" [] [],
},
},
},
COMMA@36..38 "," [] [Whitespace(" ")],
JsVariableDeclarator {
id: JsObjectBindingPattern {
l_curly_token: L_CURLY@38..40 "{" [] [Whitespace(" ")],
properties: JsObjectBindingPatternPropertyList [
JsObjectBindingPatternShorthandProperty {
identifier: JsIdentifierBinding {
name_token: IDENT@40..42 "d" [] [Whitespace(" ")],
},
init: missing (optional),
},
],
r_curly_token: R_CURLY@42..44 "}" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@44..46 "=" [] [Whitespace(" ")],
expression: JsObjectExpression {
l_curly_token: L_CURLY@46..48 "{" [] [Whitespace(" ")],
members: JsObjectMemberList [
JsPropertyObjectMember {
name: JsLiteralMemberName {
value: IDENT@48..49 "a" [] [],
},
colon_token: COLON@49..51 ":" [] [Whitespace(" ")],
value: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@51..54 "10" [] [Whitespace(" ")],
},
},
],
r_curly_token: R_CURLY@54..55 "}" [] [],
},
},
},
],
},
semicolon_token: missing (optional),
},
JsVariableStatement {
declaration: JsVariableDeclaration {
await_token: missing (optional),
kind: CONST_KW@55..62 "const" [Newline("\n")] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@62..63 "e" [] [],
},
variable_annotation: missing (optional),
initializer: missing (optional),
},
],
},
semicolon_token: SEMICOLON@63..64 ";" [] [],
},
JsVariableStatement {
declaration: JsVariableDeclaration {
await_token: missing (optional),
kind: LET_KW@64..69 "let" [Newline("\n")] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsArrayBindingPattern {
l_brack_token: L_BRACK@69..70 "[" [] [],
elements: JsArrayBindingPatternElementList [
JsArrayBindingPatternElement {
pattern: JsIdentifierBinding {
name_token: IDENT@70..71 "f" [] [],
},
init: missing (optional),
},
],
r_brack_token: R_BRACK@71..72 "]" [] [],
},
variable_annotation: missing (optional),
initializer: missing (optional),
},
],
},
semicolon_token: SEMICOLON@72..73 ";" [] [],
},
JsVariableStatement {
declaration: JsVariableDeclaration {
await_token: missing (optional),
kind: CONST_KW@73..80 "const" [Newline("\n")] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsObjectBindingPattern {
l_curly_token: L_CURLY@80..82 "{" [] [Whitespace(" ")],
properties: JsObjectBindingPatternPropertyList [
JsObjectBindingPatternShorthandProperty {
identifier: JsIdentifierBinding {
name_token: IDENT@82..84 "g" [] [Whitespace(" ")],
},
init: missing (optional),
},
],
r_curly_token: R_CURLY@84..85 "}" [] [],
},
variable_annotation: missing (optional),
initializer: missing (optional),
},
],
},
semicolon_token: SEMICOLON@85..86 ";" [] [],
},
],
eof_token: EOF@86..87 "" [Newline("\n")] [],
}
0: JS_MODULE@0..87
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..86
0: JS_VARIABLE_STATEMENT@0..24
0: JS_VARIABLE_DECLARATION@0..24
0: (empty)
1: LET_KW@0..4 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@4..24
0: JS_VARIABLE_DECLARATOR@4..5
0: JS_IDENTIFIER_BINDING@4..5
0: IDENT@4..5 "a" [] []
1: (empty)
2: (empty)
1: COMMA@5..7 "," [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR@7..24
0: JS_OBJECT_BINDING_PATTERN@7..13
0: L_CURLY@7..9 "{" [] [Whitespace(" ")]
1: JS_OBJECT_BINDING_PATTERN_PROPERTY_LIST@9..11
0: JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY@9..11
0: JS_IDENTIFIER_BINDING@9..11
0: IDENT@9..11 "b" [] [Whitespace(" ")]
1: (empty)
2: R_CURLY@11..13 "}" [] [Whitespace(" ")]
1: (empty)
2: JS_INITIALIZER_CLAUSE@13..24
0: EQ@13..15 "=" [] [Whitespace(" ")]
1: JS_OBJECT_EXPRESSION@15..24
0: L_CURLY@15..17 "{" [] [Whitespace(" ")]
1: JS_OBJECT_MEMBER_LIST@17..23
0: JS_PROPERTY_OBJECT_MEMBER@17..23
0: JS_LITERAL_MEMBER_NAME@17..18
0: IDENT@17..18 "a" [] []
1: COLON@18..20 ":" [] [Whitespace(" ")]
2: JS_NUMBER_LITERAL_EXPRESSION@20..23
0: JS_NUMBER_LITERAL@20..23 "10" [] [Whitespace(" ")]
2: R_CURLY@23..24 "}" [] []
1: (empty)
1: JS_VARIABLE_STATEMENT@24..55
0: JS_VARIABLE_DECLARATION@24..55
0: (empty)
1: CONST_KW@24..31 "const" [Newline("\n")] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@31..55
0: JS_VARIABLE_DECLARATOR@31..36
0: JS_IDENTIFIER_BINDING@31..33
0: IDENT@31..33 "c" [] [Whitespace(" ")]
1: (empty)
2: JS_INITIALIZER_CLAUSE@33..36
0: EQ@33..35 "=" [] [Whitespace(" ")]
1: JS_NUMBER_LITERAL_EXPRESSION@35..36
0: JS_NUMBER_LITERAL@35..36 "1" [] []
1: COMMA@36..38 "," [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR@38..55
0: JS_OBJECT_BINDING_PATTERN@38..44
0: L_CURLY@38..40 "{" [] [Whitespace(" ")]
1: JS_OBJECT_BINDING_PATTERN_PROPERTY_LIST@40..42
0: JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY@40..42
0: JS_IDENTIFIER_BINDING@40..42
0: IDENT@40..42 "d" [] [Whitespace(" ")]
1: (empty)
2: R_CURLY@42..44 "}" [] [Whitespace(" ")]
1: (empty)
2: JS_INITIALIZER_CLAUSE@44..55
0: EQ@44..46 "=" [] [Whitespace(" ")]
1: JS_OBJECT_EXPRESSION@46..55
0: L_CURLY@46..48 "{" [] [Whitespace(" ")]
1: JS_OBJECT_MEMBER_LIST@48..54
0: JS_PROPERTY_OBJECT_MEMBER@48..54
0: JS_LITERAL_MEMBER_NAME@48..49
0: IDENT@48..49 "a" [] []
1: COLON@49..51 ":" [] [Whitespace(" ")]
2: JS_NUMBER_LITERAL_EXPRESSION@51..54
0: JS_NUMBER_LITERAL@51..54 "10" [] [Whitespace(" ")]
2: R_CURLY@54..55 "}" [] []
1: (empty)
2: JS_VARIABLE_STATEMENT@55..64
0: JS_VARIABLE_DECLARATION@55..63
0: (empty)
1: CONST_KW@55..62 "const" [Newline("\n")] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@62..63
0: JS_VARIABLE_DECLARATOR@62..63
0: JS_IDENTIFIER_BINDING@62..63
0: IDENT@62..63 "e" [] []
1: (empty)
2: (empty)
1: SEMICOLON@63..64 ";" [] []
3: JS_VARIABLE_STATEMENT@64..73
0: JS_VARIABLE_DECLARATION@64..72
0: (empty)
1: LET_KW@64..69 "let" [Newline("\n")] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@69..72
0: JS_VARIABLE_DECLARATOR@69..72
0: JS_ARRAY_BINDING_PATTERN@69..72
0: L_BRACK@69..70 "[" [] []
1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@70..71
0: JS_ARRAY_BINDING_PATTERN_ELEMENT@70..71
0: JS_IDENTIFIER_BINDING@70..71
0: IDENT@70..71 "f" [] []
1: (empty)
2: R_BRACK@71..72 "]" [] []
1: (empty)
2: (empty)
1: SEMICOLON@72..73 ";" [] []
4: JS_VARIABLE_STATEMENT@73..86
0: JS_VARIABLE_DECLARATION@73..85
0: (empty)
1: CONST_KW@73..80 "const" [Newline("\n")] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@80..85
0: JS_VARIABLE_DECLARATOR@80..85
0: JS_OBJECT_BINDING_PATTERN@80..85
0: L_CURLY@80..82 "{" [] [Whitespace(" ")]
1: JS_OBJECT_BINDING_PATTERN_PROPERTY_LIST@82..84
0: JS_OBJECT_BINDING_PATTERN_SHORTHAND_PROPERTY@82..84
0: JS_IDENTIFIER_BINDING@82..84
0: IDENT@82..84 "g" [] [Whitespace(" ")]
1: (empty)
2: R_CURLY@84..85 "}" [] []
1: (empty)
2: (empty)
1: SEMICOLON@85..86 ";" [] []
4: EOF@86..87 "" [Newline("\n")] []
--
variable_declaration_statement_err.js:3:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Const declarations must have an initialized value.
1 │ let a, { b } = { a: 10 }
2 │ const c = 1, { d } = { a: 10 }
> 3 │ const e;
│ ^
4 │ let [f];
5 │ const { g };
i This variable needs to be initialized.
--
variable_declaration_statement_err.js:4:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Object and Array patterns require initializers.
2 │ const c = 1, { d } = { a: 10 }
3 │ const e;
> 4 │ let [f];
│ ^^^
5 │ const { g };
6 │
i This pattern is declared, but it is not given an initialized value.
--
variable_declaration_statement_err.js:5:7 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Object and Array patterns require initializers.
3 │ const e;
4 │ let [f];
> 5 │ const { g };
│ ^^^^^
6 │
i This pattern is declared, but it is not given an initialized value.
--
let a, { b } = { a: 10 }
const c = 1, { d } = { a: 10 }
const e;
let [f];
const { g };