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: JsArrayBindingPattern {
l_brack_token: L_BRACK@4..5 "[" [] [],
elements: JsArrayBindingPatternElementList [
JsArrayBindingPatternElement {
pattern: JsIdentifierBinding {
name_token: IDENT@5..7 "a" [] [Whitespace(" ")],
},
init: missing (optional),
},
missing separator,
JsArrayBindingPatternElement {
pattern: JsIdentifierBinding {
name_token: IDENT@7..8 "b" [] [],
},
init: missing (optional),
},
],
r_brack_token: R_BRACK@8..10 "]" [] [Whitespace(" ")],
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@10..12 "=" [] [Whitespace(" ")],
expression: JsArrayExpression {
l_brack_token: L_BRACK@12..13 "[" [] [],
elements: JsArrayElementList [
JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@13..14 "1" [] [],
},
COMMA@14..16 "," [] [Whitespace(" ")],
JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@16..17 "2" [] [],
},
],
r_brack_token: R_BRACK@17..18 "]" [] [],
},
},
},
],
},
semicolon_token: SEMICOLON@18..19 ";" [] [],
},
JsVariableStatement {
declaration: JsVariableDeclaration {
await_token: missing (optional),
kind: LET_KW@19..24 "let" [Newline("\n")] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsArrayBindingPattern {
l_brack_token: L_BRACK@24..25 "[" [] [],
elements: JsArrayBindingPatternElementList [],
r_brack_token: missing (required),
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@25..26 "=" [] [],
expression: JsStringLiteralExpression {
value_token: JS_STRING_LITERAL@26..35 "\"default\"" [] [],
},
},
},
],
},
semicolon_token: missing (optional),
},
JsBogusStatement {
items: [
R_BRACK@35..37 "]" [] [Whitespace(" ")],
EQ@37..39 "=" [] [Whitespace(" ")],
L_BRACK@39..40 "[" [] [],
JS_NUMBER_LITERAL@40..41 "1" [] [],
COMMA@41..43 "," [] [Whitespace(" ")],
JS_NUMBER_LITERAL@43..44 "2" [] [],
R_BRACK@44..45 "]" [] [],
],
},
JsEmptyStatement {
semicolon_token: SEMICOLON@45..46 ";" [] [],
},
JsBogusStatement {
items: [
JsBogus {
items: [
LET_KW@46..51 "let" [Newline("\n")] [Whitespace(" ")],
JsBogus {
items: [
JsBogus {
items: [
JsBogus {
items: [
L_BRACK@51..52 "[" [] [],
JsBogus {
items: [
JsBogusBinding {
items: [
JS_STRING_LITERAL@52..61 "\"default\"" [] [],
],
},
],
},
R_BRACK@61..63 "]" [] [Whitespace(" ")],
],
},
JsInitializerClause {
eq_token: EQ@63..65 "=" [] [Whitespace(" ")],
expression: JsArrayExpression {
l_brack_token: L_BRACK@65..66 "[" [] [],
elements: JsArrayElementList [
JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@66..67 "1" [] [],
},
COMMA@67..69 "," [] [Whitespace(" ")],
JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@69..70 "2" [] [],
},
],
r_brack_token: R_BRACK@70..71 "]" [] [],
},
},
],
},
],
},
],
},
SEMICOLON@71..72 ";" [] [],
],
},
JsVariableStatement {
declaration: JsVariableDeclaration {
await_token: missing (optional),
kind: LET_KW@72..77 "let" [Newline("\n")] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsArrayBindingPattern {
l_brack_token: L_BRACK@77..78 "[" [] [],
elements: JsArrayBindingPatternElementList [
JsArrayBindingPatternElement {
pattern: JsArrayBindingPattern {
l_brack_token: L_BRACK@78..79 "[" [] [],
elements: JsArrayBindingPatternElementList [
JsArrayBindingPatternElement {
pattern: JsIdentifierBinding {
name_token: IDENT@79..81 "c" [] [Whitespace(" ")],
},
init: missing (optional),
},
],
r_brack_token: R_BRACK@81..83 "]" [] [Whitespace(" ")],
},
init: JsInitializerClause {
eq_token: EQ@83..85 "=" [] [Whitespace(" ")],
expression: JsArrayExpression {
l_brack_token: L_BRACK@85..86 "[" [] [],
elements: JsArrayElementList [],
r_brack_token: R_BRACK@86..87 "]" [] [],
},
},
},
],
r_brack_token: missing (required),
},
variable_annotation: missing (optional),
initializer: missing (optional),
},
],
},
semicolon_token: SEMICOLON@87..88 ";" [] [],
},
],
eof_token: EOF@88..89 "" [Newline("\n")] [],
}
0: JS_MODULE@0..89
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..88
0: JS_VARIABLE_STATEMENT@0..19
0: JS_VARIABLE_DECLARATION@0..18
0: (empty)
1: LET_KW@0..4 "let" [] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@4..18
0: JS_VARIABLE_DECLARATOR@4..18
0: JS_ARRAY_BINDING_PATTERN@4..10
0: L_BRACK@4..5 "[" [] []
1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@5..8
0: JS_ARRAY_BINDING_PATTERN_ELEMENT@5..7
0: JS_IDENTIFIER_BINDING@5..7
0: IDENT@5..7 "a" [] [Whitespace(" ")]
1: (empty)
1: (empty)
2: JS_ARRAY_BINDING_PATTERN_ELEMENT@7..8
0: JS_IDENTIFIER_BINDING@7..8
0: IDENT@7..8 "b" [] []
1: (empty)
2: R_BRACK@8..10 "]" [] [Whitespace(" ")]
1: (empty)
2: JS_INITIALIZER_CLAUSE@10..18
0: EQ@10..12 "=" [] [Whitespace(" ")]
1: JS_ARRAY_EXPRESSION@12..18
0: L_BRACK@12..13 "[" [] []
1: JS_ARRAY_ELEMENT_LIST@13..17
0: JS_NUMBER_LITERAL_EXPRESSION@13..14
0: JS_NUMBER_LITERAL@13..14 "1" [] []
1: COMMA@14..16 "," [] [Whitespace(" ")]
2: JS_NUMBER_LITERAL_EXPRESSION@16..17
0: JS_NUMBER_LITERAL@16..17 "2" [] []
2: R_BRACK@17..18 "]" [] []
1: SEMICOLON@18..19 ";" [] []
1: JS_VARIABLE_STATEMENT@19..35
0: JS_VARIABLE_DECLARATION@19..35
0: (empty)
1: LET_KW@19..24 "let" [Newline("\n")] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@24..35
0: JS_VARIABLE_DECLARATOR@24..35
0: JS_ARRAY_BINDING_PATTERN@24..25
0: L_BRACK@24..25 "[" [] []
1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@25..25
2: (empty)
1: (empty)
2: JS_INITIALIZER_CLAUSE@25..35
0: EQ@25..26 "=" [] []
1: JS_STRING_LITERAL_EXPRESSION@26..35
0: JS_STRING_LITERAL@26..35 "\"default\"" [] []
1: (empty)
2: JS_BOGUS_STATEMENT@35..45
0: R_BRACK@35..37 "]" [] [Whitespace(" ")]
1: EQ@37..39 "=" [] [Whitespace(" ")]
2: L_BRACK@39..40 "[" [] []
3: JS_NUMBER_LITERAL@40..41 "1" [] []
4: COMMA@41..43 "," [] [Whitespace(" ")]
5: JS_NUMBER_LITERAL@43..44 "2" [] []
6: R_BRACK@44..45 "]" [] []
3: JS_EMPTY_STATEMENT@45..46
0: SEMICOLON@45..46 ";" [] []
4: JS_BOGUS_STATEMENT@46..72
0: JS_BOGUS@46..71
0: LET_KW@46..51 "let" [Newline("\n")] [Whitespace(" ")]
1: JS_BOGUS@51..71
0: JS_BOGUS@51..71
0: JS_BOGUS@51..63
0: L_BRACK@51..52 "[" [] []
1: JS_BOGUS@52..61
0: JS_BOGUS_BINDING@52..61
0: JS_STRING_LITERAL@52..61 "\"default\"" [] []
2: R_BRACK@61..63 "]" [] [Whitespace(" ")]
1: JS_INITIALIZER_CLAUSE@63..71
0: EQ@63..65 "=" [] [Whitespace(" ")]
1: JS_ARRAY_EXPRESSION@65..71
0: L_BRACK@65..66 "[" [] []
1: JS_ARRAY_ELEMENT_LIST@66..70
0: JS_NUMBER_LITERAL_EXPRESSION@66..67
0: JS_NUMBER_LITERAL@66..67 "1" [] []
1: COMMA@67..69 "," [] [Whitespace(" ")]
2: JS_NUMBER_LITERAL_EXPRESSION@69..70
0: JS_NUMBER_LITERAL@69..70 "2" [] []
2: R_BRACK@70..71 "]" [] []
1: SEMICOLON@71..72 ";" [] []
5: JS_VARIABLE_STATEMENT@72..88
0: JS_VARIABLE_DECLARATION@72..87
0: (empty)
1: LET_KW@72..77 "let" [Newline("\n")] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@77..87
0: JS_VARIABLE_DECLARATOR@77..87
0: JS_ARRAY_BINDING_PATTERN@77..87
0: L_BRACK@77..78 "[" [] []
1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@78..87
0: JS_ARRAY_BINDING_PATTERN_ELEMENT@78..87
0: JS_ARRAY_BINDING_PATTERN@78..83
0: L_BRACK@78..79 "[" [] []
1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@79..81
0: JS_ARRAY_BINDING_PATTERN_ELEMENT@79..81
0: JS_IDENTIFIER_BINDING@79..81
0: IDENT@79..81 "c" [] [Whitespace(" ")]
1: (empty)
2: R_BRACK@81..83 "]" [] [Whitespace(" ")]
1: JS_INITIALIZER_CLAUSE@83..87
0: EQ@83..85 "=" [] [Whitespace(" ")]
1: JS_ARRAY_EXPRESSION@85..87
0: L_BRACK@85..86 "[" [] []
1: JS_ARRAY_ELEMENT_LIST@86..86
2: R_BRACK@86..87 "]" [] []
2: (empty)
1: (empty)
2: (empty)
1: SEMICOLON@87..88 ";" [] []
4: EOF@88..89 "" [Newline("\n")] []
--
array_binding_err.js:1:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `,` but instead found `b`
> 1 │ let [a b] = [1, 2];
│ ^
2 │ let [="default"] = [1, 2];
3 │ let ["default"] = [1, 2];
i Remove b
--
array_binding_err.js:2:6 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Expected an identifier, an object pattern, an array pattern, or a rest pattern but instead found '='.
1 │ let [a b] = [1, 2];
> 2 │ let [="default"] = [1, 2];
│ ^
3 │ let ["default"] = [1, 2];
4 │ let [[c ] = [];
i Expected an identifier, an object pattern, an array pattern, or a rest pattern here.
1 │ let [a b] = [1, 2];
> 2 │ let [="default"] = [1, 2];
│ ^
3 │ let ["default"] = [1, 2];
4 │ let [[c ] = [];
--
array_binding_err.js:2:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Expected a semicolon or an implicit semicolon after a statement, but found none
1 │ let [a b] = [1, 2];
> 2 │ let [="default"] = [1, 2];
│ ^
3 │ let ["default"] = [1, 2];
4 │ let [[c ] = [];
i An explicit or implicit semicolon is expected here...
1 │ let [a b] = [1, 2];
> 2 │ let [="default"] = [1, 2];
│ ^
3 │ let ["default"] = [1, 2];
4 │ let [[c ] = [];
i ...Which is required to end this statement
1 │ let [a b] = [1, 2];
> 2 │ let [="default"] = [1, 2];
│ ^^^^^^^^^^^^^^^
3 │ let ["default"] = [1, 2];
4 │ let [[c ] = [];
--
array_binding_err.js:3:6 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Expected an identifier, an object pattern, an array pattern, or a rest pattern but instead found '"default"'.
1 │ let [a b] = [1, 2];
2 │ let [="default"] = [1, 2];
> 3 │ let ["default"] = [1, 2];
│ ^^^^^^^^^
4 │ let [[c ] = [];
5 │
i Expected an identifier, an object pattern, an array pattern, or a rest pattern here.
1 │ let [a b] = [1, 2];
2 │ let [="default"] = [1, 2];
> 3 │ let ["default"] = [1, 2];
│ ^^^^^^^^^
4 │ let [[c ] = [];
5 │
--
array_binding_err.js:4:15 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× expected `,` but instead found `;`
2 │ let [="default"] = [1, 2];
3 │ let ["default"] = [1, 2];
> 4 │ let [[c ] = [];
│ ^
5 │
i Remove ;
--
array_binding_err.js:4:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Object and Array patterns require initializers.
2 │ let [="default"] = [1, 2];
3 │ let ["default"] = [1, 2];
> 4 │ let [[c ] = [];
│ ^^^^^^^^^^
5 │
i This pattern is declared, but it is not given an initialized value.
--
let [a b] = [1, 2];
let [="default"] = [1, 2];
let ["default"] = [1, 2];
let [[c ] = [];