JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsClassDeclaration {
decorators: JsDecoratorList [],
abstract_token: missing (optional),
class_token: CLASS_KW@0..6 "class" [] [Whitespace(" ")],
id: missing (required),
type_parameters: missing (optional),
extends_clause: missing (optional),
implements_clause: missing (optional),
l_curly_token: L_CURLY@6..7 "{" [] [],
members: JsClassMemberList [
JsPropertyClassMember {
modifiers: JsPropertyModifierList [],
name: JsComputedMemberName {
l_brack_token: L_BRACK@7..11 "[" [Newline("\n"), Whitespace(" ")] [],
expression: JsBinaryExpression {
left: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@11..13 "1" [] [Whitespace(" ")],
},
operator_token: PLUS@13..15 "+" [] [Whitespace(" ")],
right: JsNumberLiteralExpression {
value_token: JS_NUMBER_LITERAL@15..16 "1" [] [],
},
},
r_brack_token: R_BRACK@16..18 "]" [] [Whitespace(" ")],
},
property_annotation: missing (optional),
value: JsInitializerClause {
eq_token: EQ@18..20 "=" [] [Whitespace(" ")],
expression: JsArrowFunctionExpression {
async_token: missing (optional),
type_parameters: missing (optional),
parameters: JsParameters {
l_paren_token: L_PAREN@20..21 "(" [] [],
items: JsParameterList [],
r_paren_token: R_PAREN@21..23 ")" [] [Whitespace(" ")],
},
return_type_annotation: missing (optional),
fat_arrow_token: FAT_ARROW@23..26 "=>" [] [Whitespace(" ")],
body: JsFunctionBody {
l_curly_token: L_CURLY@26..27 "{" [] [],
directives: JsDirectiveList [],
statements: JsStatementList [
JsVariableStatement {
declaration: JsVariableDeclaration {
await_token: missing (optional),
kind: LET_KW@27..36 "let" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")],
declarators: JsVariableDeclaratorList [
JsVariableDeclarator {
id: JsIdentifierBinding {
name_token: IDENT@36..37 "a" [] [],
},
variable_annotation: missing (optional),
initializer: JsInitializerClause {
eq_token: EQ@37..38 "=" [] [],
expression: missing (required),
},
},
],
},
semicolon_token: SEMICOLON@38..39 ";" [] [],
},
],
r_curly_token: R_CURLY@39..43 "}" [Newline("\n"), Whitespace(" ")] [],
},
},
},
semicolon_token: SEMICOLON@43..44 ";" [] [],
},
],
r_curly_token: R_CURLY@44..46 "}" [Newline("\n")] [],
},
JsEmptyStatement {
semicolon_token: SEMICOLON@46..47 ";" [] [],
},
],
eof_token: EOF@47..48 "" [Newline("\n")] [],
}
0: JS_MODULE@0..48
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..47
0: JS_CLASS_DECLARATION@0..46
0: JS_DECORATOR_LIST@0..0
1: (empty)
2: CLASS_KW@0..6 "class" [] [Whitespace(" ")]
3: (empty)
4: (empty)
5: (empty)
6: (empty)
7: L_CURLY@6..7 "{" [] []
8: JS_CLASS_MEMBER_LIST@7..44
0: JS_PROPERTY_CLASS_MEMBER@7..44
0: JS_PROPERTY_MODIFIER_LIST@7..7
1: JS_COMPUTED_MEMBER_NAME@7..18
0: L_BRACK@7..11 "[" [Newline("\n"), Whitespace(" ")] []
1: JS_BINARY_EXPRESSION@11..16
0: JS_NUMBER_LITERAL_EXPRESSION@11..13
0: JS_NUMBER_LITERAL@11..13 "1" [] [Whitespace(" ")]
1: PLUS@13..15 "+" [] [Whitespace(" ")]
2: JS_NUMBER_LITERAL_EXPRESSION@15..16
0: JS_NUMBER_LITERAL@15..16 "1" [] []
2: R_BRACK@16..18 "]" [] [Whitespace(" ")]
2: (empty)
3: JS_INITIALIZER_CLAUSE@18..43
0: EQ@18..20 "=" [] [Whitespace(" ")]
1: JS_ARROW_FUNCTION_EXPRESSION@20..43
0: (empty)
1: (empty)
2: JS_PARAMETERS@20..23
0: L_PAREN@20..21 "(" [] []
1: JS_PARAMETER_LIST@21..21
2: R_PAREN@21..23 ")" [] [Whitespace(" ")]
3: (empty)
4: FAT_ARROW@23..26 "=>" [] [Whitespace(" ")]
5: JS_FUNCTION_BODY@26..43
0: L_CURLY@26..27 "{" [] []
1: JS_DIRECTIVE_LIST@27..27
2: JS_STATEMENT_LIST@27..39
0: JS_VARIABLE_STATEMENT@27..39
0: JS_VARIABLE_DECLARATION@27..38
0: (empty)
1: LET_KW@27..36 "let" [Newline("\n"), Whitespace(" ")] [Whitespace(" ")]
2: JS_VARIABLE_DECLARATOR_LIST@36..38
0: JS_VARIABLE_DECLARATOR@36..38
0: JS_IDENTIFIER_BINDING@36..37
0: IDENT@36..37 "a" [] []
1: (empty)
2: JS_INITIALIZER_CLAUSE@37..38
0: EQ@37..38 "=" [] []
1: (empty)
1: SEMICOLON@38..39 ";" [] []
3: R_CURLY@39..43 "}" [Newline("\n"), Whitespace(" ")] []
4: SEMICOLON@43..44 ";" [] []
9: R_CURLY@44..46 "}" [Newline("\n")] []
1: JS_EMPTY_STATEMENT@46..47
0: SEMICOLON@46..47 ";" [] []
4: EOF@47..48 "" [Newline("\n")] []
--
invalid_method_recover.js:1:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× class declarations must have a name
> 1 │ class {
│ ^^^^^^
2 │ [1 + 1] = () => {
3 │ let a=;
--
invalid_method_recover.js:3:11 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Expected an expression, or an assignment but instead found ';'.
1 │ class {
2 │ [1 + 1] = () => {
> 3 │ let a=;
│ ^
4 │ };
5 │ };
i Expected an expression, or an assignment here.
1 │ class {
2 │ [1 + 1] = () => {
> 3 │ let a=;
│ ^
4 │ };
5 │ };
--
class {
[1 + 1] = () => {
let a=;
};
};