{
  "programs": [
    "Program {\n    span: 65..603,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Expr(\n    ExprStmt {\n        span: 84..100,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 134..151,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 101..157,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 190..230,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 226..276,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 334..364,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 363..371,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 370..386,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 457..497,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 493..535,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 538..569,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 583..591,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 590..603,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Fn(\n    FnDecl {\n        span: 65..102,\n        ident: Ident {\n            span: 74..75,\n            sym: \"C\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 152..320,\n        ident: Ident {\n            span: 158..159,\n            sym: \"X\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 317..335,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 317..333,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 381..539,\n        ident: Ident {\n            span: 387..388,\n            sym: \"Y\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 566..584,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 566..582,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 321..322,\n        sym: \"x\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 323..333,\n        left: _,\n        right: _,\n    },\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 570..571,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 572..582,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 84..88,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 88..92,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 89..90,\n                sym: \"m\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 93..97,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 91..98,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 101..102,\n        sym: \"C\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 102..113,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 103..112,\n                sym: \"prototype\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 112..116,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 113..114,\n                sym: \"m\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 134..138,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 138..147,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 139..146,\n                sym: \"nothing\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 146..149,\n        callee: _,\n        args: [],\n    },\n)",
    "Function(\n    _,\n)",
    "Assign(\n    AssignExpr {\n        span: 115..157,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 190..194,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 194..198,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 195..196,\n                sym: \"m\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 199..203,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 203..206,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 204..205,\n                sym: \"m\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 205..211,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 206..210,\n                sym: \"bind\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 211..215,\n        sym: \"this\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 210..217,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 197..217,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 226..230,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 230..240,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 231..238,\n                sym: \"mistake\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 241..269,\n            value: \"frankly, complete nonsense\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 239..270,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 329..330,\n        sym: \"X\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 330..333,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 325..333,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 334..335,\n        sym: \"X\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 335..346,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 336..345,\n                sym: \"prototype\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 345..355,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 346..353,\n                sym: \"mistake\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 356..361,\n            value: false,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 354..362,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 363..364,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 364..367,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 365..366,\n                sym: \"m\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 366..369,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 370..371,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 371..380,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 372..379,\n                sym: \"mistake\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 457..461,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 461..465,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 462..463,\n                sym: \"m\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 466..470,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 470..473,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 471..472,\n                sym: \"m\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 472..478,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 473..477,\n                sym: \"bind\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 478..482,\n        sym: \"this\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 477..484,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 464..484,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 493..497,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 497..507,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 498..505,\n                sym: \"mistake\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 508..528,\n            value: \"even more nonsense\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 506..529,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 538..539,\n        sym: \"Y\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 539..550,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 540..549,\n                sym: \"prototype\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 549..559,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 550..557,\n                sym: \"mistake\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 560..564,\n            value: true,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 558..565,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 578..579,\n        sym: \"Y\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 579..582,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 574..582,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 583..584,\n        sym: \"y\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 584..587,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 585..586,\n                sym: \"m\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 586..589,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 590..591,\n        sym: \"y\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 591..600,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 592..599,\n                sym: \"mistake\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 599..602,\n        callee: _,\n        args: [],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 117..157,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 166..282,\n    params: [],\n    body: [\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 281..304,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 297..316,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 395..418,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 417..444,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 433..537,\n    params: [],\n    body: [\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [
    "Class {\n    span: 152..320,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 158..159,\n            sym: \"X\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n        _,\n    ],\n}",
    "Class {\n    span: 381..539,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 387..388,\n            sym: \"Y\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "class_members": [
    "Method(\n    ClassMethod {\n        span: 166..282,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 166..177,\n                sym: \"constructor\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Constructor,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 281..304,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 281..282,\n                sym: \"m\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 297..316,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 297..304,\n                sym: \"mistake\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 395..418,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 395..402,\n                sym: \"mistake\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 417..444,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 417..418,\n                sym: \"m\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 433..537,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 433..444,\n                sym: \"constructor\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Constructor,\n    },\n)"
  ],
  "jsx_elements": [],
  "ts_types": []
}
