{ "type": "Script", "span": { "start": 305, "end": 1470, "ctxt": 0 }, "body": [ { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 314, "end": 317, "ctxt": 0 }, "value": "foo", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 321, "end": 325, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 321, "end": 325, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 322, "end": 325, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 324, "end": 325, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 324, "end": 325, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 327, "end": 341, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 327, "end": 341, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 328, "end": 341, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 330, "end": 341, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 331, "end": 335, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 332, "end": 335, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 334, "end": 335, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 334, "end": 335, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 337, "end": 341, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 340, "end": 341, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 340, "end": 341, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, { "type": "Parameter", "span": { "start": 343, "end": 357, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 343, "end": 357, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 344, "end": 357, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 346, "end": 357, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 347, "end": 351, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 348, "end": 351, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 350, "end": 351, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 350, "end": 351, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 353, "end": 357, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 356, "end": 357, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 356, "end": 357, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } } ], "decorators": [], "span": { "start": 305, "end": 400, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 359, "end": 400, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 365, "end": 384, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 369, "end": 383, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 369, "end": 370, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 370, "end": 383, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 372, "end": 383, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 373, "end": 377, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 374, "end": 377, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 376, "end": 377, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 376, "end": 377, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 379, "end": 383, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 382, "end": 383, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 382, "end": 383, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 389, "end": 398, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 396, "end": 397, "ctxt": 0 }, "value": "r", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 317, "end": 320, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 318, "end": 319, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 318, "end": 319, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "VariableDeclaration", "span": { "start": 402, "end": 459, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 406, "end": 458, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 406, "end": 408, "ctxt": 0 }, "value": "r1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 411, "end": 458, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 411, "end": 414, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 415, "end": 417, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 419, "end": 436, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 420, "end": 429, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 421, "end": 429, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 423, "end": 429, "ctxt": 0 }, "kind": "string" } } } ], "body": { "type": "StringLiteral", "span": { "start": 434, "end": 436, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 438, "end": 457, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 439, "end": 448, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 440, "end": 448, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 442, "end": 448, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 442, "end": 448, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } ], "body": { "type": "NullLiteral", "span": { "start": 453, "end": 457, "ctxt": 0 } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 474, "end": 517, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 478, "end": 516, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 478, "end": 482, "ctxt": 0 }, "value": "r1ii", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 485, "end": 516, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 485, "end": 488, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 489, "end": 491, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 493, "end": 502, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 494, "end": 495, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 500, "end": 502, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 504, "end": 515, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 505, "end": 506, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "NullLiteral", "span": { "start": 511, "end": 515, "ctxt": 0 } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 538, "end": 593, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 542, "end": 592, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 542, "end": 544, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 547, "end": 592, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 547, "end": 550, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 551, "end": 553, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 555, "end": 572, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 556, "end": 565, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 557, "end": 565, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 559, "end": 565, "ctxt": 0 }, "kind": "string" } } } ], "body": { "type": "StringLiteral", "span": { "start": 570, "end": 572, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 574, "end": 591, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 575, "end": 584, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 576, "end": 584, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 578, "end": 584, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 578, "end": 584, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } ], "body": { "type": "StringLiteral", "span": { "start": 589, "end": 591, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 614, "end": 671, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 618, "end": 670, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 618, "end": 620, "ctxt": 0 }, "value": "r3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 623, "end": 670, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 623, "end": 626, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 627, "end": 631, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 633, "end": 650, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 634, "end": 643, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 635, "end": 643, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 637, "end": 643, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 637, "end": 643, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } ], "body": { "type": "StringLiteral", "span": { "start": 648, "end": 650, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 652, "end": 669, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 653, "end": 662, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 654, "end": 662, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 656, "end": 662, "ctxt": 0 }, "kind": "string" } } } ], "body": { "type": "StringLiteral", "span": { "start": 667, "end": 669, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 692, "end": 733, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 696, "end": 732, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 696, "end": 698, "ctxt": 0 }, "value": "r4", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 701, "end": 732, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 701, "end": 704, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 705, "end": 709, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 711, "end": 720, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 712, "end": 713, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 718, "end": 720, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 722, "end": 731, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 723, "end": 724, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 729, "end": 731, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 748, "end": 797, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 752, "end": 796, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 752, "end": 754, "ctxt": 0 }, "value": "r5", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 757, "end": 796, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 757, "end": 760, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NewExpression", "span": { "start": 761, "end": 773, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 765, "end": 771, "ctxt": 0 }, "value": "Object", "optional": false }, "arguments": [], "typeArguments": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 775, "end": 784, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 776, "end": 777, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 782, "end": 784, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 786, "end": 795, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 787, "end": 788, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 793, "end": 795, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "TsEnumDeclaration", "span": { "start": 819, "end": 831, "ctxt": 0 }, "declare": false, "isConst": false, "id": { "type": "Identifier", "span": { "start": 824, "end": 825, "ctxt": 0 }, "value": "E", "optional": false }, "members": [ { "type": "TsEnumMember", "span": { "start": 828, "end": 829, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 828, "end": 829, "ctxt": 0 }, "value": "A", "optional": false }, "init": null } ] }, { "type": "TsEnumDeclaration", "span": { "start": 832, "end": 844, "ctxt": 0 }, "declare": false, "isConst": false, "id": { "type": "Identifier", "span": { "start": 837, "end": 838, "ctxt": 0 }, "value": "F", "optional": false }, "members": [ { "type": "TsEnumMember", "span": { "start": 841, "end": 842, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 841, "end": 842, "ctxt": 0 }, "value": "A", "optional": false }, "init": null } ] }, { "type": "VariableDeclaration", "span": { "start": 846, "end": 899, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 850, "end": 898, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 850, "end": 852, "ctxt": 0 }, "value": "r6", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 855, "end": 898, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 855, "end": 858, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "MemberExpression", "span": { "start": 859, "end": 862, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 859, "end": 860, "ctxt": 0 }, "value": "E", "optional": false }, "property": { "type": "Identifier", "span": { "start": 861, "end": 862, "ctxt": 0 }, "value": "A", "optional": false } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 864, "end": 882, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 865, "end": 874, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 866, "end": 874, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 868, "end": 874, "ctxt": 0 }, "kind": "number" } } } ], "body": { "type": "MemberExpression", "span": { "start": 879, "end": 882, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 879, "end": 880, "ctxt": 0 }, "value": "E", "optional": false }, "property": { "type": "Identifier", "span": { "start": 881, "end": 882, "ctxt": 0 }, "value": "A", "optional": false } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 884, "end": 897, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 885, "end": 889, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 886, "end": 889, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 888, "end": 889, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 888, "end": 889, "ctxt": 0 }, "value": "F", "optional": false }, "typeParams": null } } } ], "body": { "type": "MemberExpression", "span": { "start": 894, "end": 897, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 894, "end": 895, "ctxt": 0 }, "value": "F", "optional": false }, "property": { "type": "Identifier", "span": { "start": 896, "end": 897, "ctxt": 0 }, "value": "A", "optional": false } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 932, "end": 936, "ctxt": 0 }, "value": "foo2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 943, "end": 947, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 943, "end": 947, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 944, "end": 947, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 946, "end": 947, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 946, "end": 947, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 949, "end": 963, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 949, "end": 963, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 950, "end": 963, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 952, "end": 963, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 953, "end": 957, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 954, "end": 957, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 956, "end": 957, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 956, "end": 957, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 959, "end": 963, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 962, "end": 963, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 962, "end": 963, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } }, { "type": "Parameter", "span": { "start": 965, "end": 979, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 965, "end": 979, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 966, "end": 979, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 968, "end": 979, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 969, "end": 973, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 970, "end": 973, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 972, "end": 973, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 972, "end": 973, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 975, "end": 979, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 978, "end": 979, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 978, "end": 979, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } } } ], "decorators": [], "span": { "start": 923, "end": 1022, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 981, "end": 1022, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 987, "end": 1006, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 991, "end": 1005, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 991, "end": 992, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 992, "end": 1005, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 994, "end": 1005, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 995, "end": 999, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 996, "end": 999, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 998, "end": 999, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 998, "end": 999, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1001, "end": 1005, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1004, "end": 1005, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1004, "end": 1005, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 1011, "end": 1020, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 1018, "end": 1019, "ctxt": 0 }, "value": "r", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 936, "end": 942, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 937, "end": 938, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 937, "end": 938, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 940, "end": 941, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 940, "end": 941, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "VariableDeclaration", "span": { "start": 1024, "end": 1066, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1028, "end": 1065, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1028, "end": 1030, "ctxt": 0 }, "value": "r8", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1033, "end": 1065, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1033, "end": 1037, "ctxt": 0 }, "value": "foo2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 1038, "end": 1040, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1042, "end": 1051, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1043, "end": 1044, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 1049, "end": 1051, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1053, "end": 1064, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1054, "end": 1055, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "NullLiteral", "span": { "start": 1060, "end": 1064, "ctxt": 0 } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1087, "end": 1129, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1091, "end": 1128, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1091, "end": 1093, "ctxt": 0 }, "value": "r9", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1096, "end": 1128, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1096, "end": 1100, "ctxt": 0 }, "value": "foo2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 1101, "end": 1105, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1107, "end": 1116, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1108, "end": 1109, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 1114, "end": 1116, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1118, "end": 1127, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1119, "end": 1120, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 1125, "end": 1127, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1144, "end": 1203, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1148, "end": 1202, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1148, "end": 1151, "ctxt": 0 }, "value": "r10", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1154, "end": 1202, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1154, "end": 1158, "ctxt": 0 }, "value": "foo2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 1159, "end": 1163, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1165, "end": 1182, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1166, "end": 1175, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1167, "end": 1175, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1169, "end": 1175, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1169, "end": 1175, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } ], "body": { "type": "StringLiteral", "span": { "start": 1180, "end": 1182, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1184, "end": 1201, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1185, "end": 1194, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1186, "end": 1194, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1188, "end": 1194, "ctxt": 0 }, "kind": "string" } } } ], "body": { "type": "StringLiteral", "span": { "start": 1199, "end": 1201, "ctxt": 0 }, "value": "", "hasEscape": false, "kind": { "type": "normal", "containsQuote": true } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1225, "end": 1255, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1229, "end": 1254, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1229, "end": 1230, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1230, "end": 1254, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1232, "end": 1254, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1233, "end": 1242, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1234, "end": 1242, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1236, "end": 1242, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1244, "end": 1254, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1247, "end": 1254, "ctxt": 0 }, "kind": "boolean" } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1256, "end": 1357, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1260, "end": 1356, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1260, "end": 1263, "ctxt": 0 }, "value": "r11", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1266, "end": 1356, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1266, "end": 1270, "ctxt": 0 }, "value": "foo2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1271, "end": 1272, "ctxt": 0 }, "value": "x", "optional": false } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1274, "end": 1321, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1275, "end": 1300, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1277, "end": 1300, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1279, "end": 1300, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1280, "end": 1289, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1281, "end": 1289, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1283, "end": 1289, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1291, "end": 1300, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1294, "end": 1300, "ctxt": 0 }, "kind": "string" } } } } } ], "body": { "type": "ArrowFunctionExpression", "span": { "start": 1305, "end": 1321, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1306, "end": 1315, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1307, "end": 1315, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1309, "end": 1315, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1309, "end": 1315, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } ], "body": { "type": "NumericLiteral", "span": { "start": 1320, "end": 1321, "ctxt": 0 }, "value": 1.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1323, "end": 1355, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1324, "end": 1349, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1326, "end": 1349, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1328, "end": 1349, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1329, "end": 1338, "ctxt": 0 }, "value": "z", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1330, "end": 1338, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1332, "end": 1338, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1340, "end": 1349, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1343, "end": 1349, "ctxt": 0 }, "kind": "string" } } } } } ], "body": { "type": "NumericLiteral", "span": { "start": 1354, "end": 1355, "ctxt": 0 }, "value": 2.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1367, "end": 1470, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1371, "end": 1469, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1371, "end": 1374, "ctxt": 0 }, "value": "r12", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1377, "end": 1469, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1377, "end": 1381, "ctxt": 0 }, "value": "foo2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1382, "end": 1383, "ctxt": 0 }, "value": "x", "optional": false } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1385, "end": 1433, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1386, "end": 1412, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1388, "end": 1412, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1390, "end": 1412, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1391, "end": 1400, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1392, "end": 1400, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1394, "end": 1400, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1402, "end": 1412, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1405, "end": 1412, "ctxt": 0 }, "kind": "boolean" } } } } } ], "body": { "type": "ArrowFunctionExpression", "span": { "start": 1417, "end": 1433, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1418, "end": 1427, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1419, "end": 1427, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1421, "end": 1427, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1421, "end": 1427, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } ], "body": { "type": "NumericLiteral", "span": { "start": 1432, "end": 1433, "ctxt": 0 }, "value": 1.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1435, "end": 1468, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1436, "end": 1462, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1438, "end": 1462, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1440, "end": 1462, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1441, "end": 1450, "ctxt": 0 }, "value": "z", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1442, "end": 1450, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1444, "end": 1450, "ctxt": 0 }, "kind": "string" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1452, "end": 1462, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1455, "end": 1462, "ctxt": 0 }, "kind": "boolean" } } } } } ], "body": { "type": "NumericLiteral", "span": { "start": 1467, "end": 1468, "ctxt": 0 }, "value": 2.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] } ], "interpreter": null }