JsModule { bom_token: missing (optional), interpreter_token: missing (optional), directives: JsDirectiveList [], items: JsModuleItemList [ JsExpressionStatement { expression: JsParenthesizedExpression { l_paren_token: L_PAREN@0..1 "(" [] [], expression: JsAssignmentExpression { left: JsObjectAssignmentPattern { l_curly_token: L_CURLY@1..2 "{" [] [], properties: JsObjectAssignmentPatternPropertyList [ JsObjectAssignmentPatternProperty { member: missing (required), colon_token: COLON@2..3 ":" [] [], pattern: JsIdentifierAssignment { name_token: IDENT@3..4 "y" [] [], }, init: missing (optional), }, ], r_curly_token: R_CURLY@4..6 "}" [] [Whitespace(" ")], }, operator_token: EQ@6..8 "=" [] [Whitespace(" ")], right: JsObjectExpression { l_curly_token: L_CURLY@8..9 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@9..10 "}" [] [], }, }, r_paren_token: R_PAREN@10..11 ")" [] [], }, semicolon_token: SEMICOLON@11..12 ";" [] [], }, JsExpressionStatement { expression: JsParenthesizedExpression { l_paren_token: L_PAREN@12..14 "(" [Newline("\n")] [], expression: JsAssignmentExpression { left: JsObjectAssignmentPattern { l_curly_token: L_CURLY@14..15 "{" [] [], properties: JsObjectAssignmentPatternPropertyList [ JsObjectAssignmentPatternShorthandProperty { identifier: missing (required), init: JsInitializerClause { eq_token: EQ@15..16 "=" [] [], expression: JsIdentifierExpression { name: JsReferenceIdentifier { value_token: IDENT@16..17 "y" [] [], }, }, }, }, ], r_curly_token: R_CURLY@17..19 "}" [] [Whitespace(" ")], }, operator_token: EQ@19..21 "=" [] [Whitespace(" ")], right: JsObjectExpression { l_curly_token: L_CURLY@21..22 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@22..23 "}" [] [], }, }, r_paren_token: R_PAREN@23..24 ")" [] [], }, semicolon_token: SEMICOLON@24..25 ";" [] [], }, JsExpressionStatement { expression: JsParenthesizedExpression { l_paren_token: L_PAREN@25..27 "(" [Newline("\n")] [], expression: JsAssignmentExpression { left: JsObjectAssignmentPattern { l_curly_token: L_CURLY@27..28 "{" [] [], properties: JsObjectAssignmentPatternPropertyList [ JsObjectAssignmentPatternProperty { member: missing (required), colon_token: COLON@28..29 ":" [] [], pattern: missing (required), init: JsInitializerClause { eq_token: EQ@29..30 "=" [] [], expression: JsStringLiteralExpression { value_token: JS_STRING_LITERAL@30..36 "\"test\"" [] [], }, }, }, ], r_curly_token: R_CURLY@36..38 "}" [] [Whitespace(" ")], }, operator_token: EQ@38..40 "=" [] [Whitespace(" ")], right: JsObjectExpression { l_curly_token: L_CURLY@40..41 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@41..42 "}" [] [], }, }, r_paren_token: R_PAREN@42..43 ")" [] [], }, semicolon_token: SEMICOLON@43..44 ";" [] [], }, JsExpressionStatement { expression: JsParenthesizedExpression { l_paren_token: L_PAREN@44..46 "(" [Newline("\n")] [], expression: JsAssignmentExpression { left: JsObjectAssignmentPattern { l_curly_token: L_CURLY@46..47 "{" [] [], properties: JsObjectAssignmentPatternPropertyList [ JsObjectAssignmentPatternProperty { member: missing (required), colon_token: COLON@47..48 ":" [] [], pattern: missing (required), init: JsInitializerClause { eq_token: EQ@48..49 "=" [] [], expression: missing (required), }, }, ], r_curly_token: R_CURLY@49..51 "}" [] [Whitespace(" ")], }, operator_token: EQ@51..53 "=" [] [Whitespace(" ")], right: JsObjectExpression { l_curly_token: L_CURLY@53..54 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@54..55 "}" [] [], }, }, r_paren_token: R_PAREN@55..56 ")" [] [], }, semicolon_token: SEMICOLON@56..57 ";" [] [], }, JsExpressionStatement { expression: JsParenthesizedExpression { l_paren_token: L_PAREN@57..59 "(" [Newline("\n")] [], expression: JsAssignmentExpression { left: JsObjectAssignmentPattern { l_curly_token: L_CURLY@59..61 "{" [] [Whitespace(" ")], properties: JsObjectAssignmentPatternPropertyList [ JsObjectAssignmentPatternShorthandProperty { identifier: JsIdentifierAssignment { name_token: IDENT@61..63 "a" [] [Whitespace(" ")], }, init: missing (optional), }, missing separator, JsObjectAssignmentPatternShorthandProperty { identifier: JsIdentifierAssignment { name_token: IDENT@63..65 "b" [] [Whitespace(" ")], }, init: missing (optional), }, ], r_curly_token: R_CURLY@65..67 "}" [] [Whitespace(" ")], }, operator_token: EQ@67..69 "=" [] [Whitespace(" ")], right: JsObjectExpression { l_curly_token: L_CURLY@69..70 "{" [] [], members: JsObjectMemberList [], r_curly_token: R_CURLY@70..71 "}" [] [], }, }, r_paren_token: R_PAREN@71..72 ")" [] [], }, semicolon_token: SEMICOLON@72..73 ";" [] [], }, ], eof_token: EOF@73..74 "" [Newline("\n")] [], } 0: JS_MODULE@0..74 0: (empty) 1: (empty) 2: JS_DIRECTIVE_LIST@0..0 3: JS_MODULE_ITEM_LIST@0..73 0: JS_EXPRESSION_STATEMENT@0..12 0: JS_PARENTHESIZED_EXPRESSION@0..11 0: L_PAREN@0..1 "(" [] [] 1: JS_ASSIGNMENT_EXPRESSION@1..10 0: JS_OBJECT_ASSIGNMENT_PATTERN@1..6 0: L_CURLY@1..2 "{" [] [] 1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@2..4 0: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY@2..4 0: (empty) 1: COLON@2..3 ":" [] [] 2: JS_IDENTIFIER_ASSIGNMENT@3..4 0: IDENT@3..4 "y" [] [] 3: (empty) 2: R_CURLY@4..6 "}" [] [Whitespace(" ")] 1: EQ@6..8 "=" [] [Whitespace(" ")] 2: JS_OBJECT_EXPRESSION@8..10 0: L_CURLY@8..9 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@9..9 2: R_CURLY@9..10 "}" [] [] 2: R_PAREN@10..11 ")" [] [] 1: SEMICOLON@11..12 ";" [] [] 1: JS_EXPRESSION_STATEMENT@12..25 0: JS_PARENTHESIZED_EXPRESSION@12..24 0: L_PAREN@12..14 "(" [Newline("\n")] [] 1: JS_ASSIGNMENT_EXPRESSION@14..23 0: JS_OBJECT_ASSIGNMENT_PATTERN@14..19 0: L_CURLY@14..15 "{" [] [] 1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@15..17 0: JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY@15..17 0: (empty) 1: JS_INITIALIZER_CLAUSE@15..17 0: EQ@15..16 "=" [] [] 1: JS_IDENTIFIER_EXPRESSION@16..17 0: JS_REFERENCE_IDENTIFIER@16..17 0: IDENT@16..17 "y" [] [] 2: R_CURLY@17..19 "}" [] [Whitespace(" ")] 1: EQ@19..21 "=" [] [Whitespace(" ")] 2: JS_OBJECT_EXPRESSION@21..23 0: L_CURLY@21..22 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@22..22 2: R_CURLY@22..23 "}" [] [] 2: R_PAREN@23..24 ")" [] [] 1: SEMICOLON@24..25 ";" [] [] 2: JS_EXPRESSION_STATEMENT@25..44 0: JS_PARENTHESIZED_EXPRESSION@25..43 0: L_PAREN@25..27 "(" [Newline("\n")] [] 1: JS_ASSIGNMENT_EXPRESSION@27..42 0: JS_OBJECT_ASSIGNMENT_PATTERN@27..38 0: L_CURLY@27..28 "{" [] [] 1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@28..36 0: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY@28..36 0: (empty) 1: COLON@28..29 ":" [] [] 2: (empty) 3: JS_INITIALIZER_CLAUSE@29..36 0: EQ@29..30 "=" [] [] 1: JS_STRING_LITERAL_EXPRESSION@30..36 0: JS_STRING_LITERAL@30..36 "\"test\"" [] [] 2: R_CURLY@36..38 "}" [] [Whitespace(" ")] 1: EQ@38..40 "=" [] [Whitespace(" ")] 2: JS_OBJECT_EXPRESSION@40..42 0: L_CURLY@40..41 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@41..41 2: R_CURLY@41..42 "}" [] [] 2: R_PAREN@42..43 ")" [] [] 1: SEMICOLON@43..44 ";" [] [] 3: JS_EXPRESSION_STATEMENT@44..57 0: JS_PARENTHESIZED_EXPRESSION@44..56 0: L_PAREN@44..46 "(" [Newline("\n")] [] 1: JS_ASSIGNMENT_EXPRESSION@46..55 0: JS_OBJECT_ASSIGNMENT_PATTERN@46..51 0: L_CURLY@46..47 "{" [] [] 1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@47..49 0: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY@47..49 0: (empty) 1: COLON@47..48 ":" [] [] 2: (empty) 3: JS_INITIALIZER_CLAUSE@48..49 0: EQ@48..49 "=" [] [] 1: (empty) 2: R_CURLY@49..51 "}" [] [Whitespace(" ")] 1: EQ@51..53 "=" [] [Whitespace(" ")] 2: JS_OBJECT_EXPRESSION@53..55 0: L_CURLY@53..54 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@54..54 2: R_CURLY@54..55 "}" [] [] 2: R_PAREN@55..56 ")" [] [] 1: SEMICOLON@56..57 ";" [] [] 4: JS_EXPRESSION_STATEMENT@57..73 0: JS_PARENTHESIZED_EXPRESSION@57..72 0: L_PAREN@57..59 "(" [Newline("\n")] [] 1: JS_ASSIGNMENT_EXPRESSION@59..71 0: JS_OBJECT_ASSIGNMENT_PATTERN@59..67 0: L_CURLY@59..61 "{" [] [Whitespace(" ")] 1: JS_OBJECT_ASSIGNMENT_PATTERN_PROPERTY_LIST@61..65 0: JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY@61..63 0: JS_IDENTIFIER_ASSIGNMENT@61..63 0: IDENT@61..63 "a" [] [Whitespace(" ")] 1: (empty) 1: (empty) 2: JS_OBJECT_ASSIGNMENT_PATTERN_SHORTHAND_PROPERTY@63..65 0: JS_IDENTIFIER_ASSIGNMENT@63..65 0: IDENT@63..65 "b" [] [Whitespace(" ")] 1: (empty) 2: R_CURLY@65..67 "}" [] [Whitespace(" ")] 1: EQ@67..69 "=" [] [Whitespace(" ")] 2: JS_OBJECT_EXPRESSION@69..71 0: L_CURLY@69..70 "{" [] [] 1: JS_OBJECT_MEMBER_LIST@70..70 2: R_CURLY@70..71 "}" [] [] 2: R_PAREN@71..72 ")" [] [] 1: SEMICOLON@72..73 ";" [] [] 4: EOF@73..74 "" [Newline("\n")] [] -- property_assignment_target_err.js:1:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an identifier, a string literal, a number literal, or a computed property but instead found ':'. > 1 │ ({:y} = {}); │ ^ 2 │ ({=y} = {}); 3 │ ({:="test"} = {}); i Expected an identifier, a string literal, a number literal, or a computed property here. > 1 │ ({:y} = {}); │ ^ 2 │ ({=y} = {}); 3 │ ({:="test"} = {}); -- property_assignment_target_err.js:2:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an identifier but instead found '='. 1 │ ({:y} = {}); > 2 │ ({=y} = {}); │ ^ 3 │ ({:="test"} = {}); 4 │ ({:=} = {}); i Expected an identifier here. 1 │ ({:y} = {}); > 2 │ ({=y} = {}); │ ^ 3 │ ({:="test"} = {}); 4 │ ({:=} = {}); -- property_assignment_target_err.js:3:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an identifier, a string literal, a number literal, or a computed property but instead found ':'. 1 │ ({:y} = {}); 2 │ ({=y} = {}); > 3 │ ({:="test"} = {}); │ ^ 4 │ ({:=} = {}); 5 │ ({ a b } = {}); i Expected an identifier, a string literal, a number literal, or a computed property here. 1 │ ({:y} = {}); 2 │ ({=y} = {}); > 3 │ ({:="test"} = {}); │ ^ 4 │ ({:=} = {}); 5 │ ({ a b } = {}); -- property_assignment_target_err.js:3:4 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an identifier, or an assignment target but instead found '='. 1 │ ({:y} = {}); 2 │ ({=y} = {}); > 3 │ ({:="test"} = {}); │ ^ 4 │ ({:=} = {}); 5 │ ({ a b } = {}); i Expected an identifier, or an assignment target here. 1 │ ({:y} = {}); 2 │ ({=y} = {}); > 3 │ ({:="test"} = {}); │ ^ 4 │ ({:=} = {}); 5 │ ({ a b } = {}); -- property_assignment_target_err.js:4:3 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an identifier, a string literal, a number literal, or a computed property but instead found ':'. 2 │ ({=y} = {}); 3 │ ({:="test"} = {}); > 4 │ ({:=} = {}); │ ^ 5 │ ({ a b } = {}); 6 │ i Expected an identifier, a string literal, a number literal, or a computed property here. 2 │ ({=y} = {}); 3 │ ({:="test"} = {}); > 4 │ ({:=} = {}); │ ^ 5 │ ({ a b } = {}); 6 │ -- property_assignment_target_err.js:4:4 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an identifier, or an assignment target but instead found '='. 2 │ ({=y} = {}); 3 │ ({:="test"} = {}); > 4 │ ({:=} = {}); │ ^ 5 │ ({ a b } = {}); 6 │ i Expected an identifier, or an assignment target here. 2 │ ({=y} = {}); 3 │ ({:="test"} = {}); > 4 │ ({:=} = {}); │ ^ 5 │ ({ a b } = {}); 6 │ -- property_assignment_target_err.js:4:5 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × Expected an expression, or an assignment but instead found '}'. 2 │ ({=y} = {}); 3 │ ({:="test"} = {}); > 4 │ ({:=} = {}); │ ^ 5 │ ({ a b } = {}); 6 │ i Expected an expression, or an assignment here. 2 │ ({=y} = {}); 3 │ ({:="test"} = {}); > 4 │ ({:=} = {}); │ ^ 5 │ ({ a b } = {}); 6 │ -- property_assignment_target_err.js:5:6 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ × expected `,` but instead found `b` 3 │ ({:="test"} = {}); 4 │ ({:=} = {}); > 5 │ ({ a b } = {}); │ ^ 6 │ i Remove b -- ({:y} = {}); ({=y} = {}); ({:="test"} = {}); ({:=} = {}); ({ a b } = {});