{
  "programs": [
    "Program {\n    span: 17..1050,\n    kind: Script,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1013..1035,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 1030..1048,\n        label: Some(\n            Ident {\n                span: 1036..1041,\n                sym: \"block\",\n            },\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1003..1050,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 996..1050,\n        label: Ident {\n            span: 996..1001,\n            sym: \"block\",\n        },\n        body: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 17..56,\n        ident: Ident {\n            span: 22..31,\n            sym: \"MyPromise\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 32..33,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 57..95,\n        kind: Var,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 57..87,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 96..127,\n        kind: Var,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 96..119,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 128..161,\n        kind: Var,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 128..154,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 156..185,\n        ident: Ident {\n            span: 171..173,\n            sym: \"f0\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 180..224,\n        ident: Ident {\n            span: 195..197,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 219..264,\n        ident: Ident {\n            span: 234..236,\n            sym: \"f3\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 261..294,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 261..294,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 291..339,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 291..339,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 336..387,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 336..387,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 384..413,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 384..409,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 410..454,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 410..450,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 451..497,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 451..493,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 494..522,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 494..518,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 519..548,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 519..544,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 545..591,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 545..587,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 588..636,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 588..631,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 633..734,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 633..727,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 729..929,\n        ident: Ident {\n            span: 735..736,\n            sym: \"C\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 942..967,\n        ident: Ident {\n            span: 957..959,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 923..974,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 930..931,\n                sym: \"M\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 969..1050,\n        ident: Ident {\n            span: 984..987,\n            sym: \"f14\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 61..70,\n        sym: \"MyPromise\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 100..101,\n        sym: \"p\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 132..134,\n        sym: \"mp\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 265..267,\n        sym: \"f4\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 268..294,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 295..297,\n        sym: \"f5\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 298..339,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 340..342,\n        sym: \"f6\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 343..387,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 388..390,\n        sym: \"f7\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 391..409,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 414..416,\n        sym: \"f8\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 417..450,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 455..457,\n        sym: \"f9\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 458..493,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 498..501,\n        sym: \"f10\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 502..518,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 523..526,\n        sym: \"f11\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 527..544,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 549..552,\n        sym: \"f12\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 553..587,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 592..595,\n        sym: \"f13\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 596..631,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 637..638,\n        sym: \"o\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 639..727,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Arrow(\n    ArrowExpr {\n        span: 399..409,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: true,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 425..450,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: true,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 466..493,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: true,\n    },\n)",
    "Ident(\n    Ident {\n        span: 516..517,\n        sym: \"p\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 510..518,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: true,\n    },\n)",
    "Ident(\n    Ident {\n        span: 541..543,\n        sym: \"mp\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 535..544,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: true,\n    },\n)",
    "Ident(\n    Ident {\n        span: 584..586,\n        sym: \"mp\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 561..587,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: true,\n    },\n)",
    "Ident(\n    Ident {\n        span: 629..630,\n        sym: \"p\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 604..631,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: true,\n    },\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 641..727,\n        props: [\n            KeyValueProp {\n                span: 644..659,\n                key: Ident(\n                    Ident {\n                        span: 650..652,\n                        sym: \"m1\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 661..691,\n                key: Ident(\n                    Ident {\n                        span: 667..669,\n                        sym: \"m2\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 693..726,\n                key: Ident(\n                    Ident {\n                        span: 699..701,\n                        sym: \"m3\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1019..1020,\n            value: 1.0,\n        },\n    ),\n)",
    "Await(\n    AwaitExpr {\n        span: 1013..1021,\n        arg: _,\n    },\n)"
  ],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 935..967,\n        decl: _,\n    },\n)"
  ],
  "functions": [
    "Function {\n    span: 270..294,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 300..339,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 345..387,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 644..659,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 661..691,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 693..726,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 740..761,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 756..792,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 787..826,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 820..849,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 843..887,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 881..921,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}"
  ],
  "classes": [
    "Class {\n    span: 729..929,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 735..736,\n            sym: \"C\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "class_members": [
    "Method(\n    ClassMethod {\n        span: 740..761,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 746..748,\n                sym: \"m1\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 756..792,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 762..764,\n                sym: \"m2\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 787..826,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 793..795,\n                sym: \"m3\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 820..849,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 833..835,\n                sym: \"m4\",\n            },\n        ),\n        function: _,\n        is_static: true,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 843..887,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 856..858,\n                sym: \"m5\",\n            },\n        ),\n        function: _,\n        is_static: true,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 881..921,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 894..896,\n                sym: \"m6\",\n            },\n        ),\n        function: _,\n        is_static: true,\n        kind: Method,\n    },\n)"
  ],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 45..47,\n        name: Ident {\n            span: 45..47,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 37..48,\n        name: Ident {\n            span: 37..45,\n            sym: \"Promise\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)"
  ]
}
