{ "type": "Script", "span": { "start": 305, "end": 1524, "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": 335, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 321, "end": 335, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 322, "end": 335, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 324, "end": 335, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 325, "end": 329, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 326, "end": 329, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 328, "end": 329, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 328, "end": 329, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 331, "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 } } } } } }, { "type": "Parameter", "span": { "start": 337, "end": 351, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 337, "end": 351, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 338, "end": 351, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 340, "end": 351, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 341, "end": 345, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 342, "end": 345, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 344, "end": 345, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 344, "end": 345, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 347, "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 } } } } } } ], "decorators": [], "span": { "start": 305, "end": 394, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 353, "end": 394, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 359, "end": 378, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 363, "end": 377, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 363, "end": 364, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 364, "end": 377, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 366, "end": 377, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 367, "end": 371, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 368, "end": 371, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 370, "end": 371, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 370, "end": 371, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 373, "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 } } } } }, "init": null, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 383, "end": 392, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 390, "end": 391, "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": 458, "end": 493, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 462, "end": 492, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 462, "end": 465, "ctxt": 0 }, "value": "r1b", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 468, "end": 492, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 468, "end": 471, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 472, "end": 480, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 473, "end": 474, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "NumericLiteral", "span": { "start": 479, "end": 480, "ctxt": 0 }, "value": 1.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 482, "end": 491, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 483, "end": 484, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } ], "body": { "type": "StringLiteral", "span": { "start": 489, "end": 491, "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": 506, "end": 559, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 510, "end": 558, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 510, "end": 512, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 515, "end": 558, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 515, "end": 518, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 519, "end": 538, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 520, "end": 529, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 521, "end": 529, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 523, "end": 529, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 523, "end": 529, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } ], "body": { "type": "NullLiteral", "span": { "start": 534, "end": 538, "ctxt": 0 } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 540, "end": 557, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 541, "end": 550, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 542, "end": 550, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 544, "end": 550, "ctxt": 0 }, "kind": "string" } } } ], "body": { "type": "StringLiteral", "span": { "start": 555, "end": 557, "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": 580, "end": 632, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 584, "end": 631, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 584, "end": 586, "ctxt": 0 }, "value": "r3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 589, "end": 631, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 589, "end": 592, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 593, "end": 609, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 594, "end": 603, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 595, "end": 603, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 597, "end": 603, "ctxt": 0 }, "kind": "number" } } } ], "body": { "type": "NumericLiteral", "span": { "start": 608, "end": 609, "ctxt": 0 }, "value": 1.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 611, "end": 630, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 612, "end": 621, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 613, "end": 621, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 615, "end": 621, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 615, "end": 621, "ctxt": 0 }, "value": "Object", "optional": false }, "typeParams": null } } } ], "body": { "type": "NullLiteral", "span": { "start": 626, "end": 630, "ctxt": 0 } }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 653, "end": 704, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 657, "end": 703, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 657, "end": 661, "ctxt": 0 }, "value": "r3ii", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 664, "end": 703, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 664, "end": 667, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 668, "end": 684, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 669, "end": 678, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 670, "end": 678, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 672, "end": 678, "ctxt": 0 }, "kind": "number" } } } ], "body": { "type": "NumericLiteral", "span": { "start": 683, "end": 684, "ctxt": 0 }, "value": 1.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 686, "end": 702, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 687, "end": 696, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 688, "end": 696, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 690, "end": 696, "ctxt": 0 }, "kind": "number" } } } ], "body": { "type": "NumericLiteral", "span": { "start": 701, "end": 702, "ctxt": 0 }, "value": 1.0 }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 726, "end": 760, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 730, "end": 759, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 730, "end": 731, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 731, "end": 759, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 733, "end": 759, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 735, "end": 745, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 735, "end": 736, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 736, "end": 744, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 738, "end": 744, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 746, "end": 757, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 746, "end": 747, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 748, "end": 756, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 750, "end": 756, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 761, "end": 795, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 765, "end": 794, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 765, "end": 766, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 766, "end": 794, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 768, "end": 794, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 770, "end": 780, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 770, "end": 771, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 771, "end": 779, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 773, "end": 779, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 781, "end": 792, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 781, "end": 782, "ctxt": 0 }, "value": "z", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 783, "end": 791, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 785, "end": 791, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 797, "end": 850, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 801, "end": 849, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 801, "end": 803, "ctxt": 0 }, "value": "r4", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 806, "end": 849, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 806, "end": 809, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 810, "end": 828, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 811, "end": 822, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 812, "end": 822, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 814, "end": 822, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 821, "end": 822, "ctxt": 0 }, "value": "a", "optional": false }, "typeArguments": null } } } ], "body": { "type": "Identifier", "span": { "start": 827, "end": 828, "ctxt": 0 }, "value": "a", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 830, "end": 848, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 831, "end": 842, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 832, "end": 842, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 834, "end": 842, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 841, "end": 842, "ctxt": 0 }, "value": "b", "optional": false }, "typeArguments": null } } } ], "body": { "type": "Identifier", "span": { "start": 847, "end": 848, "ctxt": 0 }, "value": "b", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 875, "end": 928, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 879, "end": 927, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 879, "end": 881, "ctxt": 0 }, "value": "r5", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 884, "end": 927, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 884, "end": 887, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 888, "end": 906, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 889, "end": 900, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 890, "end": 900, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 892, "end": 900, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 899, "end": 900, "ctxt": 0 }, "value": "b", "optional": false }, "typeArguments": null } } } ], "body": { "type": "Identifier", "span": { "start": 905, "end": 906, "ctxt": 0 }, "value": "b", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 908, "end": 926, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 909, "end": 920, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 910, "end": 920, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 912, "end": 920, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 919, "end": 920, "ctxt": 0 }, "value": "a", "optional": false }, "typeArguments": null } } } ], "body": { "type": "Identifier", "span": { "start": 925, "end": 926, "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": 963, "end": 968, "ctxt": 0 }, "value": "other", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 972, "end": 976, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 972, "end": 976, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 973, "end": 976, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 975, "end": 976, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 975, "end": 976, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 954, "end": 1086, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 978, "end": 1086, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 984, "end": 1023, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 988, "end": 1022, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 988, "end": 990, "ctxt": 0 }, "value": "r6", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 993, "end": 1022, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 993, "end": 996, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 997, "end": 1008, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 998, "end": 1002, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 999, "end": 1002, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1001, "end": 1002, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1001, "end": 1002, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "Identifier", "span": { "start": 1007, "end": 1008, "ctxt": 0 }, "value": "a", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1010, "end": 1021, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1011, "end": 1015, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1012, "end": 1015, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1014, "end": 1015, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1014, "end": 1015, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "Identifier", "span": { "start": 1020, "end": 1021, "ctxt": 0 }, "value": "b", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1038, "end": 1072, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1042, "end": 1071, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1042, "end": 1045, "ctxt": 0 }, "value": "r6b", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1048, "end": 1071, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1048, "end": 1051, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1052, "end": 1060, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1053, "end": 1054, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null } ], "body": { "type": "Identifier", "span": { "start": 1059, "end": 1060, "ctxt": 0 }, "value": "a", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1062, "end": 1070, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1063, "end": 1064, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null } ], "body": { "type": "Identifier", "span": { "start": 1069, "end": 1070, "ctxt": 0 }, "value": "b", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 968, "end": 971, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 969, "end": 970, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 969, "end": 970, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1097, "end": 1103, "ctxt": 0 }, "value": "other2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1120, "end": 1124, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1120, "end": 1124, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1121, "end": 1124, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1123, "end": 1124, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1123, "end": 1124, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 1088, "end": 1306, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1126, "end": 1306, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 1132, "end": 1171, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1136, "end": 1170, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1136, "end": 1138, "ctxt": 0 }, "value": "r7", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1141, "end": 1170, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1141, "end": 1144, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1145, "end": 1156, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1146, "end": 1150, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1147, "end": 1150, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1149, "end": 1150, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1149, "end": 1150, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "Identifier", "span": { "start": 1155, "end": 1156, "ctxt": 0 }, "value": "a", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1158, "end": 1169, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1159, "end": 1163, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1160, "end": 1163, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1162, "end": 1163, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1162, "end": 1163, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "body": { "type": "Identifier", "span": { "start": 1168, "end": 1169, "ctxt": 0 }, "value": "b", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1186, "end": 1220, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1190, "end": 1219, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1190, "end": 1193, "ctxt": 0 }, "value": "r7b", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1196, "end": 1219, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1196, "end": 1199, "ctxt": 0 }, "value": "foo", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1200, "end": 1208, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1201, "end": 1202, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null } ], "body": { "type": "Identifier", "span": { "start": 1207, "end": 1208, "ctxt": 0 }, "value": "a", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1210, "end": 1218, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1211, "end": 1212, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null } ], "body": { "type": "Identifier", "span": { "start": 1217, "end": 1218, "ctxt": 0 }, "value": "b", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1237, "end": 1255, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1241, "end": 1254, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1241, "end": 1243, "ctxt": 0 }, "value": "r8", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1246, "end": 1254, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1246, "end": 1248, "ctxt": 0 }, "value": "r7", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 1249, "end": 1253, "ctxt": 0 } } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1103, "end": 1119, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1104, "end": 1118, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1104, "end": 1105, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1114, "end": 1118, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1114, "end": 1118, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1318, "end": 1322, "ctxt": 0 }, "value": "foo2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1339, "end": 1353, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1339, "end": 1353, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1340, "end": 1353, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1342, "end": 1353, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1343, "end": 1347, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1344, "end": 1347, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1346, "end": 1347, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1346, "end": 1347, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1349, "end": 1353, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1352, "end": 1353, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1352, "end": 1353, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } }, { "type": "Parameter", "span": { "start": 1355, "end": 1369, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1355, "end": 1369, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1356, "end": 1369, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1358, "end": 1369, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1359, "end": 1363, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1360, "end": 1363, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1362, "end": 1363, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1362, "end": 1363, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1365, "end": 1369, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1368, "end": 1369, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1368, "end": 1369, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } } ], "decorators": [], "span": { "start": 1309, "end": 1412, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1371, "end": 1412, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 1377, "end": 1396, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1381, "end": 1395, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1381, "end": 1382, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1382, "end": 1395, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1384, "end": 1395, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1385, "end": 1389, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1386, "end": 1389, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1388, "end": 1389, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1388, "end": 1389, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1391, "end": 1395, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1394, "end": 1395, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1394, "end": 1395, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } }, "init": null, "definite": false } ] }, { "type": "ReturnStatement", "span": { "start": 1401, "end": 1410, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 1408, "end": 1409, "ctxt": 0 }, "value": "r", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1322, "end": 1338, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1323, "end": 1337, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1323, "end": 1324, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1333, "end": 1337, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1333, "end": 1337, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1423, "end": 1429, "ctxt": 0 }, "value": "other3", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1448, "end": 1452, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1448, "end": 1452, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1449, "end": 1452, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1451, "end": 1452, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1451, "end": 1452, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 1414, "end": 1524, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1454, "end": 1524, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 1460, "end": 1506, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1464, "end": 1505, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1464, "end": 1466, "ctxt": 0 }, "value": "r8", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 1469, "end": 1505, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1469, "end": 1473, "ctxt": 0 }, "value": "foo2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1474, "end": 1488, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1475, "end": 1482, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1476, "end": 1482, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1478, "end": 1482, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1478, "end": 1482, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } } } ], "body": { "type": "Identifier", "span": { "start": 1487, "end": 1488, "ctxt": 0 }, "value": "a", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } }, { "spread": null, "expression": { "type": "ArrowFunctionExpression", "span": { "start": 1490, "end": 1504, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1491, "end": 1498, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1492, "end": 1498, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1494, "end": 1498, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1494, "end": 1498, "ctxt": 0 }, "value": "Date", "optional": false }, "typeParams": null } } } ], "body": { "type": "Identifier", "span": { "start": 1503, "end": 1504, "ctxt": 0 }, "value": "b", "optional": false }, "async": false, "generator": false, "typeParameters": null, "returnType": null } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1429, "end": 1447, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1430, "end": 1446, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1430, "end": 1431, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": { "type": "TsTypeReference", "span": { "start": 1440, "end": 1446, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1440, "end": 1446, "ctxt": 0 }, "value": "RegExp", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null } ], "interpreter": null }