biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
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;