{
  "programs": [
    "Program {\n    span: 96..692,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 204..222,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 217..245,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 240..250,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 340..375,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 434..467,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 504..572,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 486..577,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 596..666,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 578..676,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 465..676,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 374..686,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 330..688,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "For(\n    ForStmt {\n        span: 297..688,\n        head: Of(\n            ForOfHead {\n                is_await: true,\n                left: Decl(\n                    _,\n                ),\n                right: _,\n            },\n        ),\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 278..692,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 96..181,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 96..174,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 176..257,\n        ident: Ident {\n            span: 192..195,\n            sym: \"gen\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 252..279,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 252..276,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 308..322,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 308..322,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 401..439,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 401..421,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 102..107,\n        sym: \"sleep\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 111..113,\n        sym: \"tm\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 138..145,\n        sym: \"resolve\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 108..174,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 258..261,\n        sym: \"log\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 262..276,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 314..319,\n        sym: \"outer\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 407..412,\n        sym: \"inner\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 413..421,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 130..137,\n        sym: \"Promise\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 149..159,\n        sym: \"setTimeout\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 160..167,\n        sym: \"resolve\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 169..171,\n        sym: \"tm\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 159..173,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 138..173,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 137..174,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 126..174,\n        callee: _,\n        args: [],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 110..174,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 210..211,\n            value: 1.0,\n        },\n    ),\n)",
    "Yield(\n    YieldExpr {\n        span: 204..212,\n        arg: Some(\n            _,\n        ),\n        delegate: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 223..228,\n        sym: \"sleep\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 229..233,\n            value: 1000.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 228..235,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Await(\n    AwaitExpr {\n        span: 217..235,\n        arg: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 246..247,\n            value: 2.0,\n        },\n    ),\n)",
    "Yield(\n    YieldExpr {\n        span: 240..248,\n        arg: Some(\n            _,\n        ),\n        delegate: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 264..271,\n        sym: \"console\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 271..276,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 272..275,\n                sym: \"log\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 323..326,\n        sym: \"gen\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 326..329,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 340..343,\n        sym: \"log\",\n    },\n)",
    "Template(\n    TemplateExpr {\n        span: 344..363,\n        quasis: [\n            StrLit {\n                span: 344..363,\n                value: \"I'm loop ${outer}\",\n            },\n        ],\n        exprs: [],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 343..365,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 415..420,\n        sym: \"outer\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 440..445,\n        sym: \"sleep\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 446..450,\n            value: 2000.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 445..452,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Await(\n    AwaitExpr {\n        span: 434..452,\n        arg: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 469..474,\n        sym: \"inner\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 479..484,\n        sym: \"outer\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 475..485,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 504..507,\n        sym: \"log\",\n    },\n)",
    "Template(\n    TemplateExpr {\n        span: 508..556,\n        quasis: [\n            StrLit {\n                span: 508..556,\n                value: \"I'm loop ${inner} and I know I'm loop ${outer}\",\n            },\n        ],\n        exprs: [],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 507..558,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 596..599,\n        sym: \"log\",\n    },\n)",
    "Template(\n    TemplateExpr {\n        span: 600..650,\n        quasis: [\n            StrLit {\n                span: 600..650,\n                value: \"I'm loop ${inner}, but I think I'm loop ${outer}\",\n            },\n        ],\n        exprs: [],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 599..652,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 381..677,\n        params: [],\n        body: Block(\n            [\n                _,\n                _,\n                _,\n            ],\n        ),\n        is_async: true,\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 374..678,\n        expr: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 677..680,\n        callee: _,\n        args: [],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 285..689,\n        params: [],\n        body: Block(\n            [\n                _,\n            ],\n        ),\n        is_async: true,\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 278..690,\n        expr: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 689..692,\n        callee: _,\n        args: [],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": []
}
