{
  "programs": [
    "Program {\n    span: 73..5133,\n    kind: Module,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Throw(\n    ThrowStmt {\n        span: 118..145,\n        arg: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 210..243,\n        expr: _,\n    },\n)",
    "If(\n    IfStmt {\n        span: 189..243,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 242..264,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 316..334,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "If(\n    IfStmt {\n        span: 304..334,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 330..360,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 359..379,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 411..433,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 429..442,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 441..461,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 561..594,\n        expr: _,\n    },\n)",
    "If(\n    IfStmt {\n        span: 540..594,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 593..615,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 702..720,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "If(\n    IfStmt {\n        span: 690..720,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 716..746,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 745..765,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 832..854,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 850..863,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 862..882,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1027..1066,\n        expr: _,\n    },\n)",
    "If(\n    IfStmt {\n        span: 1006..1066,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1065..1087,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1139..1158,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "If(\n    IfStmt {\n        span: 1127..1158,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1153..1189,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1188..1208,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1240..1263,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1258..1277,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1276..1296,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1328..1347,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1346..1369,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1368..1388,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Throw(\n    ThrowStmt {\n        span: 1447..1478,\n        arg: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1540..1582,\n        expr: _,\n    },\n)",
    "If(\n    IfStmt {\n        span: 1519..1582,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1581..1607,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1656..1678,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "If(\n    IfStmt {\n        span: 1644..1678,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1674..1713,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1712..1736,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1765..1791,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1787..1809,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1808..1832,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1924..1941,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1940..1964,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1914..1973,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1984..2020,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2053..2083,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2079..2100,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2099..2127,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2039..2140,\n        stmts: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2155..2188,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2184..2205,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2204..2232,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2141..2242,\n        stmts: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 2018..2242,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2241..2265,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1974..2271,\n        stmts: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 1887..2271,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2270..2290,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2377..2394,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2393..2423,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2422..2448,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2367..2454,\n        stmts: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 2338..2454,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2453..2490,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2489..2506,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2552..2567,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2563..2580,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2579..2603,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2542..2615,\n        stmts: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2626..2641,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2637..2654,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2653..2677,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2616..2683,\n        stmts: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Try(\n    TryStmt {\n        span: 2538..2683,\n        block: _,\n        handler: None,\n        finalizer: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2682..2702,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2748..2756,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2738..2768,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2779..2794,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2790..2807,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2806..2830,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2769..2836,\n        stmts: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Try(\n    TryStmt {\n        span: 2734..2836,\n        block: _,\n        handler: None,\n        finalizer: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2835..2855,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2901..2916,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2912..2929,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2928..2952,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2891..2964,\n        stmts: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2975..2983,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 2965..2989,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Try(\n    TryStmt {\n        span: 2887..2989,\n        block: _,\n        handler: None,\n        finalizer: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2988..3008,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Throw(\n    ThrowStmt {\n        span: 3059..3079,\n        arg: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 3107..3160,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3159..3206,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3205..3209,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 4250..4269,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 4330..4355,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 4351..4411,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 4578..4634,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Throw(\n    ThrowStmt {\n        span: 4711..4735,\n        arg: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 4820..4839,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 4866..4884,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 5070..5099,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 5060..5104,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 5115..5130,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 5105..5132,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 5044..5132,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "Fn(\n    FnDecl {\n        span: 73..155,\n        ident: Ident {\n            span: 82..86,\n            sym: \"fail\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 147..274,\n        ident: Ident {\n            span: 156..159,\n            sym: \"f01\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 266..389,\n        ident: Ident {\n            span: 275..278,\n            sym: \"f02\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 381..471,\n        ident: Ident {\n            span: 390..393,\n            sym: \"f03\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 463..625,\n        ident: Ident {\n            span: 472..475,\n            sym: \"f11\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 617..775,\n        ident: Ident {\n            span: 626..629,\n            sym: \"f12\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 767..893,\n        ident: Ident {\n            span: 776..779,\n            sym: \"f13\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 921..962,\n        ident: Ident {\n            span: 930..934,\n            sym: \"fail\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 884..972,\n        declare: false,\n        global: false,\n        namespace: true,\n        id: Ident(\n            Ident {\n                span: 894..899,\n                sym: \"Debug\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 964..1097,\n        ident: Ident {\n            span: 973..976,\n            sym: \"f21\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1089..1218,\n        ident: Ident {\n            span: 1098..1101,\n            sym: \"f22\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1210..1306,\n        ident: Ident {\n            span: 1219..1222,\n            sym: \"f23\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1298..1395,\n        ident: Ident {\n            span: 1307..1310,\n            sym: \"f24\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 1390..1844,\n        ident: Ident {\n            span: 1396..1400,\n            sym: \"Test\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1836..2300,\n        ident: Ident {\n            span: 1845..1848,\n            sym: \"f30\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2292..2516,\n        ident: Ident {\n            span: 2301..2304,\n            sym: \"f31\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2508..2712,\n        ident: Ident {\n            span: 2517..2520,\n            sym: \"f40\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2704..2865,\n        ident: Ident {\n            span: 2713..2716,\n            sym: \"f41\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2857..3018,\n        ident: Ident {\n            span: 2866..2869,\n            sym: \"f42\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3031..3090,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 3031..3080,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3085..3111,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 3085..3102,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 3010..3239,\n        ident: Ident {\n            span: 3019..3022,\n            sym: \"f43\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 3240..3672,\n        ident: Ident {\n            span: 3250..3259,\n            sym: \"Component\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 3260..3261,\n                sym: \"T\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 3287..3311,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3287..3295,\n                            sym: \"attrName\",\n                        },\n                    ),\n                ),\n                optional: true,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3307..3329,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3307..3311,\n                            sym: \"data\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3317..3345,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3317..3329,\n                            sym: \"dependencies\",\n                        },\n                    ),\n                ),\n                optional: true,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3343..3355,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3343..3345,\n                            sym: \"el\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3353..3374,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3353..3355,\n                            sym: \"id\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3366..3391,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3366..3374,\n                            sym: \"multiple\",\n                        },\n                    ),\n                ),\n                optional: true,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3387..3408,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3387..3391,\n                            sym: \"name\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3402..3426,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3402..3408,\n                            sym: \"schema\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3420..3439,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3420..3426,\n                            sym: \"system\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3435..3463,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3435..3439,\n                            sym: \"init\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 3440..3449,\n                        name: Some(\n                            Ident {\n                                span: 3440..3444,\n                                sym: \"data\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: true,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3458..3478,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3458..3463,\n                            sym: \"pause\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3474..3495,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3474..3478,\n                            sym: \"play\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3489..3510,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3489..3495,\n                            sym: \"remove\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3506..3559,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3506..3510,\n                            sym: \"tick\",\n                        },\n                    ),\n                ),\n                optional: true,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 3512..3525,\n                        name: Some(\n                            Ident {\n                                span: 3512..3516,\n                                sym: \"time\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 3526..3544,\n                        name: Some(\n                            Ident {\n                                span: 3526..3535,\n                                sym: \"timeDelta\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3553..3592,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3553..3559,\n                            sym: \"update\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 3560..3571,\n                        name: Some(\n                            Ident {\n                                span: 3560..3567,\n                                sym: \"oldData\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3580..3617,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3580..3592,\n                            sym: \"updateSchema\",\n                        },\n                    ),\n                ),\n                optional: true,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3605..3653,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3605..3617,\n                            sym: \"extendSchema\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 3618..3634,\n                        name: Some(\n                            Ident {\n                                span: 3618..3624,\n                                sym: \"update\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3643..3664,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3643..3653,\n                            sym: \"flushToDOM\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 3673..3890,\n        ident: Ident {\n            span: 3683..3703,\n            sym: \"ComponentConstructor\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 3704..3705,\n                sym: \"T\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 3725..3800,\n                kind: Construct,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 3730..3742,\n                        name: Some(\n                            Ident {\n                                span: 3730..3732,\n                                sym: \"el\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 3743..3761,\n                        name: Some(\n                            Ident {\n                                span: 3743..3752,\n                                sym: \"attrValue\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 3762..3773,\n                        name: Some(\n                            Ident {\n                                span: 3762..3764,\n                                sym: \"id\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3791..3881,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3791..3800,\n                            sym: \"prototype\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 3891..4028,\n        ident: Ident {\n            span: 3900..3917,\n            sym: \"registerComponent\",\n        },\n        declare: true,\n        params: [\n            _,\n            _,\n        ],\n        body: [],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4029..4139,\n        ident: Ident {\n            span: 4034..4053,\n            sym: \"ComponentDefinition\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 4054..4055,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 4134..4667,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 4134..4638,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 4662..4744,\n        ident: Ident {\n            span: 4668..4679,\n            sym: \"MyThrowable\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 4739..4919,\n        ident: Ident {\n            span: 4745..4759,\n            sym: \"SuperThrowable\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 4910..4977,\n        ident: Ident {\n            span: 4920..4928,\n            sym: \"Services\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 4935..4967,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 4935..4940,\n                            sym: \"panic\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 4941..4957,\n                        name: Some(\n                            Ident {\n                                span: 4941..4948,\n                                sym: \"message\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 4969..5133,\n        ident: Ident {\n            span: 4978..4981,\n            sym: \"foo\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 87..94,\n        sym: \"message\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 160..161,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 279..280,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 394..395,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 476..477,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 499..503,\n        sym: \"fail\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 630..631,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 641..645,\n        sym: \"fail\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 780..781,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 791..795,\n        sym: \"fail\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 935..942,\n        sym: \"message\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 977..978,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1102..1103,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1223..1224,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1311..1312,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1412..1419,\n        sym: \"message\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1486..1487,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1615..1616,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1744..1745,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1849..1850,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2305..2306,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2521..2522,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2717..2718,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2870..2871,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3037..3041,\n        sym: \"fail\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 3042..3080,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3091..3092,\n        sym: \"f\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 3093..3102,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3941..3945,\n        sym: \"name\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3959..3968,\n        sym: \"component\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4140..4149,\n        sym: \"Component\",\n    },\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 4489..4490,\n        sym: \"f\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 4150..4638,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 4790..4793,\n        sym: \"msg\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4982..4990,\n        sym: \"services\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 5012..5013,\n        sym: \"s\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 128..133,\n        sym: \"Error\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 134..141,\n        sym: \"message\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 133..143,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 124..143,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 193..194,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 199..208,\n        sym: \"undefined\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 195..209,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 210..214,\n        sym: \"fail\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 215..235,\n            value: \"undefined argument\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 214..237,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 242..243,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 243..251,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 244..250,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 308..309,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 313..314,\n            value: 0.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 310..315,\n        op: GtEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 323..324,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 330..334,\n        sym: \"fail\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 335..352,\n            value: \"negative number\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 334..354,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 359..360,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 411..412,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 429..433,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 433..436,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 441..442,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 544..545,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 550..559,\n        sym: \"undefined\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 546..560,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 561..565,\n        sym: \"fail\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 566..586,\n            value: \"undefined argument\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 565..588,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 593..594,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 594..602,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 595..601,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 694..695,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 699..700,\n            value: 0.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 696..701,\n        op: GtEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 709..710,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 716..720,\n        sym: \"fail\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 721..738,\n            value: \"negative number\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 720..740,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 745..746,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 832..833,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 850..854,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 854..857,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 862..863,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1010..1011,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1016..1025,\n        sym: \"undefined\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1012..1026,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1027..1032,\n        sym: \"Debug\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1032..1038,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1033..1037,\n                sym: \"fail\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1038..1058,\n            value: \"undefined argument\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 1037..1060,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1065..1066,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1066..1074,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1067..1073,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1131..1132,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1136..1137,\n            value: 0.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 1133..1138,\n        op: GtEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1146..1147,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1153..1158,\n        sym: \"Debug\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1158..1164,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1159..1163,\n                sym: \"fail\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1164..1181,\n            value: \"negative number\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 1163..1183,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1188..1189,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1240..1241,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1258..1263,\n        sym: \"Debug\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1263..1269,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1264..1268,\n                sym: \"fail\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1268..1271,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1276..1277,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1328..1329,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1348..1353,\n        sym: \"Debug\",\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 1347..1355,\n        expr: _,\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1354..1360,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1355..1359,\n                sym: \"fail\",\n            },\n        ),\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 1346..1361,\n        expr: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1360..1363,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1368..1369,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1457..1462,\n        sym: \"Error\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1463..1470,\n        sym: \"message\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1462..1472,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 1453..1472,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1523..1524,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1529..1538,\n        sym: \"undefined\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1525..1539,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1540..1544,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1544..1550,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1545..1549,\n                sym: \"fail\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1550..1570,\n            value: \"undefined argument\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 1549..1572,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1581..1582,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1582..1590,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1583..1589,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1648..1649,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1653..1654,\n            value: 0.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 1650..1655,\n        op: GtEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1663..1664,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1674..1678,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1678..1684,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1679..1683,\n                sym: \"fail\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1684..1701,\n            value: \"negative number\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 1683..1703,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1712..1713,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1765..1766,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1787..1791,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1791..1797,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1792..1796,\n                sym: \"fail\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1796..1799,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1808..1809,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1898..1899,\n        sym: \"x\",\n    },\n)",
    "Unary(\n    UnaryExpr {\n        span: 1891..1903,\n        op: TypeOf,\n        arg: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1904..1912,\n            value: \"string\",\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 1900..1913,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1924..1928,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1928..1931,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1940..1941,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1984..1985,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2022..2023,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2028..2037,\n        sym: \"undefined\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 2024..2038,\n        op: NotEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2053..2054,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2079..2083,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2083..2086,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2099..2100,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2155..2156,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2184..2188,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2188..2191,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2204..2205,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2241..2242,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2270..2271,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2349..2350,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2350..2356,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2351..2352,\n                sym: \"a\",\n            },\n        ),\n    },\n)",
    "Unary(\n    UnaryExpr {\n        span: 2342..2356,\n        op: TypeOf,\n        arg: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2357..2365,\n            value: \"string\",\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 2353..2366,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2377..2381,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2381..2384,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2393..2394,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2422..2423,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2423..2426,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2424..2425,\n                sym: \"a\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 2453..2454,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2489..2490,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2490..2493,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2491..2492,\n                sym: \"a\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 2552..2553,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2563..2567,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2567..2570,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2579..2580,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2626..2627,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2637..2641,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2641..2644,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2653..2654,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2682..2683,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2748..2749,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2779..2780,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2790..2794,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2794..2797,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2806..2807,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2835..2836,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2901..2902,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2912..2916,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2916..2919,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2928..2929,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2975..2976,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2988..2989,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3069..3074,\n        sym: \"Error\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 3074..3077,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 3065..3077,\n        callee: _,\n        args: [],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 3044..3080,\n        params: [],\n        body: Block(\n            [\n                _,\n            ],\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3096..3100,\n        sym: \"fail\",\n    },\n)",
    "Array(\n    ArrayExpr {\n        span: 3095..3102,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 3107..3111,\n        sym: \"fail\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 3111..3114,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 3159..3160,\n        sym: \"f\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 3161..3162,\n            value: 0.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 3160..3164,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 3163..3166,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 3205..3206,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4152..4169,\n        sym: \"registerComponent\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4170..4186,\n            value: \"test-component\",\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 4229..4232,\n        elems: [],\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 4258..4262,\n            value: true,\n        },\n    ),\n)",
    "Array(\n    ArrayExpr {\n        span: 4257..4264,\n        elems: [\n            Some(\n                ExprOrSpread {\n                    spread: false,\n                    expr: _,\n                },\n            ),\n        ],\n    },\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 4215..4274,\n        props: [\n            KeyValueProp {\n                span: 4220..4232,\n                key: Ident(\n                    Ident {\n                        span: 4220..4227,\n                        sym: \"default\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4236..4273,\n                key: Ident(\n                    Ident {\n                        span: 4236..4241,\n                        sym: \"parse\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4293..4301,\n            value: \"string\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 4285..4304,\n        props: [\n            KeyValueProp {\n                span: 4287..4303,\n                key: Ident(\n                    Ident {\n                        span: 4287..4291,\n                        sym: \"type\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 4312..4313,\n            value: 0.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 4199..4317,\n        props: [\n            KeyValueProp {\n                span: 4203..4274,\n                key: Ident(\n                    Ident {\n                        span: 4203..4213,\n                        sym: \"myProperty\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4277..4304,\n                key: Ident(\n                    Ident {\n                        span: 4277..4283,\n                        sym: \"string\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4307..4316,\n                key: Ident(\n                    Ident {\n                        span: 4307..4310,\n                        sym: \"num\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 4330..4334,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4334..4340,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4335..4339,\n                sym: \"data\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4339..4345,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4340..4343,\n                sym: \"num\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 4346..4347,\n            value: 0.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 4344..4348,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 4351..4355,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4355..4359,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4356..4358,\n                sym: \"el\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4358..4372,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4359..4371,\n                sym: \"setAttribute\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4372..4390,\n            value: \"custom-attribute\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4392..4406,\n            value: \"custom-value\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 4371..4408,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 4585..4586,\n        sym: \"f\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4589..4593,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4593..4599,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4594..4598,\n                sym: \"data\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4598..4604,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4599..4602,\n                sym: \"num\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 4587..4604,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 4605..4609,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4609..4617,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4610..4616,\n                sym: \"system\",\n            },\n        ),\n    },\n)",
    "TsNonNull(\n    TsNonNullExpr {\n        span: 4616..4618,\n        expr: _,\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4617..4623,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4618..4622,\n                sym: \"data\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4622..4631,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4623..4630,\n                sym: \"counter\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 4603..4631,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 4188..4637,\n        props: [\n            KeyValueProp {\n                span: 4191..4317,\n                key: Ident(\n                    Ident {\n                        span: 4191..4197,\n                        sym: \"schema\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4319..4412,\n                key: Ident(\n                    Ident {\n                        span: 4319..4323,\n                        sym: \"init\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4414..4426,\n                key: Ident(\n                    Ident {\n                        span: 4414..4420,\n                        sym: \"update\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4428..4438,\n                key: Ident(\n                    Ident {\n                        span: 4428..4432,\n                        sym: \"tick\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4440..4452,\n                key: Ident(\n                    Ident {\n                        span: 4440..4446,\n                        sym: \"remove\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4454..4465,\n                key: Ident(\n                    Ident {\n                        span: 4454..4459,\n                        sym: \"pause\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4467..4477,\n                key: Ident(\n                    Ident {\n                        span: 4467..4471,\n                        sym: \"play\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 4480..4636,\n                key: Ident(\n                    Ident {\n                        span: 4480..4488,\n                        sym: \"multiply\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 4169..4638,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 4721..4726,\n        sym: \"Error\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 4726..4729,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 4717..4729,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 4768..4779,\n        sym: \"MyThrowable\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4820..4825,\n        sym: \"super\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4825..4832,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4826..4831,\n                sym: \"throw\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 4831..4839,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 4866..4870,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4870..4877,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4871..4876,\n                sym: \"throw\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 4876..4884,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 5048..5049,\n        sym: \"s\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 5054..5058,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 5050..5059,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 5070..5078,\n        sym: \"services\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 5078..5085,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 5079..5084,\n                sym: \"panic\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 5085..5091,\n            value: \"ouch\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 5084..5093,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 5122..5123,\n        sym: \"s\",\n    },\n)"
  ],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 906..962,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 3233..3672,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 3666..3890,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 4022..4139,\n        decl: _,\n    },\n)"
  ],
  "functions": [
    "Function {\n    span: 1407..1485,\n    params: [\n        Param {\n            span: 1412..1429,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 1483..1614,\n    params: [\n        Param {\n            span: 1486..1508,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 1612..1743,\n    params: [\n        Param {\n            span: 1615..1625,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 1741..1834,\n    params: [\n        Param {\n            span: 1744..1754,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4236..4273,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4319..4412,\n    params: [],\n    body: [\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4414..4426,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4428..4438,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4440..4452,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4454..4465,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4467..4477,\n    params: [],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4480..4636,\n    params: [\n        Param {\n            span: 4489..4499,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4686..4737,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4786..4846,\n    params: [\n        Param {\n            span: 4790..4802,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 4844..4886,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [
    "Class {\n    span: 1390..1844,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 1396..1400,\n            sym: \"Test\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n        _,\n        _,\n    ],\n}",
    "Class {\n    span: 4662..4744,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 4668..4679,\n            sym: \"MyThrowable\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n    ],\n}",
    "Class {\n    span: 4739..4919,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 4745..4759,\n            sym: \"SuperThrowable\",\n        },\n    ),\n    super_class: Some(\n        _,\n    ),\n    body: [\n        _,\n        _,\n    ],\n}"
  ],
  "class_members": [
    "Method(\n    ClassMethod {\n        span: 1407..1485,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 1407..1411,\n                sym: \"fail\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 1483..1614,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 1483..1485,\n                sym: \"f1\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 1612..1743,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 1612..1614,\n                sym: \"f2\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 1741..1834,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 1741..1743,\n                sym: \"f3\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 4686..4737,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 4686..4691,\n                sym: \"throw\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 4786..4846,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 4786..4789,\n                sym: \"err\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 4844..4886,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 4844..4846,\n                sym: \"ok\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)"
  ],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3313..3315,\n        name: Ident {\n            span: 3313..3315,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Array(\n    TsArrayType {\n        span: 3332..3341,\n        elem_type: _,\n    },\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Boolean,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Unknown,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3447..3449,\n        name: Ident {\n            span: 3447..3449,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Void,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3569..3571,\n        name: Ident {\n            span: 3569..3571,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Unknown,\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Unknown,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3775..3778,\n        name: Ident {\n            span: 3775..3778,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3779..3789,\n        name: Ident {\n            span: 3779..3789,\n            sym: \"Component\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 3775..3789,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3802..3805,\n        name: Ident {\n            span: 3802..3805,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Unknown,\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Void,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 3806..3879,\n        members: [\n            TsTypeMember {\n                span: 3810..3832,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3810..3814,\n                            sym: \"name\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3826..3849,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3826..3832,\n                            sym: \"system\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3845..3866,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3845..3849,\n                            sym: \"play\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3861..3878,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3861..3866,\n                            sym: \"pause\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 3802..3879,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4083..4086,\n        name: Ident {\n            span: 4083..4086,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4095..4105,\n        name: Ident {\n            span: 4095..4105,\n            sym: \"Component\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4087..4107,\n        name: Ident {\n            span: 4087..4095,\n            sym: \"Partial\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4117..4120,\n        name: Ident {\n            span: 4117..4120,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4121..4131,\n        name: Ident {\n            span: 4121..4131,\n            sym: \"Component\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 4117..4131,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4108..4132,\n        name: Ident {\n            span: 4108..4117,\n            sym: \"ThisType\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 4083..4132,\n        types: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Never,\n)"
  ]
}
