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 } = {});