{ "type": "Script", "span": { "start": 41, "end": 9010, "ctxt": 0 }, "body": [ { "type": "TsTypeAliasDeclaration", "span": { "start": 41, "end": 64, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 46, "end": 49, "ctxt": 0 }, "value": "T01", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 52, "end": 63, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 52, "end": 54, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 57, "end": 63, "ctxt": 0 }, "kind": "string" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 81, "end": 101, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 86, "end": 89, "ctxt": 0 }, "value": "T02", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 92, "end": 100, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 92, "end": 94, "ctxt": 0 }, "members": [] }, { "type": "TsLiteralType", "span": { "start": 97, "end": 100, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 97, "end": 100, "ctxt": 0 }, "value": "a", "raw": "'a'" } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 110, "end": 133, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 115, "end": 118, "ctxt": 0 }, "value": "T03", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 121, "end": 132, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 121, "end": 123, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 126, "end": 132, "ctxt": 0 }, "kind": "object" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 145, "end": 175, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 150, "end": 153, "ctxt": 0 }, "value": "T04", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 156, "end": 174, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 156, "end": 158, "ctxt": 0 }, "members": [] }, { "type": "TsTypeLiteral", "span": { "start": 161, "end": 174, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 163, "end": 172, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 163, "end": 164, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 164, "end": 172, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 166, "end": 172, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 194, "end": 215, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 199, "end": 202, "ctxt": 0 }, "value": "T05", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 205, "end": 214, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 205, "end": 207, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 210, "end": 214, "ctxt": 0 }, "kind": "null" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 226, "end": 252, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 231, "end": 234, "ctxt": 0 }, "value": "T06", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 237, "end": 251, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 237, "end": 239, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 242, "end": 251, "ctxt": 0 }, "kind": "undefined" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 263, "end": 291, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 268, "end": 271, "ctxt": 0 }, "value": "T07", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 274, "end": 290, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 274, "end": 283, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsKeywordType", "span": { "start": 286, "end": 290, "ctxt": 0 }, "kind": "void" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 307, "end": 330, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 312, "end": 315, "ctxt": 0 }, "value": "T10", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 318, "end": 329, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 318, "end": 324, "ctxt": 0 }, "kind": "string" }, { "type": "TsTypeLiteral", "span": { "start": 327, "end": 329, "ctxt": 0 }, "members": [] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 355, "end": 378, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 360, "end": 363, "ctxt": 0 }, "value": "T11", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 366, "end": 377, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 366, "end": 372, "ctxt": 0 }, "kind": "number" }, { "type": "TsTypeLiteral", "span": { "start": 375, "end": 377, "ctxt": 0 }, "members": [] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 403, "end": 426, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 408, "end": 411, "ctxt": 0 }, "value": "T12", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 414, "end": 425, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 414, "end": 420, "ctxt": 0 }, "kind": "bigint" }, { "type": "TsTypeLiteral", "span": { "start": 423, "end": 425, "ctxt": 0 }, "members": [] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 452, "end": 471, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 457, "end": 465, "ctxt": 0 }, "value": "ThisNode", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 468, "end": 470, "ctxt": 0 }, "members": [] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 472, "end": 491, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 477, "end": 485, "ctxt": 0 }, "value": "ThatNode", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 488, "end": 490, "ctxt": 0 }, "members": [] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 492, "end": 534, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 497, "end": 511, "ctxt": 0 }, "value": "ThisOrThatNode", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 514, "end": 533, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 514, "end": 522, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 514, "end": 522, "ctxt": 0 }, "value": "ThisNode", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 525, "end": 533, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 525, "end": 533, "ctxt": 0 }, "value": "ThatNode", "optional": false }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 545, "end": 548, "ctxt": 0 }, "value": "f01", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 549, "end": 559, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 549, "end": 559, "ctxt": 0 }, "value": "u", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 550, "end": 559, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 552, "end": 559, "ctxt": 0 }, "kind": "unknown" } } } } ], "decorators": [], "span": { "start": 536, "end": 739, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 561, "end": 739, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 567, "end": 582, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 571, "end": 581, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 571, "end": 573, "ctxt": 0 }, "value": "x1", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 573, "end": 577, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 575, "end": 577, "ctxt": 0 }, "members": [] } } }, "init": { "type": "Identifier", "span": { "start": 580, "end": 581, "ctxt": 0 }, "value": "u", "optional": false }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 597, "end": 631, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 601, "end": 630, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 601, "end": 603, "ctxt": 0 }, "value": "x2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 603, "end": 626, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 605, "end": 626, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 605, "end": 607, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 610, "end": 614, "ctxt": 0 }, "kind": "null" }, { "type": "TsKeywordType", "span": { "start": 617, "end": 626, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": { "type": "Identifier", "span": { "start": 629, "end": 630, "ctxt": 0 }, "value": "u", "optional": false }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 636, "end": 686, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 640, "end": 685, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 640, "end": 642, "ctxt": 0 }, "value": "x3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 642, "end": 681, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 644, "end": 681, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 644, "end": 646, "ctxt": 0 }, "members": [] }, { "type": "TsTypeLiteral", "span": { "start": 649, "end": 662, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 651, "end": 660, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 651, "end": 652, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 652, "end": 660, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 654, "end": 660, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 665, "end": 669, "ctxt": 0 }, "kind": "null" }, { "type": "TsKeywordType", "span": { "start": 672, "end": 681, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": { "type": "Identifier", "span": { "start": 684, "end": 685, "ctxt": 0 }, "value": "u", "optional": false }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 691, "end": 737, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 695, "end": 736, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 695, "end": 697, "ctxt": 0 }, "value": "x4", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 697, "end": 732, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 699, "end": 732, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 699, "end": 713, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 699, "end": 713, "ctxt": 0 }, "value": "ThisOrThatNode", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 716, "end": 720, "ctxt": 0 }, "kind": "null" }, { "type": "TsKeywordType", "span": { "start": 723, "end": 732, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": { "type": "Identifier", "span": { "start": 735, "end": 736, "ctxt": 0 }, "value": "u", "optional": false }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 750, "end": 753, "ctxt": 0 }, "value": "f10", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 754, "end": 764, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 754, "end": 764, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 755, "end": 764, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 757, "end": 764, "ctxt": 0 }, "kind": "unknown" } } } } ], "decorators": [], "span": { "start": 741, "end": 924, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 766, "end": 924, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 772, "end": 844, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 776, "end": 777, "ctxt": 0 }, "value": "x", "optional": false }, "consequent": { "type": "BlockStatement", "span": { "start": 779, "end": 804, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 789, "end": 791, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 789, "end": 790, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 814, "end": 844, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 824, "end": 826, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 824, "end": 825, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 849, "end": 922, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 853, "end": 855, "ctxt": 0 }, "operator": "!", "argument": { "type": "Identifier", "span": { "start": 854, "end": 855, "ctxt": 0 }, "value": "x", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 857, "end": 887, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 867, "end": 869, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 867, "end": 868, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 897, "end": 922, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 907, "end": 909, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 907, "end": 908, "ctxt": 0 }, "value": "x", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 935, "end": 938, "ctxt": 0 }, "value": "f11", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 942, "end": 946, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 942, "end": 946, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 943, "end": 946, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 945, "end": 946, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 945, "end": 946, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 926, "end": 1102, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 948, "end": 1102, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 954, "end": 1024, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 958, "end": 959, "ctxt": 0 }, "value": "x", "optional": false }, "consequent": { "type": "BlockStatement", "span": { "start": 961, "end": 990, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 971, "end": 973, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 971, "end": 972, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1000, "end": 1024, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1010, "end": 1012, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1010, "end": 1011, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 1029, "end": 1100, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 1033, "end": 1035, "ctxt": 0 }, "operator": "!", "argument": { "type": "Identifier", "span": { "start": 1034, "end": 1035, "ctxt": 0 }, "value": "x", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 1037, "end": 1061, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1047, "end": 1049, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1047, "end": 1048, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1071, "end": 1100, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1081, "end": 1083, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1081, "end": 1082, "ctxt": 0 }, "value": "x", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 938, "end": 941, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 939, "end": 940, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 939, "end": 940, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1113, "end": 1116, "ctxt": 0 }, "value": "f12", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1131, "end": 1135, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1131, "end": 1135, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1132, "end": 1135, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1134, "end": 1135, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1134, "end": 1135, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 1104, "end": 1210, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1137, "end": 1210, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 1143, "end": 1208, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 1147, "end": 1148, "ctxt": 0 }, "value": "x", "optional": false }, "consequent": { "type": "BlockStatement", "span": { "start": 1150, "end": 1174, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1160, "end": 1162, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1160, "end": 1161, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1184, "end": 1208, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1194, "end": 1196, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1194, "end": 1195, "ctxt": 0 }, "value": "x", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1116, "end": 1130, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1117, "end": 1129, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1117, "end": 1118, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeLiteral", "span": { "start": 1127, "end": 1129, "ctxt": 0 }, "members": [] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1221, "end": 1224, "ctxt": 0 }, "value": "f20", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1225, "end": 1235, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1225, "end": 1235, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1226, "end": 1235, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1228, "end": 1235, "ctxt": 0 }, "kind": "unknown" } } } } ], "decorators": [], "span": { "start": 1212, "end": 1742, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1237, "end": 1742, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 1243, "end": 1338, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 1247, "end": 1262, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 1247, "end": 1248, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 1253, "end": 1262, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 1264, "end": 1296, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1274, "end": 1276, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1274, "end": 1275, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1306, "end": 1338, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1316, "end": 1318, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1316, "end": 1317, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 1343, "end": 1433, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 1347, "end": 1357, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 1347, "end": 1348, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 1353, "end": 1357, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 1359, "end": 1396, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1369, "end": 1371, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1369, "end": 1370, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1406, "end": 1433, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1416, "end": 1418, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1416, "end": 1417, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 1438, "end": 1547, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 1442, "end": 1471, "ctxt": 0 }, "operator": "&&", "left": { "type": "BinaryExpression", "span": { "start": 1442, "end": 1457, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 1442, "end": 1443, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 1448, "end": 1457, "ctxt": 0 }, "value": "undefined", "optional": false } }, "right": { "type": "BinaryExpression", "span": { "start": 1461, "end": 1471, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 1461, "end": 1462, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 1467, "end": 1471, "ctxt": 0 } } } }, "consequent": { "type": "BlockStatement", "span": { "start": 1473, "end": 1498, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1483, "end": 1485, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1483, "end": 1484, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1508, "end": 1547, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1518, "end": 1520, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1518, "end": 1519, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 1552, "end": 1646, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 1556, "end": 1570, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 1556, "end": 1557, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 1561, "end": 1570, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 1572, "end": 1597, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1582, "end": 1584, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1582, "end": 1583, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1607, "end": 1646, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1617, "end": 1619, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1617, "end": 1618, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 1651, "end": 1740, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 1655, "end": 1664, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 1655, "end": 1656, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 1660, "end": 1664, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 1666, "end": 1691, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1676, "end": 1678, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1676, "end": 1677, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1701, "end": 1740, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1711, "end": 1713, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1711, "end": 1712, "ctxt": 0 }, "value": "x", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1753, "end": 1756, "ctxt": 0 }, "value": "f21", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 1760, "end": 1764, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1760, "end": 1764, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1761, "end": 1764, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1763, "end": 1764, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1763, "end": 1764, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 1744, "end": 2239, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1766, "end": 2239, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 1772, "end": 1865, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 1776, "end": 1791, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 1776, "end": 1777, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 1782, "end": 1791, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 1793, "end": 1831, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1803, "end": 1805, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1803, "end": 1804, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1841, "end": 1865, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1851, "end": 1853, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1851, "end": 1852, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 1870, "end": 1963, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 1874, "end": 1884, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 1874, "end": 1875, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 1880, "end": 1884, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 1886, "end": 1929, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1896, "end": 1898, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1896, "end": 1897, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1939, "end": 1963, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1949, "end": 1951, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1949, "end": 1950, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 1968, "end": 2066, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 1972, "end": 2001, "ctxt": 0 }, "operator": "&&", "left": { "type": "BinaryExpression", "span": { "start": 1972, "end": 1987, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 1972, "end": 1973, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 1978, "end": 1987, "ctxt": 0 }, "value": "undefined", "optional": false } }, "right": { "type": "BinaryExpression", "span": { "start": 1991, "end": 2001, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 1991, "end": 1992, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 1997, "end": 2001, "ctxt": 0 } } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2003, "end": 2032, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2013, "end": 2015, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2013, "end": 2014, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 2042, "end": 2066, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2052, "end": 2054, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2052, "end": 2053, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 2071, "end": 2154, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2075, "end": 2089, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 2075, "end": 2076, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2080, "end": 2089, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2091, "end": 2120, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2101, "end": 2103, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2101, "end": 2102, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 2130, "end": 2154, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2140, "end": 2142, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2140, "end": 2141, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 2159, "end": 2237, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2163, "end": 2172, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 2163, "end": 2164, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 2168, "end": 2172, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2174, "end": 2203, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2184, "end": 2186, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2184, "end": 2185, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 2213, "end": 2237, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2223, "end": 2225, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2223, "end": 2224, "ctxt": 0 }, "value": "x", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 1756, "end": 1759, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1757, "end": 1758, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1757, "end": 1758, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2250, "end": 2253, "ctxt": 0 }, "value": "f22", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2280, "end": 2284, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2280, "end": 2284, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2281, "end": 2284, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 2283, "end": 2284, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2283, "end": 2284, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 2241, "end": 2731, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2286, "end": 2731, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 2292, "end": 2376, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2296, "end": 2311, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 2296, "end": 2297, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2302, "end": 2311, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2313, "end": 2342, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2323, "end": 2325, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2323, "end": 2324, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 2352, "end": 2376, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2362, "end": 2364, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2362, "end": 2363, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 2381, "end": 2455, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2385, "end": 2395, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 2385, "end": 2386, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 2391, "end": 2395, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2397, "end": 2421, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2407, "end": 2409, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2407, "end": 2408, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 2431, "end": 2455, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2441, "end": 2443, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2441, "end": 2442, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 2460, "end": 2558, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2464, "end": 2493, "ctxt": 0 }, "operator": "&&", "left": { "type": "BinaryExpression", "span": { "start": 2464, "end": 2479, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 2464, "end": 2465, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2470, "end": 2479, "ctxt": 0 }, "value": "undefined", "optional": false } }, "right": { "type": "BinaryExpression", "span": { "start": 2483, "end": 2493, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 2483, "end": 2484, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 2489, "end": 2493, "ctxt": 0 } } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2495, "end": 2524, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2505, "end": 2507, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2505, "end": 2506, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 2534, "end": 2558, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2544, "end": 2546, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2544, "end": 2545, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 2563, "end": 2646, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2567, "end": 2581, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 2567, "end": 2568, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2572, "end": 2581, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2583, "end": 2612, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2593, "end": 2595, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2593, "end": 2594, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 2622, "end": 2646, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2632, "end": 2634, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2632, "end": 2633, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 2651, "end": 2729, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2655, "end": 2664, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 2655, "end": 2656, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 2660, "end": 2664, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2666, "end": 2695, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2676, "end": 2678, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2676, "end": 2677, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 2705, "end": 2729, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2715, "end": 2717, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2715, "end": 2716, "ctxt": 0 }, "value": "x", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2253, "end": 2279, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2254, "end": 2278, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2254, "end": 2255, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsUnionType", "span": { "start": 2264, "end": 2278, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 2264, "end": 2266, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 2269, "end": 2278, "ctxt": 0 }, "kind": "undefined" } ] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2742, "end": 2745, "ctxt": 0 }, "value": "f23", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2749, "end": 2772, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2749, "end": 2772, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2750, "end": 2772, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2752, "end": 2772, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2752, "end": 2753, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2752, "end": 2753, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 2756, "end": 2765, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsKeywordType", "span": { "start": 2768, "end": 2772, "ctxt": 0 }, "kind": "null" } ] } } } } ], "decorators": [], "span": { "start": 2733, "end": 3004, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2774, "end": 3004, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 2780, "end": 2837, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2784, "end": 2799, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 2784, "end": 2785, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2790, "end": 2799, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2801, "end": 2837, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2811, "end": 2813, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2811, "end": 2812, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2842, "end": 2899, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2846, "end": 2856, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 2846, "end": 2847, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 2852, "end": 2856, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2858, "end": 2899, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2868, "end": 2870, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2868, "end": 2869, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2904, "end": 2953, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2908, "end": 2922, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 2908, "end": 2909, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 2913, "end": 2922, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2924, "end": 2953, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2934, "end": 2936, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2934, "end": 2935, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2958, "end": 3002, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2962, "end": 2971, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 2962, "end": 2963, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 2967, "end": 2971, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2973, "end": 3002, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2983, "end": 2985, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2983, "end": 2984, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 2745, "end": 2748, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 2746, "end": 2747, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 2746, "end": 2747, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3015, "end": 3018, "ctxt": 0 }, "value": "f30", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3019, "end": 3024, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3019, "end": 3024, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3020, "end": 3024, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 3022, "end": 3024, "ctxt": 0 }, "members": [] } } } } ], "decorators": [], "span": { "start": 3006, "end": 3090, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3026, "end": 3090, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 3032, "end": 3088, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3036, "end": 3057, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 3036, "end": 3044, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 3043, "end": 3044, "ctxt": 0 }, "value": "x", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 3049, "end": 3057, "ctxt": 0 }, "value": "object", "raw": "\"object\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 3059, "end": 3088, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3069, "end": 3071, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3069, "end": 3070, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3101, "end": 3104, "ctxt": 0 }, "value": "f31", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3108, "end": 3112, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3108, "end": 3112, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3109, "end": 3112, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3111, "end": 3112, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3111, "end": 3112, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3092, "end": 3333, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3114, "end": 3333, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 3120, "end": 3191, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3124, "end": 3145, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 3124, "end": 3132, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 3131, "end": 3132, "ctxt": 0 }, "value": "x", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 3137, "end": 3145, "ctxt": 0 }, "value": "object", "raw": "\"object\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 3147, "end": 3191, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3157, "end": 3159, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3157, "end": 3158, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3196, "end": 3261, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3200, "end": 3226, "ctxt": 0 }, "operator": "&&", "left": { "type": "Identifier", "span": { "start": 3200, "end": 3201, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "BinaryExpression", "span": { "start": 3205, "end": 3226, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 3205, "end": 3213, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 3212, "end": 3213, "ctxt": 0 }, "value": "x", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 3218, "end": 3226, "ctxt": 0 }, "value": "object", "raw": "\"object\"" } } }, "consequent": { "type": "BlockStatement", "span": { "start": 3228, "end": 3261, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3238, "end": 3240, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3238, "end": 3239, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3266, "end": 3331, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3270, "end": 3296, "ctxt": 0 }, "operator": "&&", "left": { "type": "BinaryExpression", "span": { "start": 3270, "end": 3291, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 3270, "end": 3278, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 3277, "end": 3278, "ctxt": 0 }, "value": "x", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 3283, "end": 3291, "ctxt": 0 }, "value": "object", "raw": "\"object\"" } }, "right": { "type": "Identifier", "span": { "start": 3295, "end": 3296, "ctxt": 0 }, "value": "x", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3298, "end": 3331, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3308, "end": 3310, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3308, "end": 3309, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3104, "end": 3107, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3105, "end": 3106, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3105, "end": 3106, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3344, "end": 3347, "ctxt": 0 }, "value": "f32", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3374, "end": 3378, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3374, "end": 3378, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3375, "end": 3378, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3377, "end": 3378, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3377, "end": 3378, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3335, "end": 3448, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3380, "end": 3448, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 3386, "end": 3446, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3390, "end": 3411, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 3390, "end": 3398, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 3397, "end": 3398, "ctxt": 0 }, "value": "x", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 3403, "end": 3411, "ctxt": 0 }, "value": "object", "raw": "\"object\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 3413, "end": 3446, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3423, "end": 3425, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 3423, "end": 3424, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3347, "end": 3373, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3348, "end": 3372, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3348, "end": 3349, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsUnionType", "span": { "start": 3358, "end": 3372, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 3358, "end": 3360, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 3363, "end": 3372, "ctxt": 0 }, "kind": "undefined" } ] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3459, "end": 3471, "ctxt": 0 }, "value": "possiblyNull", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3475, "end": 3479, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3475, "end": 3479, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3476, "end": 3479, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3478, "end": 3479, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3478, "end": 3479, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3450, "end": 3527, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3481, "end": 3527, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 3487, "end": 3512, "ctxt": 0 }, "argument": { "type": "ConditionalExpression", "span": { "start": 3494, "end": 3511, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 3494, "end": 3500, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 3495, "end": 3500, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 3496, "end": 3500, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "Identifier", "span": { "start": 3503, "end": 3504, "ctxt": 0 }, "value": "x", "optional": false }, "alternate": { "type": "NullLiteral", "span": { "start": 3507, "end": 3511, "ctxt": 0 } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3471, "end": 3474, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3472, "end": 3473, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3472, "end": 3473, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3538, "end": 3555, "ctxt": 0 }, "value": "possiblyUndefined", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3559, "end": 3563, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3559, "end": 3563, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3560, "end": 3563, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3562, "end": 3563, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3562, "end": 3563, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3529, "end": 3621, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3565, "end": 3621, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 3571, "end": 3601, "ctxt": 0 }, "argument": { "type": "ConditionalExpression", "span": { "start": 3578, "end": 3600, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 3578, "end": 3584, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 3579, "end": 3584, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 3580, "end": 3584, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "Identifier", "span": { "start": 3587, "end": 3588, "ctxt": 0 }, "value": "x", "optional": false }, "alternate": { "type": "Identifier", "span": { "start": 3591, "end": 3600, "ctxt": 0 }, "value": "undefined", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3555, "end": 3558, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3556, "end": 3557, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3556, "end": 3557, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3632, "end": 3655, "ctxt": 0 }, "value": "possiblyNullOrUndefined", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3659, "end": 3663, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3659, "end": 3663, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3660, "end": 3663, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3662, "end": 3663, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3662, "end": 3663, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3623, "end": 3740, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3665, "end": 3740, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 3671, "end": 3713, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 3678, "end": 3712, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3678, "end": 3695, "ctxt": 0 }, "value": "possiblyUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 3696, "end": 3711, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3696, "end": 3708, "ctxt": 0 }, "value": "possiblyNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 3709, "end": 3710, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3655, "end": 3658, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3656, "end": 3657, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3656, "end": 3657, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3751, "end": 3764, "ctxt": 0 }, "value": "ensureNotNull", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3768, "end": 3772, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3768, "end": 3772, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3769, "end": 3772, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3771, "end": 3772, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3771, "end": 3772, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3742, "end": 3851, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3774, "end": 3851, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 3780, "end": 3810, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3784, "end": 3794, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 3784, "end": 3785, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 3790, "end": 3794, "ctxt": 0 } } }, "consequent": { "type": "ThrowStatement", "span": { "start": 3796, "end": 3810, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 3802, "end": 3809, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3802, "end": 3807, "ctxt": 0 }, "value": "Error", "optional": false }, "arguments": [], "typeArguments": null } }, "alternate": null }, { "type": "ReturnStatement", "span": { "start": 3815, "end": 3824, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 3822, "end": 3823, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3764, "end": 3767, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3765, "end": 3766, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3765, "end": 3766, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3862, "end": 3880, "ctxt": 0 }, "value": "ensureNotUndefined", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3884, "end": 3888, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3884, "end": 3888, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3885, "end": 3888, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 3887, "end": 3888, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3887, "end": 3888, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3853, "end": 3967, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3890, "end": 3967, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 3896, "end": 3931, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3900, "end": 3915, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 3900, "end": 3901, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 3906, "end": 3915, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "ThrowStatement", "span": { "start": 3917, "end": 3931, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 3923, "end": 3930, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 3923, "end": 3928, "ctxt": 0 }, "value": "Error", "optional": false }, "arguments": [], "typeArguments": null } }, "alternate": null }, { "type": "ReturnStatement", "span": { "start": 3936, "end": 3945, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 3943, "end": 3944, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 3880, "end": 3883, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 3881, "end": 3882, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 3881, "end": 3882, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3978, "end": 4002, "ctxt": 0 }, "value": "ensureNotNullOrUndefined", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4006, "end": 4010, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4006, "end": 4010, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4007, "end": 4010, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4009, "end": 4010, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4009, "end": 4010, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 3969, "end": 4075, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4012, "end": 4075, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 4018, "end": 4062, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 4025, "end": 4061, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4025, "end": 4043, "ctxt": 0 }, "value": "ensureNotUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4044, "end": 4060, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4044, "end": 4057, "ctxt": 0 }, "value": "ensureNotNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4058, "end": 4059, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4002, "end": 4005, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4003, "end": 4004, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4003, "end": 4004, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4086, "end": 4089, "ctxt": 0 }, "value": "f40", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4090, "end": 4111, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4090, "end": 4111, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4091, "end": 4111, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 4093, "end": 4111, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 4093, "end": 4099, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 4102, "end": 4111, "ctxt": 0 }, "kind": "undefined" } ] } } } }, { "type": "Parameter", "span": { "start": 4113, "end": 4141, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4113, "end": 4141, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4114, "end": 4141, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 4116, "end": 4141, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 4116, "end": 4122, "ctxt": 0 }, "kind": "number" }, { "type": "TsKeywordType", "span": { "start": 4125, "end": 4129, "ctxt": 0 }, "kind": "null" }, { "type": "TsKeywordType", "span": { "start": 4132, "end": 4141, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 4077, "end": 4252, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4143, "end": 4252, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 4149, "end": 4186, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4153, "end": 4185, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4153, "end": 4155, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4158, "end": 4185, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4158, "end": 4182, "ctxt": 0 }, "value": "ensureNotNullOrUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4183, "end": 4184, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4202, "end": 4239, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4206, "end": 4238, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4206, "end": 4208, "ctxt": 0 }, "value": "b1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4211, "end": 4238, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4211, "end": 4235, "ctxt": 0 }, "value": "ensureNotNullOrUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4236, "end": 4237, "ctxt": 0 }, "value": "b", "optional": false } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 4254, "end": 4308, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 4259, "end": 4261, "ctxt": 0 }, "value": "QQ", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 4261, "end": 4264, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4262, "end": 4263, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4262, "end": 4263, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4267, "end": 4307, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4267, "end": 4278, "ctxt": 0 }, "value": "NonNullable", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 4278, "end": 4307, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 4279, "end": 4306, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4279, "end": 4290, "ctxt": 0 }, "value": "NonNullable", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 4290, "end": 4306, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 4291, "end": 4305, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4291, "end": 4302, "ctxt": 0 }, "value": "NonNullable", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 4302, "end": 4305, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 4303, "end": 4304, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4303, "end": 4304, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } ] } } ] } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4319, "end": 4322, "ctxt": 0 }, "value": "f41", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4326, "end": 4330, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4326, "end": 4330, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4327, "end": 4330, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 4329, "end": 4330, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4329, "end": 4330, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 4310, "end": 4988, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4332, "end": 4988, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 4338, "end": 4384, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4342, "end": 4383, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4342, "end": 4344, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4347, "end": 4383, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4347, "end": 4365, "ctxt": 0 }, "value": "ensureNotUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4366, "end": 4382, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4366, "end": 4379, "ctxt": 0 }, "value": "ensureNotNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4380, "end": 4381, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4400, "end": 4446, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4404, "end": 4445, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4404, "end": 4406, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4409, "end": 4445, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4409, "end": 4422, "ctxt": 0 }, "value": "ensureNotNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4423, "end": 4444, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4423, "end": 4441, "ctxt": 0 }, "value": "ensureNotUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4442, "end": 4443, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4462, "end": 4503, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4466, "end": 4502, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4466, "end": 4468, "ctxt": 0 }, "value": "a3", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4471, "end": 4502, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4471, "end": 4484, "ctxt": 0 }, "value": "ensureNotNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4485, "end": 4501, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4485, "end": 4498, "ctxt": 0 }, "value": "ensureNotNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4499, "end": 4500, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4535, "end": 4586, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4539, "end": 4585, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4539, "end": 4541, "ctxt": 0 }, "value": "a4", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4544, "end": 4585, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4544, "end": 4562, "ctxt": 0 }, "value": "ensureNotUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4563, "end": 4584, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4563, "end": 4581, "ctxt": 0 }, "value": "ensureNotUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4582, "end": 4583, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4613, "end": 4676, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4617, "end": 4675, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4617, "end": 4619, "ctxt": 0 }, "value": "a5", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4622, "end": 4675, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4622, "end": 4646, "ctxt": 0 }, "value": "ensureNotNullOrUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4647, "end": 4674, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4647, "end": 4671, "ctxt": 0 }, "value": "ensureNotNullOrUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4672, "end": 4673, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4692, "end": 4743, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4696, "end": 4742, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4696, "end": 4698, "ctxt": 0 }, "value": "a6", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4701, "end": 4742, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4701, "end": 4714, "ctxt": 0 }, "value": "ensureNotNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4715, "end": 4741, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4715, "end": 4738, "ctxt": 0 }, "value": "possiblyNullOrUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4739, "end": 4740, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4771, "end": 4827, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4775, "end": 4826, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4775, "end": 4777, "ctxt": 0 }, "value": "a7", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4780, "end": 4826, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4780, "end": 4798, "ctxt": 0 }, "value": "ensureNotUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4799, "end": 4825, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4799, "end": 4822, "ctxt": 0 }, "value": "possiblyNullOrUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4823, "end": 4824, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4850, "end": 4895, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4854, "end": 4894, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4854, "end": 4856, "ctxt": 0 }, "value": "a8", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4859, "end": 4894, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4859, "end": 4872, "ctxt": 0 }, "value": "ensureNotNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4873, "end": 4893, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4873, "end": 4890, "ctxt": 0 }, "value": "possiblyUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4891, "end": 4892, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 4923, "end": 4968, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 4927, "end": 4967, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 4927, "end": 4929, "ctxt": 0 }, "value": "a9", "optional": false, "typeAnnotation": null }, "init": { "type": "CallExpression", "span": { "start": 4932, "end": 4967, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4932, "end": 4950, "ctxt": 0 }, "value": "ensureNotUndefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "CallExpression", "span": { "start": 4951, "end": 4966, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 4951, "end": 4963, "ctxt": 0 }, "value": "possiblyNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 4964, "end": 4965, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ], "typeArguments": null }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 4322, "end": 4325, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 4323, "end": 4324, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 4323, "end": 4324, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5021, "end": 5031, "ctxt": 0 }, "value": "deepEquals", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5035, "end": 5039, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5035, "end": 5039, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5036, "end": 5039, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5038, "end": 5039, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5038, "end": 5039, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 5041, "end": 5045, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5041, "end": 5045, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5042, "end": 5045, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5044, "end": 5045, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5044, "end": 5045, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 5012, "end": 5351, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5056, "end": 5351, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 5062, "end": 5155, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5066, "end": 5124, "ctxt": 0 }, "operator": "||", "left": { "type": "BinaryExpression", "span": { "start": 5066, "end": 5118, "ctxt": 0 }, "operator": "||", "left": { "type": "BinaryExpression", "span": { "start": 5066, "end": 5112, "ctxt": 0 }, "operator": "||", "left": { "type": "BinaryExpression", "span": { "start": 5066, "end": 5087, "ctxt": 0 }, "operator": "!==", "left": { "type": "UnaryExpression", "span": { "start": 5066, "end": 5074, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 5073, "end": 5074, "ctxt": 0 }, "value": "a", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 5079, "end": 5087, "ctxt": 0 }, "value": "object", "raw": "'object'" } }, "right": { "type": "BinaryExpression", "span": { "start": 5091, "end": 5112, "ctxt": 0 }, "operator": "!==", "left": { "type": "UnaryExpression", "span": { "start": 5091, "end": 5099, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "Identifier", "span": { "start": 5098, "end": 5099, "ctxt": 0 }, "value": "b", "optional": false } }, "right": { "type": "StringLiteral", "span": { "start": 5104, "end": 5112, "ctxt": 0 }, "value": "object", "raw": "'object'" } } }, "right": { "type": "UnaryExpression", "span": { "start": 5116, "end": 5118, "ctxt": 0 }, "operator": "!", "argument": { "type": "Identifier", "span": { "start": 5117, "end": 5118, "ctxt": 0 }, "value": "a", "optional": false } } }, "right": { "type": "UnaryExpression", "span": { "start": 5122, "end": 5124, "ctxt": 0 }, "operator": "!", "argument": { "type": "Identifier", "span": { "start": 5123, "end": 5124, "ctxt": 0 }, "value": "b", "optional": false } } }, "consequent": { "type": "BlockStatement", "span": { "start": 5126, "end": 5155, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 5136, "end": 5149, "ctxt": 0 }, "argument": { "type": "BooleanLiteral", "span": { "start": 5143, "end": 5148, "ctxt": 0 }, "value": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 5160, "end": 5231, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5164, "end": 5200, "ctxt": 0 }, "operator": "||", "left": { "type": "CallExpression", "span": { "start": 5164, "end": 5180, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 5164, "end": 5177, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5164, "end": 5169, "ctxt": 0 }, "value": "Array", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5170, "end": 5177, "ctxt": 0 }, "value": "isArray", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5178, "end": 5179, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "right": { "type": "CallExpression", "span": { "start": 5184, "end": 5200, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 5184, "end": 5197, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5184, "end": 5189, "ctxt": 0 }, "value": "Array", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5190, "end": 5197, "ctxt": 0 }, "value": "isArray", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5198, "end": 5199, "ctxt": 0 }, "value": "b", "optional": false } } ], "typeArguments": null } }, "consequent": { "type": "BlockStatement", "span": { "start": 5202, "end": 5231, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 5212, "end": 5225, "ctxt": 0 }, "argument": { "type": "BooleanLiteral", "span": { "start": 5219, "end": 5224, "ctxt": 0 }, "value": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 5236, "end": 5332, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5240, "end": 5287, "ctxt": 0 }, "operator": "!==", "left": { "type": "MemberExpression", "span": { "start": 5240, "end": 5261, "ctxt": 0 }, "object": { "type": "CallExpression", "span": { "start": 5240, "end": 5254, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 5240, "end": 5251, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5240, "end": 5246, "ctxt": 0 }, "value": "Object", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5247, "end": 5251, "ctxt": 0 }, "value": "keys", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5252, "end": 5253, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null }, "property": { "type": "Identifier", "span": { "start": 5255, "end": 5261, "ctxt": 0 }, "value": "length", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 5266, "end": 5287, "ctxt": 0 }, "object": { "type": "CallExpression", "span": { "start": 5266, "end": 5280, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 5266, "end": 5277, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5266, "end": 5272, "ctxt": 0 }, "value": "Object", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5273, "end": 5277, "ctxt": 0 }, "value": "keys", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 5278, "end": 5279, "ctxt": 0 }, "value": "b", "optional": false } } ], "typeArguments": null }, "property": { "type": "Identifier", "span": { "start": 5281, "end": 5287, "ctxt": 0 }, "value": "length", "optional": false } } }, "consequent": { "type": "BlockStatement", "span": { "start": 5289, "end": 5332, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 5313, "end": 5326, "ctxt": 0 }, "argument": { "type": "BooleanLiteral", "span": { "start": 5320, "end": 5325, "ctxt": 0 }, "value": false } } ] }, "alternate": null }, { "type": "ReturnStatement", "span": { "start": 5337, "end": 5349, "ctxt": 0 }, "argument": { "type": "BooleanLiteral", "span": { "start": 5344, "end": 5348, "ctxt": 0 }, "value": true } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5031, "end": 5034, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5032, "end": 5033, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5032, "end": 5033, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 5046, "end": 5055, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5048, "end": 5055, "ctxt": 0 }, "kind": "boolean" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5384, "end": 5387, "ctxt": 0 }, "value": "foo", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5391, "end": 5402, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5391, "end": 5402, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5392, "end": 5402, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 5394, "end": 5402, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 5394, "end": 5395, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5394, "end": 5395, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 5398, "end": 5402, "ctxt": 0 }, "kind": "null" } ] } } } } ], "decorators": [], "span": { "start": 5375, "end": 5461, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5404, "end": 5461, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 5410, "end": 5420, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 5414, "end": 5419, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 5414, "end": 5415, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 5418, "end": 5419, "ctxt": 0 }, "value": "x", "optional": false }, "definite": false } ] }, { "type": "IfStatement", "span": { "start": 5425, "end": 5459, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5429, "end": 5439, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 5429, "end": 5430, "ctxt": 0 }, "value": "y", "optional": false }, "right": { "type": "NullLiteral", "span": { "start": 5435, "end": 5439, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 5441, "end": 5459, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5451, "end": 5453, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5451, "end": 5452, "ctxt": 0 }, "value": "y", "optional": false } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5387, "end": 5390, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5388, "end": 5389, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5388, "end": 5389, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5759, "end": 5762, "ctxt": 0 }, "value": "ff1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5766, "end": 5770, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5766, "end": 5770, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5767, "end": 5770, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5769, "end": 5770, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5769, "end": 5770, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 5772, "end": 5782, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5772, "end": 5782, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5773, "end": 5782, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 5775, "end": 5782, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5781, "end": 5782, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5781, "end": 5782, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 5750, "end": 5797, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5784, "end": 5797, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5790, "end": 5795, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5790, "end": 5794, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5790, "end": 5791, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 5791, "end": 5794, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5792, "end": 5793, "ctxt": 0 }, "value": "k", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5762, "end": 5765, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5763, "end": 5764, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5763, "end": 5764, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5808, "end": 5811, "ctxt": 0 }, "value": "ff2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5815, "end": 5824, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5815, "end": 5824, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5816, "end": 5824, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 5818, "end": 5824, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 5818, "end": 5819, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5818, "end": 5819, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeLiteral", "span": { "start": 5822, "end": 5824, "ctxt": 0 }, "members": [] } ] } } } }, { "type": "Parameter", "span": { "start": 5826, "end": 5836, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5826, "end": 5836, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5827, "end": 5836, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 5829, "end": 5836, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5835, "end": 5836, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5835, "end": 5836, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } } ], "decorators": [], "span": { "start": 5799, "end": 5851, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5838, "end": 5851, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5844, "end": 5849, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5844, "end": 5848, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5844, "end": 5845, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 5845, "end": 5848, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5846, "end": 5847, "ctxt": 0 }, "value": "k", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5811, "end": 5814, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5812, "end": 5813, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5812, "end": 5813, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5862, "end": 5865, "ctxt": 0 }, "value": "ff3", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5869, "end": 5873, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5869, "end": 5873, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5870, "end": 5873, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 5872, "end": 5873, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5872, "end": 5873, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } }, { "type": "Parameter", "span": { "start": 5875, "end": 5892, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5875, "end": 5892, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5876, "end": 5892, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 5878, "end": 5892, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 5884, "end": 5892, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 5885, "end": 5891, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 5885, "end": 5886, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5885, "end": 5886, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeLiteral", "span": { "start": 5889, "end": 5891, "ctxt": 0 }, "members": [] } ] } } } } } } ], "decorators": [], "span": { "start": 5853, "end": 5917, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5894, "end": 5917, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5900, "end": 5905, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5900, "end": 5904, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5900, "end": 5901, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 5901, "end": 5904, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5902, "end": 5903, "ctxt": 0 }, "value": "k", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5865, "end": 5868, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5866, "end": 5867, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5866, "end": 5867, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5928, "end": 5931, "ctxt": 0 }, "value": "ff4", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5935, "end": 5944, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5935, "end": 5944, "ctxt": 0 }, "value": "t", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5936, "end": 5944, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 5938, "end": 5944, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 5938, "end": 5939, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5938, "end": 5939, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeLiteral", "span": { "start": 5942, "end": 5944, "ctxt": 0 }, "members": [] } ] } } } }, { "type": "Parameter", "span": { "start": 5946, "end": 5963, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5946, "end": 5963, "ctxt": 0 }, "value": "k", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5947, "end": 5963, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeOperator", "span": { "start": 5949, "end": 5963, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 5955, "end": 5963, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 5956, "end": 5962, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 5956, "end": 5957, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5956, "end": 5957, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeLiteral", "span": { "start": 5960, "end": 5962, "ctxt": 0 }, "members": [] } ] } } } } } } ], "decorators": [], "span": { "start": 5919, "end": 5978, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5965, "end": 5978, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5971, "end": 5976, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5971, "end": 5975, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5971, "end": 5972, "ctxt": 0 }, "value": "t", "optional": false }, "property": { "type": "Computed", "span": { "start": 5972, "end": 5975, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 5973, "end": 5974, "ctxt": 0 }, "value": "k", "optional": false } } } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 5931, "end": 5934, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 5932, "end": 5933, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 5932, "end": 5933, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "ExpressionStatement", "span": { "start": 5980, "end": 5997, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 5980, "end": 5996, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 5980, "end": 5983, "ctxt": 0 }, "value": "ff1", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 5984, "end": 5988, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 5990, "end": 5995, "ctxt": 0 }, "value": "foo", "raw": "'foo'" } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 6008, "end": 6025, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 6008, "end": 6024, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 6008, "end": 6011, "ctxt": 0 }, "value": "ff2", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 6012, "end": 6016, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6018, "end": 6023, "ctxt": 0 }, "value": "foo", "raw": "'foo'" } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 6036, "end": 6053, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 6036, "end": 6052, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 6036, "end": 6039, "ctxt": 0 }, "value": "ff3", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 6040, "end": 6044, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6046, "end": 6051, "ctxt": 0 }, "value": "foo", "raw": "'foo'" } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 6054, "end": 6071, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 6054, "end": 6070, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 6054, "end": 6057, "ctxt": 0 }, "value": "ff4", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NullLiteral", "span": { "start": 6058, "end": 6062, "ctxt": 0 } } }, { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 6064, "end": 6069, "ctxt": 0 }, "value": "foo", "raw": "'foo'" } } ], "typeArguments": null } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 6105, "end": 6143, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 6110, "end": 6113, "ctxt": 0 }, "value": "Foo", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 6116, "end": 6142, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 6119, "end": 6130, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6122, "end": 6130, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6124, "end": 6130, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6131, "end": 6140, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 6133, "end": 6140, "ctxt": 0 }, "kind": "unknown" } }, "readonly": false, "static": false, "span": { "start": 6118, "end": 6140, "ctxt": 0 } } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 6144, "end": 6179, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 6149, "end": 6160, "ctxt": 0 }, "value": "NullableFoo", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6163, "end": 6178, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6163, "end": 6166, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6163, "end": 6166, "ctxt": 0 }, "value": "Foo", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 6169, "end": 6178, "ctxt": 0 }, "kind": "undefined" } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 6181, "end": 6238, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 6186, "end": 6189, "ctxt": 0 }, "value": "Bar", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 6189, "end": 6212, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6190, "end": 6211, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6190, "end": 6191, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 6200, "end": 6211, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6200, "end": 6211, "ctxt": 0 }, "value": "NullableFoo", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsIndexedAccessType", "span": { "start": 6215, "end": 6237, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 6215, "end": 6229, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6215, "end": 6226, "ctxt": 0 }, "value": "NonNullable", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 6226, "end": 6229, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 6227, "end": 6228, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6227, "end": 6228, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } }, "indexType": { "type": "TsKeywordType", "span": { "start": 6230, "end": 6236, "ctxt": 0 }, "kind": "string" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6288, "end": 6291, "ctxt": 0 }, "value": "fx0", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6295, "end": 6317, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6295, "end": 6317, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6300, "end": 6317, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 6302, "end": 6317, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6302, "end": 6303, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6302, "end": 6303, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsParenthesizedType", "span": { "start": 6306, "end": 6317, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6307, "end": 6316, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 6307, "end": 6309, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 6312, "end": 6316, "ctxt": 0 }, "kind": "null" } ] } } ] } } } } ], "decorators": [], "span": { "start": 6279, "end": 6430, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6319, "end": 6430, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 6325, "end": 6428, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6329, "end": 6341, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 6329, "end": 6334, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 6339, "end": 6341, "ctxt": 0 }, "value": 42.0, "raw": "42" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6343, "end": 6376, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6353, "end": 6359, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6353, "end": 6358, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 6386, "end": 6428, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6396, "end": 6402, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6396, "end": 6401, "ctxt": 0 }, "value": "value", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6291, "end": 6294, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6292, "end": 6293, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6292, "end": 6293, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": null, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6441, "end": 6444, "ctxt": 0 }, "value": "fx1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6464, "end": 6486, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6464, "end": 6486, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6469, "end": 6486, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 6471, "end": 6486, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6471, "end": 6472, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6471, "end": 6472, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsParenthesizedType", "span": { "start": 6475, "end": 6486, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6476, "end": 6485, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 6476, "end": 6478, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 6481, "end": 6485, "ctxt": 0 }, "kind": "null" } ] } } ] } } } } ], "decorators": [], "span": { "start": 6432, "end": 6599, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6488, "end": 6599, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 6494, "end": 6597, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6498, "end": 6510, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 6498, "end": 6503, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 6508, "end": 6510, "ctxt": 0 }, "value": 42.0, "raw": "42" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6512, "end": 6545, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6522, "end": 6528, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6522, "end": 6527, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 6555, "end": 6597, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6565, "end": 6571, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6565, "end": 6570, "ctxt": 0 }, "value": "value", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6444, "end": 6463, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6445, "end": 6462, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6445, "end": 6446, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 6455, "end": 6462, "ctxt": 0 }, "kind": "unknown" }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6610, "end": 6613, "ctxt": 0 }, "value": "fx2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6628, "end": 6650, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6628, "end": 6650, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6633, "end": 6650, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 6635, "end": 6650, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6635, "end": 6636, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6635, "end": 6636, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsParenthesizedType", "span": { "start": 6639, "end": 6650, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6640, "end": 6649, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 6640, "end": 6642, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 6645, "end": 6649, "ctxt": 0 }, "kind": "null" } ] } } ] } } } } ], "decorators": [], "span": { "start": 6601, "end": 6763, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6652, "end": 6763, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 6658, "end": 6761, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6662, "end": 6674, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 6662, "end": 6667, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 6672, "end": 6674, "ctxt": 0 }, "value": 42.0, "raw": "42" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6676, "end": 6709, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6686, "end": 6692, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6686, "end": 6691, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 6719, "end": 6761, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6729, "end": 6735, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6729, "end": 6734, "ctxt": 0 }, "value": "value", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6613, "end": 6627, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6614, "end": 6626, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6614, "end": 6615, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeLiteral", "span": { "start": 6624, "end": 6626, "ctxt": 0 }, "members": [] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6774, "end": 6777, "ctxt": 0 }, "value": "fx3", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6804, "end": 6826, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6804, "end": 6826, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6809, "end": 6826, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 6811, "end": 6826, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6811, "end": 6812, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6811, "end": 6812, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsParenthesizedType", "span": { "start": 6815, "end": 6826, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6816, "end": 6825, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 6816, "end": 6818, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 6821, "end": 6825, "ctxt": 0 }, "kind": "null" } ] } } ] } } } } ], "decorators": [], "span": { "start": 6765, "end": 6939, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6828, "end": 6939, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 6834, "end": 6937, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6838, "end": 6850, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 6838, "end": 6843, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 6848, "end": 6850, "ctxt": 0 }, "value": 42.0, "raw": "42" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6852, "end": 6885, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6862, "end": 6868, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6862, "end": 6867, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 6895, "end": 6937, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6905, "end": 6911, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 6905, "end": 6910, "ctxt": 0 }, "value": "value", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6777, "end": 6803, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6778, "end": 6802, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6778, "end": 6779, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsUnionType", "span": { "start": 6788, "end": 6802, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 6788, "end": 6790, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 6793, "end": 6802, "ctxt": 0 }, "kind": "undefined" } ] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6950, "end": 6953, "ctxt": 0 }, "value": "fx4", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6975, "end": 6997, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6975, "end": 6997, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6980, "end": 6997, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 6982, "end": 6997, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6982, "end": 6983, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6982, "end": 6983, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsParenthesizedType", "span": { "start": 6986, "end": 6997, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6987, "end": 6996, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 6987, "end": 6989, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 6992, "end": 6996, "ctxt": 0 }, "kind": "null" } ] } } ] } } } } ], "decorators": [], "span": { "start": 6941, "end": 7110, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6999, "end": 7110, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 7005, "end": 7108, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7009, "end": 7021, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 7009, "end": 7014, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 7019, "end": 7021, "ctxt": 0 }, "value": 42.0, "raw": "42" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7023, "end": 7056, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7033, "end": 7039, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7033, "end": 7038, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7066, "end": 7108, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7076, "end": 7082, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7076, "end": 7081, "ctxt": 0 }, "value": "value", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 6953, "end": 6974, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 6954, "end": 6973, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 6954, "end": 6955, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsUnionType", "span": { "start": 6964, "end": 6973, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 6964, "end": 6966, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 6969, "end": 6973, "ctxt": 0 }, "kind": "null" } ] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7121, "end": 7124, "ctxt": 0 }, "value": "fx5", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7158, "end": 7180, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7158, "end": 7180, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7163, "end": 7180, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 7165, "end": 7180, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 7165, "end": 7166, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7165, "end": 7166, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsParenthesizedType", "span": { "start": 7169, "end": 7180, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 7170, "end": 7179, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 7170, "end": 7172, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 7175, "end": 7179, "ctxt": 0 }, "kind": "null" } ] } } ] } } } } ], "decorators": [], "span": { "start": 7112, "end": 7293, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7182, "end": 7293, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 7188, "end": 7291, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7192, "end": 7204, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 7192, "end": 7197, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 7202, "end": 7204, "ctxt": 0 }, "value": 42.0, "raw": "42" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7206, "end": 7239, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7216, "end": 7222, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7216, "end": 7221, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7249, "end": 7291, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7259, "end": 7265, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7259, "end": 7264, "ctxt": 0 }, "value": "value", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 7124, "end": 7157, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 7125, "end": 7156, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7125, "end": 7126, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsUnionType", "span": { "start": 7135, "end": 7156, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 7135, "end": 7137, "ctxt": 0 }, "members": [] }, { "type": "TsKeywordType", "span": { "start": 7140, "end": 7144, "ctxt": 0 }, "kind": "null" }, { "type": "TsKeywordType", "span": { "start": 7147, "end": 7156, "ctxt": 0 }, "kind": "undefined" } ] }, "default": null } ] }, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7332, "end": 7336, "ctxt": 0 }, "value": "fx10", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7337, "end": 7355, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7337, "end": 7355, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7338, "end": 7355, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 7340, "end": 7355, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 7340, "end": 7346, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 7349, "end": 7355, "ctxt": 0 }, "kind": "number" } ] } } } }, { "type": "Parameter", "span": { "start": 7357, "end": 7366, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7357, "end": 7366, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7358, "end": 7366, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 7360, "end": 7366, "ctxt": 0 }, "kind": "number" } } } } ], "decorators": [], "span": { "start": 7323, "end": 7577, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7368, "end": 7577, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 7374, "end": 7472, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7378, "end": 7384, "ctxt": 0 }, "operator": "==", "left": { "type": "Identifier", "span": { "start": 7378, "end": 7379, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 7383, "end": 7384, "ctxt": 0 }, "value": "y", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 7386, "end": 7424, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7396, "end": 7398, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7396, "end": 7397, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7434, "end": 7472, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7444, "end": 7446, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7444, "end": 7445, "ctxt": 0 }, "value": "x", "optional": false } } ] } }, { "type": "IfStatement", "span": { "start": 7477, "end": 7575, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7481, "end": 7487, "ctxt": 0 }, "operator": "!=", "left": { "type": "Identifier", "span": { "start": 7481, "end": 7482, "ctxt": 0 }, "value": "x", "optional": false }, "right": { "type": "Identifier", "span": { "start": 7486, "end": 7487, "ctxt": 0 }, "value": "y", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 7489, "end": 7527, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7499, "end": 7501, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7499, "end": 7500, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7537, "end": 7575, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7547, "end": 7549, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7547, "end": 7548, "ctxt": 0 }, "value": "x", "optional": false } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7611, "end": 7619, "ctxt": 0 }, "value": "SendBlob", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7620, "end": 7637, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7620, "end": 7637, "ctxt": 0 }, "value": "encoding", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7628, "end": 7637, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 7630, "end": 7637, "ctxt": 0 }, "kind": "unknown" } } } } ], "decorators": [], "span": { "start": 7602, "end": 7756, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7639, "end": 7756, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 7645, "end": 7740, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7649, "end": 7694, "ctxt": 0 }, "operator": "&&", "left": { "type": "BinaryExpression", "span": { "start": 7649, "end": 7671, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 7649, "end": 7657, "ctxt": 0 }, "value": "encoding", "optional": false }, "right": { "type": "Identifier", "span": { "start": 7662, "end": 7671, "ctxt": 0 }, "value": "undefined", "optional": false } }, "right": { "type": "BinaryExpression", "span": { "start": 7675, "end": 7694, "ctxt": 0 }, "operator": "!==", "left": { "type": "Identifier", "span": { "start": 7675, "end": 7683, "ctxt": 0 }, "value": "encoding", "optional": false }, "right": { "type": "StringLiteral", "span": { "start": 7688, "end": 7694, "ctxt": 0 }, "value": "utf8", "raw": "'utf8'" } } }, "consequent": { "type": "BlockStatement", "span": { "start": 7696, "end": 7740, "ctxt": 0 }, "stmts": [ { "type": "ThrowStatement", "span": { "start": 7706, "end": 7734, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 7712, "end": 7733, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7716, "end": 7721, "ctxt": 0 }, "value": "Error", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7722, "end": 7732, "ctxt": 0 }, "value": "encoding", "raw": "'encoding'" } } ], "typeArguments": null } } ] }, "alternate": null }, { "type": "ExpressionStatement", "span": { "start": 7745, "end": 7754, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 7745, "end": 7753, "ctxt": 0 }, "value": "encoding", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "EmptyStatement", "span": { "start": 7756, "end": 7757, "ctxt": 0 } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7768, "end": 7780, "ctxt": 0 }, "value": "doSomething1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7800, "end": 7808, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7800, "end": 7808, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7805, "end": 7808, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7807, "end": 7808, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7807, "end": 7808, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 7759, "end": 7969, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7813, "end": 7969, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 7819, "end": 7873, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7823, "end": 7842, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 7823, "end": 7828, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "Identifier", "span": { "start": 7833, "end": 7842, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 7844, "end": 7873, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 7854, "end": 7867, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 7861, "end": 7866, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 7878, "end": 7949, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7882, "end": 7894, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 7882, "end": 7887, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 7892, "end": 7894, "ctxt": 0 }, "value": 42.0, "raw": "42" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7896, "end": 7949, "ctxt": 0 }, "stmts": [ { "type": "ThrowStatement", "span": { "start": 7906, "end": 7943, "ctxt": 0 }, "argument": { "type": "CallExpression", "span": { "start": 7912, "end": 7942, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7912, "end": 7917, "ctxt": 0 }, "value": "Error", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 7918, "end": 7941, "ctxt": 0 }, "value": "Meaning of life value", "raw": "'Meaning of life value'" } } ], "typeArguments": null } } ] }, "alternate": null }, { "type": "ReturnStatement", "span": { "start": 7954, "end": 7967, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 7961, "end": 7966, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 7780, "end": 7799, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 7781, "end": 7798, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7781, "end": 7782, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsKeywordType", "span": { "start": 7791, "end": 7798, "ctxt": 0 }, "kind": "unknown" }, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 7809, "end": 7812, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7811, "end": 7812, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7811, "end": 7812, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7980, "end": 7992, "ctxt": 0 }, "value": "doSomething2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7993, "end": 8007, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7993, "end": 8007, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7998, "end": 8007, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8000, "end": 8007, "ctxt": 0 }, "kind": "unknown" } } } } ], "decorators": [], "span": { "start": 7971, "end": 8116, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8015, "end": 8116, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 8021, "end": 8069, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 8025, "end": 8044, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 8025, "end": 8030, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "Identifier", "span": { "start": 8035, "end": 8044, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 8046, "end": 8069, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 8056, "end": 8063, "ctxt": 0 }, "argument": null } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 8074, "end": 8114, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 8078, "end": 8090, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 8078, "end": 8083, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "NumericLiteral", "span": { "start": 8088, "end": 8090, "ctxt": 0 }, "value": 42.0, "raw": "42" } }, "consequent": { "type": "BlockStatement", "span": { "start": 8092, "end": 8114, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 8102, "end": 8108, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 8102, "end": 8107, "ctxt": 0 }, "value": "value", "optional": false } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 8008, "end": 8014, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8010, "end": 8014, "ctxt": 0 }, "kind": "void" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8140, "end": 8180, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8145, "end": 8150, "ctxt": 0 }, "value": "TypeA", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 8153, "end": 8180, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 8159, "end": 8166, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8159, "end": 8160, "ctxt": 0 }, "value": "A", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8160, "end": 8165, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8162, "end": 8165, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8162, "end": 8165, "ctxt": 0 }, "value": "A", "raw": "'A'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 8171, "end": 8178, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8171, "end": 8172, "ctxt": 0 }, "value": "B", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8172, "end": 8177, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8174, "end": 8177, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8174, "end": 8177, "ctxt": 0 }, "value": "B", "raw": "'B'" } } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8182, "end": 8234, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8187, "end": 8192, "ctxt": 0 }, "value": "TypeB", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 8195, "end": 8234, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 8201, "end": 8208, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8201, "end": 8202, "ctxt": 0 }, "value": "A", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8202, "end": 8207, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8204, "end": 8207, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8204, "end": 8207, "ctxt": 0 }, "value": "A", "raw": "'A'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 8213, "end": 8220, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8213, "end": 8214, "ctxt": 0 }, "value": "B", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8214, "end": 8219, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8216, "end": 8219, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8216, "end": 8219, "ctxt": 0 }, "value": "B", "raw": "'B'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 8225, "end": 8232, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8225, "end": 8226, "ctxt": 0 }, "value": "C", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8226, "end": 8231, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8228, "end": 8231, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8228, "end": 8231, "ctxt": 0 }, "value": "C", "raw": "'C'" } } }, "typeParams": null } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8236, "end": 8325, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8241, "end": 8242, "ctxt": 0 }, "value": "R", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 8242, "end": 8265, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 8243, "end": 8264, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 8243, "end": 8244, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeOperator", "span": { "start": 8253, "end": 8264, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8259, "end": 8264, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8259, "end": 8264, "ctxt": 0 }, "value": "TypeA", "optional": false }, "typeParams": null } }, "default": null } ] }, "typeAnnotation": { "type": "TsConditionalType", "span": { "start": 8272, "end": 8324, "ctxt": 0 }, "checkType": { "type": "TsTypeReference", "span": { "start": 8272, "end": 8273, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8272, "end": 8273, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "extendsType": { "type": "TsTypeOperator", "span": { "start": 8282, "end": 8293, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8288, "end": 8293, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8288, "end": 8293, "ctxt": 0 }, "value": "TypeB", "optional": false }, "typeParams": null } }, "trueType": { "type": "TsTupleType", "span": { "start": 8296, "end": 8316, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 8297, "end": 8305, "ctxt": 0 }, "label": null, "ty": { "type": "TsIndexedAccessType", "span": { "start": 8297, "end": 8305, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 8297, "end": 8302, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8297, "end": 8302, "ctxt": 0 }, "value": "TypeA", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 8303, "end": 8304, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8303, "end": 8304, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "TsTupleElement", "span": { "start": 8307, "end": 8315, "ctxt": 0 }, "label": null, "ty": { "type": "TsIndexedAccessType", "span": { "start": 8307, "end": 8315, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 8307, "end": 8312, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8307, "end": 8312, "ctxt": 0 }, "value": "TypeB", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 8313, "end": 8314, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8313, "end": 8314, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ] }, "falseType": { "type": "TsKeywordType", "span": { "start": 8319, "end": 8324, "ctxt": 0 }, "kind": "never" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8327, "end": 8449, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8332, "end": 8334, "ctxt": 0 }, "value": "R2", "optional": false }, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 8334, "end": 8357, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 8335, "end": 8356, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 8335, "end": 8336, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 8345, "end": 8356, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8345, "end": 8356, "ctxt": 0 }, "value": "PropertyKey", "optional": false }, "typeParams": null }, "default": null } ] }, "typeAnnotation": { "type": "TsConditionalType", "span": { "start": 8364, "end": 8448, "ctxt": 0 }, "checkType": { "type": "TsTypeReference", "span": { "start": 8364, "end": 8365, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8364, "end": 8365, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "extendsType": { "type": "TsTypeOperator", "span": { "start": 8374, "end": 8385, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8380, "end": 8385, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8380, "end": 8385, "ctxt": 0 }, "value": "TypeA", "optional": false }, "typeParams": null } }, "trueType": { "type": "TsConditionalType", "span": { "start": 8388, "end": 8440, "ctxt": 0 }, "checkType": { "type": "TsTypeReference", "span": { "start": 8388, "end": 8389, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8388, "end": 8389, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, "extendsType": { "type": "TsTypeOperator", "span": { "start": 8398, "end": 8409, "ctxt": 0 }, "op": "keyof", "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8404, "end": 8409, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8404, "end": 8409, "ctxt": 0 }, "value": "TypeB", "optional": false }, "typeParams": null } }, "trueType": { "type": "TsTupleType", "span": { "start": 8412, "end": 8432, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 8413, "end": 8421, "ctxt": 0 }, "label": null, "ty": { "type": "TsIndexedAccessType", "span": { "start": 8413, "end": 8421, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 8413, "end": 8418, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8413, "end": 8418, "ctxt": 0 }, "value": "TypeA", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 8419, "end": 8420, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8419, "end": 8420, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } }, { "type": "TsTupleElement", "span": { "start": 8423, "end": 8431, "ctxt": 0 }, "label": null, "ty": { "type": "TsIndexedAccessType", "span": { "start": 8423, "end": 8431, "ctxt": 0 }, "readonly": false, "objectType": { "type": "TsTypeReference", "span": { "start": 8423, "end": 8428, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8423, "end": 8428, "ctxt": 0 }, "value": "TypeB", "optional": false }, "typeParams": null }, "indexType": { "type": "TsTypeReference", "span": { "start": 8429, "end": 8430, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8429, "end": 8430, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ] }, "falseType": { "type": "TsKeywordType", "span": { "start": 8435, "end": 8440, "ctxt": 0 }, "kind": "never" } }, "falseType": { "type": "TsKeywordType", "span": { "start": 8443, "end": 8448, "ctxt": 0 }, "kind": "never" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8473, "end": 8493, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8478, "end": 8480, "ctxt": 0 }, "value": "AB", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 8483, "end": 8492, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 8483, "end": 8486, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8483, "end": 8486, "ctxt": 0 }, "value": "A", "raw": "\"A\"" } }, { "type": "TsLiteralType", "span": { "start": 8489, "end": 8492, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8489, "end": 8492, "ctxt": 0 }, "value": "B", "raw": "\"B\"" } } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8504, "end": 8505, "ctxt": 0 }, "value": "x", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 8523, "end": 8542, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8523, "end": 8542, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8524, "end": 8542, "ctxt": 0 }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 8526, "end": 8542, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 8526, "end": 8530, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8526, "end": 8530, "ctxt": 0 }, "value": "T_AB", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 8533, "end": 8542, "ctxt": 0 }, "kind": "undefined" } ] } } } }, { "type": "Parameter", "span": { "start": 8544, "end": 8550, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8544, "end": 8550, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8545, "end": 8550, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8547, "end": 8550, "ctxt": 0 }, "kind": "any" } } } } ], "decorators": [], "span": { "start": 8495, "end": 8598, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8552, "end": 8598, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 8558, "end": 8596, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8562, "end": 8595, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8562, "end": 8564, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8564, "end": 8571, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8566, "end": 8571, "ctxt": 0 }, "kind": "never" } } }, "init": { "type": "TsAsExpression", "span": { "start": 8574, "end": 8595, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 8574, "end": 8575, "ctxt": 0 }, "value": "y", "optional": false }, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 8579, "end": 8595, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 8579, "end": 8583, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8579, "end": 8583, "ctxt": 0 }, "value": "T_AB", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 8586, "end": 8595, "ctxt": 0 }, "kind": "undefined" } ] } }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 8505, "end": 8522, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 8506, "end": 8521, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 8506, "end": 8510, "ctxt": 0 }, "value": "T_AB", "optional": false }, "in": false, "out": false, "const": false, "constraint": { "type": "TsTypeReference", "span": { "start": 8519, "end": 8521, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8519, "end": 8521, "ctxt": 0 }, "value": "AB", "optional": false }, "typeParams": null }, "default": null } ] }, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8623, "end": 8642, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8628, "end": 8632, "ctxt": 0 }, "value": "Left", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8635, "end": 8641, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8635, "end": 8641, "ctxt": 0 }, "value": "left", "raw": "'left'" } } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8643, "end": 8685, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8648, "end": 8653, "ctxt": 0 }, "value": "Right", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsIntersectionType", "span": { "start": 8656, "end": 8684, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 8656, "end": 8663, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8656, "end": 8663, "ctxt": 0 }, "value": "right", "raw": "'right'" } }, { "type": "TsTypeLiteral", "span": { "start": 8666, "end": 8684, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 8668, "end": 8682, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8668, "end": 8673, "ctxt": 0 }, "value": "right", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8673, "end": 8682, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8675, "end": 8682, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8675, "end": 8682, "ctxt": 0 }, "value": "right", "raw": "'right'" } } }, "typeParams": null } ] } ] } }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8686, "end": 8713, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8691, "end": 8697, "ctxt": 0 }, "value": "Either", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 8700, "end": 8712, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 8700, "end": 8704, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8700, "end": 8704, "ctxt": 0 }, "value": "Left", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 8707, "end": 8712, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8707, "end": 8712, "ctxt": 0 }, "value": "Right", "optional": false }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8724, "end": 8735, "ctxt": 0 }, "value": "assertNever", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 8736, "end": 8744, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8736, "end": 8744, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8737, "end": 8744, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8739, "end": 8744, "ctxt": 0 }, "kind": "never" } } } } ], "decorators": [], "span": { "start": 8715, "end": 8786, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8753, "end": 8786, "ctxt": 0 }, "stmts": [ { "type": "ThrowStatement", "span": { "start": 8759, "end": 8784, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 8765, "end": 8783, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 8769, "end": 8774, "ctxt": 0 }, "value": "Error", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 8775, "end": 8782, "ctxt": 0 }, "value": "never", "raw": "'never'" } } ], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 8745, "end": 8752, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8747, "end": 8752, "ctxt": 0 }, "kind": "never" } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8797, "end": 8801, "ctxt": 0 }, "value": "fx20", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 8802, "end": 8815, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8802, "end": 8815, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8807, "end": 8815, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8809, "end": 8815, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8809, "end": 8815, "ctxt": 0 }, "value": "Either", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 8788, "end": 9010, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8817, "end": 9010, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 8823, "end": 9008, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 8827, "end": 8843, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 8827, "end": 8832, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "StringLiteral", "span": { "start": 8837, "end": 8843, "ctxt": 0 }, "value": "left", "raw": "'left'" } }, "consequent": { "type": "BlockStatement", "span": { "start": 8845, "end": 8887, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 8855, "end": 8881, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8861, "end": 8880, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8861, "end": 8864, "ctxt": 0 }, "value": "foo", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8864, "end": 8872, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8866, "end": 8872, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8866, "end": 8872, "ctxt": 0 }, "value": "left", "raw": "'left'" } } } }, "init": { "type": "Identifier", "span": { "start": 8875, "end": 8880, "ctxt": 0 }, "value": "value", "optional": false }, "definite": false } ] } ] }, "alternate": { "type": "IfStatement", "span": { "start": 8897, "end": 9008, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 8901, "end": 8918, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 8901, "end": 8906, "ctxt": 0 }, "value": "value", "optional": false }, "right": { "type": "StringLiteral", "span": { "start": 8911, "end": 8918, "ctxt": 0 }, "value": "right", "raw": "'right'" } }, "consequent": { "type": "BlockStatement", "span": { "start": 8920, "end": 8963, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 8930, "end": 8957, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 8936, "end": 8956, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 8936, "end": 8939, "ctxt": 0 }, "value": "bar", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8939, "end": 8948, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8941, "end": 8948, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8941, "end": 8948, "ctxt": 0 }, "value": "right", "raw": "'right'" } } } }, "init": { "type": "Identifier", "span": { "start": 8951, "end": 8956, "ctxt": 0 }, "value": "value", "optional": false }, "definite": false } ] } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 8973, "end": 9008, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 8983, "end": 9002, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 8983, "end": 9001, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 8983, "end": 8994, "ctxt": 0 }, "value": "assertNever", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 8995, "end": 9000, "ctxt": 0 }, "value": "value", "optional": false } } ], "typeArguments": null } } ] } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ], "interpreter": null }