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 ] = [];