JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsExpressionStatement {
expression: JsBogusExpression {
items: [
DELETE_KW@0..7 "delete" [] [Whitespace(" ")],
JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@7..12 "ident" [] [],
},
},
],
},
semicolon_token: SEMICOLON@12..13 ";" [] [],
},
JsExpressionStatement {
expression: JsBogusExpression {
items: [
DELETE_KW@13..21 "delete" [Newline("\n")] [Whitespace(" ")],
JsStaticMemberExpression {
object: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@21..24 "obj" [] [],
},
},
operator_token: DOT@24..25 "." [] [],
member: JsPrivateName {
hash_token: HASH@25..26 "#" [] [],
value_token: IDENT@26..32 "member" [] [],
},
},
],
},
semicolon_token: SEMICOLON@32..33 ";" [] [],
},
JsExpressionStatement {
expression: JsBogusExpression {
items: [
DELETE_KW@33..41 "delete" [Newline("\n")] [Whitespace(" ")],
JsStaticMemberExpression {
object: JsCallExpression {
callee: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@41..45 "func" [] [],
},
},
optional_chain_token: missing (optional),
type_arguments: missing (optional),
arguments: JsCallArguments {
l_paren_token: L_PAREN@45..46 "(" [] [],
args: JsCallArgumentList [],
r_paren_token: R_PAREN@46..47 ")" [] [],
},
},
operator_token: DOT@47..48 "." [] [],
member: JsPrivateName {
hash_token: HASH@48..49 "#" [] [],
value_token: IDENT@49..55 "member" [] [],
},
},
],
},
semicolon_token: SEMICOLON@55..56 ";" [] [],
},
JsExpressionStatement {
expression: JsBogusExpression {
items: [
DELETE_KW@56..64 "delete" [Newline("\n")] [Whitespace(" ")],
JsStaticMemberExpression {
object: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@64..67 "obj" [] [],
},
},
operator_token: QUESTIONDOT@67..69 "?." [] [],
member: JsPrivateName {
hash_token: HASH@69..70 "#" [] [],
value_token: IDENT@70..76 "member" [] [],
},
},
],
},
semicolon_token: SEMICOLON@76..77 ";" [] [],
},
JsExpressionStatement {
expression: JsBogusExpression {
items: [
DELETE_KW@77..85 "delete" [Newline("\n")] [Whitespace(" ")],
JsStaticMemberExpression {
object: JsStaticMemberExpression {
object: JsIdentifierExpression {
name: JsReferenceIdentifier {
value_token: IDENT@85..88 "obj" [] [],
},
},
operator_token: QUESTIONDOT@88..90 "?." [] [],
member: JsName {
value_token: IDENT@90..95 "inner" [] [],
},
},
operator_token: DOT@95..96 "." [] [],
member: JsPrivateName {
hash_token: HASH@96..97 "#" [] [],
value_token: IDENT@97..103 "member" [] [],
},
},
],
},
semicolon_token: SEMICOLON@103..104 ";" [] [],
},
],
eof_token: EOF@104..105 "" [Newline("\n")] [],
}
0: JS_MODULE@0..105
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..104
0: JS_EXPRESSION_STATEMENT@0..13
0: JS_BOGUS_EXPRESSION@0..12
0: DELETE_KW@0..7 "delete" [] [Whitespace(" ")]
1: JS_IDENTIFIER_EXPRESSION@7..12
0: JS_REFERENCE_IDENTIFIER@7..12
0: IDENT@7..12 "ident" [] []
1: SEMICOLON@12..13 ";" [] []
1: JS_EXPRESSION_STATEMENT@13..33
0: JS_BOGUS_EXPRESSION@13..32
0: DELETE_KW@13..21 "delete" [Newline("\n")] [Whitespace(" ")]
1: JS_STATIC_MEMBER_EXPRESSION@21..32
0: JS_IDENTIFIER_EXPRESSION@21..24
0: JS_REFERENCE_IDENTIFIER@21..24
0: IDENT@21..24 "obj" [] []
1: DOT@24..25 "." [] []
2: JS_PRIVATE_NAME@25..32
0: HASH@25..26 "#" [] []
1: IDENT@26..32 "member" [] []
1: SEMICOLON@32..33 ";" [] []
2: JS_EXPRESSION_STATEMENT@33..56
0: JS_BOGUS_EXPRESSION@33..55
0: DELETE_KW@33..41 "delete" [Newline("\n")] [Whitespace(" ")]
1: JS_STATIC_MEMBER_EXPRESSION@41..55
0: JS_CALL_EXPRESSION@41..47
0: JS_IDENTIFIER_EXPRESSION@41..45
0: JS_REFERENCE_IDENTIFIER@41..45
0: IDENT@41..45 "func" [] []
1: (empty)
2: (empty)
3: JS_CALL_ARGUMENTS@45..47
0: L_PAREN@45..46 "(" [] []
1: JS_CALL_ARGUMENT_LIST@46..46
2: R_PAREN@46..47 ")" [] []
1: DOT@47..48 "." [] []
2: JS_PRIVATE_NAME@48..55
0: HASH@48..49 "#" [] []
1: IDENT@49..55 "member" [] []
1: SEMICOLON@55..56 ";" [] []
3: JS_EXPRESSION_STATEMENT@56..77
0: JS_BOGUS_EXPRESSION@56..76
0: DELETE_KW@56..64 "delete" [Newline("\n")] [Whitespace(" ")]
1: JS_STATIC_MEMBER_EXPRESSION@64..76
0: JS_IDENTIFIER_EXPRESSION@64..67
0: JS_REFERENCE_IDENTIFIER@64..67
0: IDENT@64..67 "obj" [] []
1: QUESTIONDOT@67..69 "?." [] []
2: JS_PRIVATE_NAME@69..76
0: HASH@69..70 "#" [] []
1: IDENT@70..76 "member" [] []
1: SEMICOLON@76..77 ";" [] []
4: JS_EXPRESSION_STATEMENT@77..104
0: JS_BOGUS_EXPRESSION@77..103
0: DELETE_KW@77..85 "delete" [Newline("\n")] [Whitespace(" ")]
1: JS_STATIC_MEMBER_EXPRESSION@85..103
0: JS_STATIC_MEMBER_EXPRESSION@85..95
0: JS_IDENTIFIER_EXPRESSION@85..88
0: JS_REFERENCE_IDENTIFIER@85..88
0: IDENT@85..88 "obj" [] []
1: QUESTIONDOT@88..90 "?." [] []
2: JS_NAME@90..95
0: IDENT@90..95 "inner" [] []
1: DOT@95..96 "." [] []
2: JS_PRIVATE_NAME@96..103
0: HASH@96..97 "#" [] []
1: IDENT@97..103 "member" [] []
1: SEMICOLON@103..104 ";" [] []
4: EOF@104..105 "" [Newline("\n")] []
--
unary_delete.js:1:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× the target for a delete operator cannot be a single identifier
> 1 │ delete ident;
│ ^^^^^
2 │ delete obj.#member;
3 │ delete func().#member;
--
unary_delete.js:2:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× the target for a delete operator cannot be a private member
1 │ delete ident;
> 2 │ delete obj.#member;
│ ^^^^^^^^^^^
3 │ delete func().#member;
4 │ delete obj?.#member;
--
unary_delete.js:3:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× the target for a delete operator cannot be a private member
1 │ delete ident;
2 │ delete obj.#member;
> 3 │ delete func().#member;
│ ^^^^^^^^^^^^^^
4 │ delete obj?.#member;
5 │ delete obj?.inner.#member;
--
unary_delete.js:4:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× the target for a delete operator cannot be a private member
2 │ delete obj.#member;
3 │ delete func().#member;
> 4 │ delete obj?.#member;
│ ^^^^^^^^^^^^
5 │ delete obj?.inner.#member;
6 │
--
unary_delete.js:5:8 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× the target for a delete operator cannot be a private member
3 │ delete func().#member;
4 │ delete obj?.#member;
> 5 │ delete obj?.inner.#member;
│ ^^^^^^^^^^^^^^^^^^
6 │
--
delete ident;
delete obj.#member;
delete func().#member;
delete obj?.#member;
delete obj?.inner.#member;