JsModule { interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsVariableStatement { declaration: JsVariableDeclaration { kind: LET_KW@0..4 "let" [] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@4..5 "[" [] [], elements: JsArrayBindingPatternElementList [ JsIdentifierBinding { name_token: IDENT@5..7 "a" [] [Whitespace(" ")], }, missing separator, JsIdentifierBinding { name_token: IDENT@7..8 "b" [] [], }, ], 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 { kind: LET_KW@19..24 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@24..25 "[" [] [], elements: JsArrayBindingPatternElementList [ JsBindingPatternWithDefault { pattern: missing (required), eq_token: EQ@25..26 "=" [] [], default: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@26..35 "\"default\"" [] [], }, }, ], r_brack_token: R_BRACK@35..37 "]" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: JsInitializerClause { eq_token: EQ@37..39 "=" [] [Whitespace(" ")], expression: JsArrayExpression { l_brack_token: L_BRACK@39..40 "[" [] [], elements: JsArrayElementList [ JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@40..41 "1" [] [], }, COMMA@41..43 "," [] [Whitespace(" ")], JsNumberLiteralExpression { value_token: JS_NUMBER_LITERAL@43..44 "2" [] [], }, ], r_brack_token: R_BRACK@44..45 "]" [] [], }, }, }, ], }, semicolon_token: SEMICOLON@45..46 ";" [] [], }, JsVariableStatement { declaration: JsVariableDeclaration { kind: LET_KW@46..51 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@51..52 "[" [] [], elements: JsArrayBindingPatternElementList [ JsBogusBinding { items: [ JS_STRING_LITERAL@52..61 "\"default\"" [] [], ], }, ], r_brack_token: R_BRACK@61..63 "]" [] [Whitespace(" ")], }, variable_annotation: missing (optional), initializer: 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_token: SEMICOLON@71..72 ";" [] [], }, JsVariableStatement { declaration: JsVariableDeclaration { kind: LET_KW@72..77 "let" [Newline("\n")] [Whitespace(" ")], declarators: JsVariableDeclaratorList [ JsVariableDeclarator { id: JsArrayBindingPattern { l_brack_token: L_BRACK@77..78 "[" [] [], elements: JsArrayBindingPatternElementList [ JsBindingPatternWithDefault { pattern: JsArrayBindingPattern { l_brack_token: L_BRACK@78..79 "[" [] [], elements: JsArrayBindingPatternElementList [ JsIdentifierBinding { name_token: IDENT@79..81 "c" [] [Whitespace(" ")], }, ], r_brack_token: R_BRACK@81..83 "]" [] [Whitespace(" ")], }, eq_token: EQ@83..85 "=" [] [Whitespace(" ")], default: 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: JS_DIRECTIVE_LIST@0..0 2: JS_MODULE_ITEM_LIST@0..88 0: JS_VARIABLE_STATEMENT@0..19 0: JS_VARIABLE_DECLARATION@0..18 0: LET_KW@0..4 "let" [] [Whitespace(" ")] 1: 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_IDENTIFIER_BINDING@5..7 0: IDENT@5..7 "a" [] [Whitespace(" ")] 1: (empty) 2: JS_IDENTIFIER_BINDING@7..8 0: IDENT@7..8 "b" [] [] 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..46 0: JS_VARIABLE_DECLARATION@19..45 0: LET_KW@19..24 "let" [Newline("\n")] [Whitespace(" ")] 1: JS_VARIABLE_DECLARATOR_LIST@24..45 0: JS_VARIABLE_DECLARATOR@24..45 0: JS_ARRAY_BINDING_PATTERN@24..37 0: L_BRACK@24..25 "[" [] [] 1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@25..35 0: JS_BINDING_PATTERN_WITH_DEFAULT@25..35 0: (empty) 1: EQ@25..26 "=" [] [] 2: JS_STRING_LITERAL_EXPRESSION@26..35 0: JS_STRING_LITERAL@26..35 "\"default\"" [] [] 2: R_BRACK@35..37 "]" [] [Whitespace(" ")] 1: (empty) 2: JS_INITIALIZER_CLAUSE@37..45 0: EQ@37..39 "=" [] [Whitespace(" ")] 1: JS_ARRAY_EXPRESSION@39..45 0: L_BRACK@39..40 "[" [] [] 1: JS_ARRAY_ELEMENT_LIST@40..44 0: JS_NUMBER_LITERAL_EXPRESSION@40..41 0: JS_NUMBER_LITERAL@40..41 "1" [] [] 1: COMMA@41..43 "," [] [Whitespace(" ")] 2: JS_NUMBER_LITERAL_EXPRESSION@43..44 0: JS_NUMBER_LITERAL@43..44 "2" [] [] 2: R_BRACK@44..45 "]" [] [] 1: SEMICOLON@45..46 ";" [] [] 2: JS_VARIABLE_STATEMENT@46..72 0: JS_VARIABLE_DECLARATION@46..71 0: LET_KW@46..51 "let" [Newline("\n")] [Whitespace(" ")] 1: JS_VARIABLE_DECLARATOR_LIST@51..71 0: JS_VARIABLE_DECLARATOR@51..71 0: JS_ARRAY_BINDING_PATTERN@51..63 0: L_BRACK@51..52 "[" [] [] 1: JS_ARRAY_BINDING_PATTERN_ELEMENT_LIST@52..61 0: JS_BOGUS_BINDING@52..61 0: JS_STRING_LITERAL@52..61 "\"default\"" [] [] 2: R_BRACK@61..63 "]" [] [Whitespace(" ")] 1: (empty) 2: 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 ";" [] [] 3: JS_VARIABLE_STATEMENT@72..88 0: JS_VARIABLE_DECLARATION@72..87 0: LET_KW@72..77 "let" [Newline("\n")] [Whitespace(" ")] 1: 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_BINDING_PATTERN_WITH_DEFAULT@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_IDENTIFIER_BINDING@79..81 0: IDENT@79..81 "c" [] [Whitespace(" ")] 2: R_BRACK@81..83 "]" [] [Whitespace(" ")] 1: EQ@83..85 "=" [] [Whitespace(" ")] 2: 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 ";" [] [] 3: 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 array pattern, or an object 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 array pattern, or an object 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: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 ] = [];