{
  "programs": [
    "Program {\n    span: 514..1032,\n    kind: Script,\n    body: [\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Return(\n    ReturnStmt {\n        span: 570..579,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 989..1005,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 983..1008,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 741..1008,\n        test: _,\n        cons: _,\n        alt: None,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1009..1032,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 538..587,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 538..581,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 584..602,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 584..596,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 599..625,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 599..619,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 622..743,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 622..738,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 514..1020,\n        ident: Ident {\n            span: 523..531,\n            sym: \"testcase\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 542..545,\n        sym: \"obj\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 546..581,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 588..591,\n        sym: \"one\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 592..596,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 603..609,\n        sym: \"_float\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 610..619,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 626..627,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 628..738,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Num(\n        NumberLit {\n            span: 577..578,\n            value: 0.0,\n        },\n    ),\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 548..581,\n        props: [\n            KeyValueProp {\n                span: 549..580,\n                key: Ident(\n                    Ident {\n                        span: 549..557,\n                        sym: \"toString\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 594..595,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 614..615,\n            value: 4.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 616..617,\n            value: 3.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 615..618,\n        op: Div,\n        left: _,\n        right: _,\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 613..619,\n        expr: _,\n    },\n)",
    "Unary(\n    UnaryExpr {\n        span: 612..619,\n        op: Minus,\n        arg: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 634..639,\n        sym: \"Array\",\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 640..645,\n            value: false,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 646..655,\n        sym: \"undefined\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 656..660,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 661..664,\n            value: \"0\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 665..668,\n        sym: \"obj\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 670..685,\n            value: 1.3333333333333,\n        },\n    ),\n)",
    "Unary(\n    UnaryExpr {\n        span: 669..686,\n        op: Minus,\n        arg: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 687..692,\n            value: \"str\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 694..695,\n            value: 0.0,\n        },\n    ),\n)",
    "Unary(\n    UnaryExpr {\n        span: 693..696,\n        op: Minus,\n        arg: _,\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 696..700,\n            value: true,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 702..703,\n            value: 0.0,\n        },\n    ),\n)",
    "Unary(\n    UnaryExpr {\n        span: 701..704,\n        op: Plus,\n        arg: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 705..708,\n        sym: \"one\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 710..711,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 712..713,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 715..720,\n            value: false,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 722..728,\n        sym: \"_float\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 732..733,\n            value: 4.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 734..735,\n            value: 3.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 733..736,\n        op: Div,\n        left: _,\n        right: _,\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 731..737,\n        expr: _,\n    },\n)",
    "Unary(\n    UnaryExpr {\n        span: 730..737,\n        op: Minus,\n        arg: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 639..738,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 630..738,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 745..746,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 746..755,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 747..754,\n                sym: \"indexOf\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 757..758,\n            value: 4.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 759..760,\n            value: 3.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 758..761,\n        op: Div,\n        left: _,\n        right: _,\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 756..762,\n        expr: _,\n    },\n)",
    "Unary(\n    UnaryExpr {\n        span: 755..762,\n        op: Minus,\n        arg: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 754..766,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 767..769,\n            value: 14.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 763..772,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 809..810,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 810..819,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 811..818,\n                sym: \"indexOf\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 819..820,\n            value: 0.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 818..825,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 826..827,\n            value: 7.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 822..835,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 770..835,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 869..870,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 870..879,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 871..878,\n                sym: \"indexOf\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 880..881,\n            value: 0.0,\n        },\n    ),\n)",
    "Unary(\n    UnaryExpr {\n        span: 879..882,\n        op: Minus,\n        arg: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 878..886,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 887..888,\n            value: 7.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 883..896,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 833..896,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 929..930,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 930..939,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 931..938,\n                sym: \"indexOf\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 939..940,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 938..945,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 946..948,\n            value: 10.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 942..950,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 894..950,\n        op: LogicalAnd,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 996..1000,\n            value: true,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1009..1020,\n        sym: \"runTestCase\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1021..1029,\n        sym: \"testcase\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1020..1031,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 558..580,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": []
}
