{ "type": "Script", "span": { "start": 87, "end": 10237, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 87, "end": 195, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 101, "end": 194, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 101, "end": 102, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 102, "end": 194, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 104, "end": 194, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 104, "end": 113, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsTypeLiteral", "span": { "start": 116, "end": 194, "ctxt": 0 }, "members": [ { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 123, "end": 134, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 126, "end": 134, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 128, "end": 134, "ctxt": 0 }, "kind": "string" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 135, "end": 140, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 137, "end": 140, "ctxt": 0 }, "kind": "any" } }, "readonly": false, "static": false, "span": { "start": 122, "end": 141, "ctxt": 0 } }, { "type": "TsIndexSignature", "params": [ { "type": "Identifier", "span": { "start": 147, "end": 158, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 150, "end": 158, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 152, "end": 158, "ctxt": 0 }, "kind": "number" } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 159, "end": 164, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 161, "end": 164, "ctxt": 0 }, "kind": "any" } }, "readonly": false, "static": false, "span": { "start": 146, "end": 165, "ctxt": 0 } }, { "type": "TsCallSignatureDeclaration", "span": { "start": 170, "end": 192, "ctxt": 0 }, "params": [ { "type": "RestElement", "span": { "start": 171, "end": 185, "ctxt": 0 }, "rest": { "start": 171, "end": 174, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 174, "end": 178, "ctxt": 0 }, "value": "args", "optional": false, "typeAnnotation": null }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 178, "end": 185, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 180, "end": 185, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 180, "end": 183, "ctxt": 0 }, "kind": "any" } } } } ], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 186, "end": 191, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 188, "end": 191, "ctxt": 0 }, "kind": "any" } }, "typeParams": null } ] } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 197, "end": 211, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 201, "end": 210, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 201, "end": 202, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 202, "end": 210, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 204, "end": 210, "ctxt": 0 }, "kind": "number" } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 212, "end": 223, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 212, "end": 222, "ctxt": 0 }, "questionDotToken": { "start": 213, "end": 214, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 212, "end": 222, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 212, "end": 213, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 215, "end": 222, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 216, "end": 221, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 216, "end": 217, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 220, "end": 221, "ctxt": 0 }, "value": 1.0, "raw": "1" } } } } } }, { "type": "ExpressionStatement", "span": { "start": 224, "end": 237, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 224, "end": 236, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 224, "end": 234, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 224, "end": 225, "ctxt": 0 }, "value": "a", "optional": false }, "property": { "type": "Identifier", "span": { "start": 226, "end": 234, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } }, { "type": "VariableDeclaration", "span": { "start": 239, "end": 253, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 243, "end": 252, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 243, "end": 244, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 244, "end": 252, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 246, "end": 252, "ctxt": 0 }, "kind": "number" } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 254, "end": 266, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 254, "end": 265, "ctxt": 0 }, "object": { "type": "OptionalChainingExpression", "span": { "start": 254, "end": 258, "ctxt": 0 }, "questionDotToken": { "start": 255, "end": 256, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 254, "end": 258, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 254, "end": 255, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 257, "end": 258, "ctxt": 0 }, "value": "x", "optional": false } } }, "property": { "type": "Computed", "span": { "start": 258, "end": 265, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 259, "end": 264, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 259, "end": 260, "ctxt": 0 }, "value": "b", "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 263, "end": 264, "ctxt": 0 }, "value": 1.0, "raw": "1" } } } } }, { "type": "ExpressionStatement", "span": { "start": 267, "end": 280, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 267, "end": 279, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 267, "end": 277, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 267, "end": 268, "ctxt": 0 }, "value": "b", "optional": false }, "property": { "type": "Identifier", "span": { "start": 269, "end": 277, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } }, { "type": "VariableDeclaration", "span": { "start": 282, "end": 296, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 286, "end": 295, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 286, "end": 287, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 287, "end": 295, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 289, "end": 295, "ctxt": 0 }, "kind": "number" } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 297, "end": 307, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 297, "end": 307, "ctxt": 0 }, "questionDotToken": { "start": 298, "end": 299, "ctxt": 0 }, "base": { "type": "CallExpression", "span": { "start": 297, "end": 307, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 297, "end": 298, "ctxt": 0 }, "value": "o", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "AssignmentExpression", "span": { "start": 301, "end": 306, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 301, "end": 302, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 305, "end": 306, "ctxt": 0 }, "value": 1.0, "raw": "1" } } } ], "typeArguments": null } } }, { "type": "ExpressionStatement", "span": { "start": 308, "end": 321, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 308, "end": 320, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 308, "end": 318, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 308, "end": 309, "ctxt": 0 }, "value": "c", "optional": false }, "property": { "type": "Identifier", "span": { "start": 310, "end": 318, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } }, { "type": "VariableDeclaration", "span": { "start": 323, "end": 337, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 327, "end": 336, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 327, "end": 328, "ctxt": 0 }, "value": "d", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 328, "end": 336, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 330, "end": 336, "ctxt": 0 }, "kind": "number" } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 338, "end": 350, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 338, "end": 349, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 338, "end": 342, "ctxt": 0 }, "questionDotToken": { "start": 339, "end": 340, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 338, "end": 342, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 338, "end": 339, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 341, "end": 342, "ctxt": 0 }, "value": "x", "optional": false } } }, "arguments": [ { "spread": null, "expression": { "type": "AssignmentExpression", "span": { "start": 343, "end": 348, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 343, "end": 344, "ctxt": 0 }, "value": "d", "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 347, "end": 348, "ctxt": 0 }, "value": 1.0, "raw": "1" } } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 351, "end": 364, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 351, "end": 363, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 351, "end": 361, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 351, "end": 352, "ctxt": 0 }, "value": "d", "optional": false }, "property": { "type": "Identifier", "span": { "start": 353, "end": 361, "ctxt": 0 }, "value": "toString", "optional": false } }, "arguments": [], "typeArguments": null } }, { "type": "VariableDeclaration", "span": { "start": 385, "end": 440, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 399, "end": 439, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 399, "end": 400, "ctxt": 0 }, "value": "f", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 400, "end": 439, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 402, "end": 439, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 402, "end": 411, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsParenthesizedType", "span": { "start": 414, "end": 439, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 415, "end": 438, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 416, "end": 422, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 417, "end": 422, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 419, "end": 422, "ctxt": 0 }, "kind": "any" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 424, "end": 438, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 427, "end": 438, "ctxt": 0 }, "asserts": false, "paramName": { "type": "Identifier", "span": { "start": 427, "end": 428, "ctxt": 0 }, "value": "x", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 432, "end": 438, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 432, "end": 438, "ctxt": 0 }, "kind": "number" } } } } } } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 441, "end": 474, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 455, "end": 473, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 455, "end": 456, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 456, "end": 473, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 458, "end": 473, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 458, "end": 464, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 467, "end": 473, "ctxt": 0 }, "kind": "number" } ] } } }, "init": null, "definite": false } ] }, { "type": "IfStatement", "span": { "start": 475, "end": 584, "ctxt": 0 }, "test": { "type": "OptionalChainingExpression", "span": { "start": 479, "end": 485, "ctxt": 0 }, "questionDotToken": { "start": 480, "end": 481, "ctxt": 0 }, "base": { "type": "CallExpression", "span": { "start": 479, "end": 485, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 479, "end": 480, "ctxt": 0 }, "value": "f", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 483, "end": 484, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } }, "consequent": { "type": "BlockStatement", "span": { "start": 487, "end": 551, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 493, "end": 495, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 493, "end": 494, "ctxt": 0 }, "value": "x", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 510, "end": 512, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 510, "end": 511, "ctxt": 0 }, "value": "f", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 544, "end": 549, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 544, "end": 548, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 544, "end": 545, "ctxt": 0 }, "value": "f", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 546, "end": 547, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 557, "end": 584, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 563, "end": 565, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 563, "end": 564, "ctxt": 0 }, "value": "x", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 570, "end": 572, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 570, "end": 571, "ctxt": 0 }, "value": "f", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 577, "end": 582, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 577, "end": 581, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 577, "end": 578, "ctxt": 0 }, "value": "f", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 579, "end": 580, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } } ] } }, { "type": "ExpressionStatement", "span": { "start": 585, "end": 587, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 585, "end": 586, "ctxt": 0 }, "value": "x", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 588, "end": 590, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 588, "end": 589, "ctxt": 0 }, "value": "f", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 591, "end": 596, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 591, "end": 595, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 591, "end": 592, "ctxt": 0 }, "value": "f", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 593, "end": 594, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } }, { "type": "VariableDeclaration", "span": { "start": 598, "end": 656, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 612, "end": 655, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 612, "end": 614, "ctxt": 0 }, "value": "o2", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 614, "end": 655, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 616, "end": 655, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 616, "end": 643, "ctxt": 0 }, "members": [ { "type": "TsMethodSignature", "span": { "start": 618, "end": 641, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 618, "end": 619, "ctxt": 0 }, "value": "f", "optional": false }, "computed": false, "optional": false, "params": [ { "type": "Identifier", "span": { "start": 620, "end": 626, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 621, "end": 626, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 623, "end": 626, "ctxt": 0 }, "kind": "any" } } } ], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 627, "end": 640, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 629, "end": 640, "ctxt": 0 }, "asserts": false, "paramName": { "type": "Identifier", "span": { "start": 629, "end": 630, "ctxt": 0 }, "value": "x", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 634, "end": 640, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 634, "end": 640, "ctxt": 0 }, "kind": "number" } } } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 646, "end": 655, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "IfStatement", "span": { "start": 657, "end": 798, "ctxt": 0 }, "test": { "type": "CallExpression", "span": { "start": 661, "end": 669, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 661, "end": 666, "ctxt": 0 }, "questionDotToken": { "start": 663, "end": 664, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 661, "end": 666, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 661, "end": 663, "ctxt": 0 }, "value": "o2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 665, "end": 666, "ctxt": 0 }, "value": "f", "optional": false } } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 667, "end": 668, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null }, "consequent": { "type": "BlockStatement", "span": { "start": 671, "end": 753, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 677, "end": 679, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 677, "end": 678, "ctxt": 0 }, "value": "x", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 694, "end": 699, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 694, "end": 698, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 694, "end": 696, "ctxt": 0 }, "value": "o2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 697, "end": 698, "ctxt": 0 }, "value": "f", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 731, "end": 737, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 731, "end": 736, "ctxt": 0 }, "questionDotToken": { "start": 733, "end": 734, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 731, "end": 736, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 731, "end": 733, "ctxt": 0 }, "value": "o2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 735, "end": 736, "ctxt": 0 }, "value": "f", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 742, "end": 751, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 742, "end": 750, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 742, "end": 747, "ctxt": 0 }, "questionDotToken": { "start": 744, "end": 745, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 742, "end": 747, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 742, "end": 744, "ctxt": 0 }, "value": "o2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 746, "end": 747, "ctxt": 0 }, "value": "f", "optional": false } } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 748, "end": 749, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 759, "end": 798, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 765, "end": 767, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 765, "end": 766, "ctxt": 0 }, "value": "x", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 772, "end": 775, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 772, "end": 774, "ctxt": 0 }, "value": "o2", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 780, "end": 786, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 780, "end": 785, "ctxt": 0 }, "questionDotToken": { "start": 782, "end": 783, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 780, "end": 785, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 780, "end": 782, "ctxt": 0 }, "value": "o2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 784, "end": 785, "ctxt": 0 }, "value": "f", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 791, "end": 796, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 791, "end": 795, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 791, "end": 793, "ctxt": 0 }, "value": "o2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 794, "end": 795, "ctxt": 0 }, "value": "f", "optional": false } } } ] } }, { "type": "ExpressionStatement", "span": { "start": 799, "end": 801, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 799, "end": 800, "ctxt": 0 }, "value": "x", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 802, "end": 805, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 802, "end": 804, "ctxt": 0 }, "value": "o2", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 806, "end": 812, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 806, "end": 811, "ctxt": 0 }, "questionDotToken": { "start": 808, "end": 809, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 806, "end": 811, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 806, "end": 808, "ctxt": 0 }, "value": "o2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 810, "end": 811, "ctxt": 0 }, "value": "f", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 813, "end": 818, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 813, "end": 817, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 813, "end": 815, "ctxt": 0 }, "value": "o2", "optional": false }, "property": { "type": "Identifier", "span": { "start": 816, "end": 817, "ctxt": 0 }, "value": "f", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 820, "end": 892, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 834, "end": 891, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 834, "end": 836, "ctxt": 0 }, "value": "o3", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 836, "end": 891, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 838, "end": 891, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 838, "end": 857, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 840, "end": 845, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 840, "end": 841, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 841, "end": 844, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 843, "end": 844, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 843, "end": 844, "ctxt": 0 }, "value": 1.0, "raw": "1" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 846, "end": 855, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 846, "end": 847, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 847, "end": 855, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 849, "end": 855, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 860, "end": 879, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 862, "end": 867, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 862, "end": 863, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 863, "end": 866, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 865, "end": 866, "ctxt": 0 }, "literal": { "type": "NumericLiteral", "span": { "start": 865, "end": 866, "ctxt": 0 }, "value": 2.0, "raw": "2" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 868, "end": 877, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 868, "end": 869, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 869, "end": 877, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 871, "end": 877, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] }, { "type": "TsKeywordType", "span": { "start": 882, "end": 891, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "IfStatement", "span": { "start": 893, "end": 980, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 897, "end": 908, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 897, "end": 902, "ctxt": 0 }, "questionDotToken": { "start": 899, "end": 900, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 897, "end": 902, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 897, "end": 899, "ctxt": 0 }, "value": "o3", "optional": false }, "property": { "type": "Identifier", "span": { "start": 901, "end": 902, "ctxt": 0 }, "value": "x", "optional": false } } }, "right": { "type": "NumericLiteral", "span": { "start": 907, "end": 908, "ctxt": 0 }, "value": 1.0, "raw": "1" } }, "consequent": { "type": "BlockStatement", "span": { "start": 910, "end": 942, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 916, "end": 919, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 916, "end": 918, "ctxt": 0 }, "value": "o3", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 924, "end": 929, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 924, "end": 928, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 924, "end": 926, "ctxt": 0 }, "value": "o3", "optional": false }, "property": { "type": "Identifier", "span": { "start": 927, "end": 928, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 934, "end": 940, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 934, "end": 939, "ctxt": 0 }, "questionDotToken": { "start": 936, "end": 937, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 934, "end": 939, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 934, "end": 936, "ctxt": 0 }, "value": "o3", "optional": false }, "property": { "type": "Identifier", "span": { "start": 938, "end": 939, "ctxt": 0 }, "value": "x", "optional": false } } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 948, "end": 980, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 954, "end": 957, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 954, "end": 956, "ctxt": 0 }, "value": "o3", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 962, "end": 968, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 962, "end": 967, "ctxt": 0 }, "questionDotToken": { "start": 964, "end": 965, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 962, "end": 967, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 962, "end": 964, "ctxt": 0 }, "value": "o3", "optional": false }, "property": { "type": "Identifier", "span": { "start": 966, "end": 967, "ctxt": 0 }, "value": "x", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 973, "end": 978, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 973, "end": 977, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 973, "end": 975, "ctxt": 0 }, "value": "o3", "optional": false }, "property": { "type": "Identifier", "span": { "start": 976, "end": 977, "ctxt": 0 }, "value": "x", "optional": false } } } ] } }, { "type": "ExpressionStatement", "span": { "start": 981, "end": 984, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 981, "end": 983, "ctxt": 0 }, "value": "o3", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 985, "end": 991, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 985, "end": 990, "ctxt": 0 }, "questionDotToken": { "start": 987, "end": 988, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 985, "end": 990, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 985, "end": 987, "ctxt": 0 }, "value": "o3", "optional": false }, "property": { "type": "Identifier", "span": { "start": 989, "end": 990, "ctxt": 0 }, "value": "x", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 992, "end": 997, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 992, "end": 996, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 992, "end": 994, "ctxt": 0 }, "value": "o3", "optional": false }, "property": { "type": "Identifier", "span": { "start": 995, "end": 996, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 999, "end": 1040, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1013, "end": 1039, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1013, "end": 1015, "ctxt": 0 }, "value": "o4", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1015, "end": 1039, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1017, "end": 1039, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1019, "end": 1037, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1019, "end": 1020, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1021, "end": 1037, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1023, "end": 1037, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1025, "end": 1035, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1025, "end": 1026, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1026, "end": 1035, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1028, "end": 1035, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "IfStatement", "span": { "start": 1041, "end": 1170, "ctxt": 0 }, "test": { "type": "OptionalChainingExpression", "span": { "start": 1045, "end": 1052, "ctxt": 0 }, "questionDotToken": { "start": 1049, "end": 1050, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1045, "end": 1052, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1045, "end": 1049, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1045, "end": 1047, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1048, "end": 1049, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1051, "end": 1052, "ctxt": 0 }, "value": "y", "optional": false } } }, "consequent": { "type": "BlockStatement", "span": { "start": 1054, "end": 1126, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1060, "end": 1065, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1060, "end": 1064, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1060, "end": 1062, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1063, "end": 1064, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1088, "end": 1095, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1088, "end": 1094, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1088, "end": 1092, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1088, "end": 1090, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1091, "end": 1092, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1093, "end": 1094, "ctxt": 0 }, "value": "y", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1108, "end": 1116, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1108, "end": 1115, "ctxt": 0 }, "questionDotToken": { "start": 1112, "end": 1113, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1108, "end": 1115, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1108, "end": 1112, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1108, "end": 1110, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1111, "end": 1112, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1114, "end": 1115, "ctxt": 0 }, "value": "y", "optional": false } } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1132, "end": 1170, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1138, "end": 1143, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1138, "end": 1142, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1138, "end": 1140, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1141, "end": 1142, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1148, "end": 1156, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1148, "end": 1155, "ctxt": 0 }, "questionDotToken": { "start": 1152, "end": 1153, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1148, "end": 1155, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1148, "end": 1152, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1148, "end": 1150, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1151, "end": 1152, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1154, "end": 1155, "ctxt": 0 }, "value": "y", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1161, "end": 1168, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1161, "end": 1167, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1161, "end": 1165, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1161, "end": 1163, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1164, "end": 1165, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1166, "end": 1167, "ctxt": 0 }, "value": "y", "optional": false } } } ] } }, { "type": "ExpressionStatement", "span": { "start": 1171, "end": 1176, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1171, "end": 1175, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1171, "end": 1173, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1174, "end": 1175, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1177, "end": 1185, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1177, "end": 1184, "ctxt": 0 }, "questionDotToken": { "start": 1181, "end": 1182, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1177, "end": 1184, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1177, "end": 1181, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1177, "end": 1179, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1180, "end": 1181, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1183, "end": 1184, "ctxt": 0 }, "value": "y", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1186, "end": 1193, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1186, "end": 1192, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1186, "end": 1190, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1186, "end": 1188, "ctxt": 0 }, "value": "o4", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1189, "end": 1190, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1191, "end": 1192, "ctxt": 0 }, "value": "y", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1195, "end": 1251, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1209, "end": 1250, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1209, "end": 1211, "ctxt": 0 }, "value": "o5", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1211, "end": 1250, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1213, "end": 1250, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1215, "end": 1248, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1215, "end": 1216, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1217, "end": 1248, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1219, "end": 1248, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1221, "end": 1246, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1221, "end": 1222, "ctxt": 0 }, "value": "y", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1222, "end": 1246, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1224, "end": 1246, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1226, "end": 1244, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1226, "end": 1227, "ctxt": 0 }, "value": "z", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1228, "end": 1244, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 1230, "end": 1244, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 1232, "end": 1242, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1232, "end": 1233, "ctxt": 0 }, "value": "w", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1233, "end": 1242, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1235, "end": 1242, "ctxt": 0 }, "kind": "boolean" } }, "typeParams": null } ] } }, "typeParams": null } ] } }, "typeParams": null } ] } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "IfStatement", "span": { "start": 1252, "end": 1502, "ctxt": 0 }, "test": { "type": "OptionalChainingExpression", "span": { "start": 1256, "end": 1268, "ctxt": 0 }, "questionDotToken": { "start": 1265, "end": 1266, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1256, "end": 1268, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1256, "end": 1265, "ctxt": 0 }, "object": { "type": "OptionalChainingExpression", "span": { "start": 1256, "end": 1263, "ctxt": 0 }, "questionDotToken": { "start": 1260, "end": 1261, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1256, "end": 1263, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1256, "end": 1260, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1256, "end": 1258, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1259, "end": 1260, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1262, "end": 1263, "ctxt": 0 }, "value": "y", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 1264, "end": 1265, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1267, "end": 1268, "ctxt": 0 }, "value": "w", "optional": false } } }, "consequent": { "type": "BlockStatement", "span": { "start": 1270, "end": 1409, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1276, "end": 1281, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1276, "end": 1280, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1276, "end": 1278, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1279, "end": 1280, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1286, "end": 1293, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1286, "end": 1292, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1286, "end": 1290, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1286, "end": 1288, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1289, "end": 1290, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1291, "end": 1292, "ctxt": 0 }, "value": "y", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1298, "end": 1307, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1298, "end": 1306, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1298, "end": 1304, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1298, "end": 1302, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1298, "end": 1300, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1301, "end": 1302, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1303, "end": 1304, "ctxt": 0 }, "value": "y", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1305, "end": 1306, "ctxt": 0 }, "value": "z", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1312, "end": 1323, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1312, "end": 1322, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1312, "end": 1320, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1312, "end": 1318, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1312, "end": 1316, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1312, "end": 1314, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1315, "end": 1316, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1317, "end": 1318, "ctxt": 0 }, "value": "y", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1319, "end": 1320, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1321, "end": 1322, "ctxt": 0 }, "value": "w", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1336, "end": 1348, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1336, "end": 1347, "ctxt": 0 }, "questionDotToken": { "start": 1344, "end": 1345, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1336, "end": 1347, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1336, "end": 1344, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1336, "end": 1342, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1336, "end": 1340, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1336, "end": 1338, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1339, "end": 1340, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1341, "end": 1342, "ctxt": 0 }, "value": "y", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1343, "end": 1344, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1346, "end": 1347, "ctxt": 0 }, "value": "w", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1361, "end": 1373, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1361, "end": 1372, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1361, "end": 1370, "ctxt": 0 }, "object": { "type": "OptionalChainingExpression", "span": { "start": 1361, "end": 1368, "ctxt": 0 }, "questionDotToken": { "start": 1365, "end": 1366, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1361, "end": 1368, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1361, "end": 1365, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1361, "end": 1363, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1364, "end": 1365, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1367, "end": 1368, "ctxt": 0 }, "value": "y", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 1369, "end": 1370, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1371, "end": 1372, "ctxt": 0 }, "value": "w", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1386, "end": 1399, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1386, "end": 1398, "ctxt": 0 }, "questionDotToken": { "start": 1395, "end": 1396, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1386, "end": 1398, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1386, "end": 1395, "ctxt": 0 }, "object": { "type": "OptionalChainingExpression", "span": { "start": 1386, "end": 1393, "ctxt": 0 }, "questionDotToken": { "start": 1390, "end": 1391, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1386, "end": 1393, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1386, "end": 1390, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1386, "end": 1388, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1389, "end": 1390, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1392, "end": 1393, "ctxt": 0 }, "value": "y", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 1394, "end": 1395, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1397, "end": 1398, "ctxt": 0 }, "value": "w", "optional": false } } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1415, "end": 1502, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1421, "end": 1426, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1421, "end": 1425, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1421, "end": 1423, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1424, "end": 1425, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1431, "end": 1439, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1431, "end": 1438, "ctxt": 0 }, "questionDotToken": { "start": 1435, "end": 1436, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1431, "end": 1438, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1431, "end": 1435, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1431, "end": 1433, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1434, "end": 1435, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1437, "end": 1438, "ctxt": 0 }, "value": "y", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1444, "end": 1454, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1444, "end": 1453, "ctxt": 0 }, "object": { "type": "OptionalChainingExpression", "span": { "start": 1444, "end": 1451, "ctxt": 0 }, "questionDotToken": { "start": 1448, "end": 1449, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1444, "end": 1451, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1444, "end": 1448, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1444, "end": 1446, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1447, "end": 1448, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1450, "end": 1451, "ctxt": 0 }, "value": "y", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 1452, "end": 1453, "ctxt": 0 }, "value": "z", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1459, "end": 1472, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1459, "end": 1471, "ctxt": 0 }, "questionDotToken": { "start": 1468, "end": 1469, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1459, "end": 1471, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1459, "end": 1468, "ctxt": 0 }, "object": { "type": "OptionalChainingExpression", "span": { "start": 1459, "end": 1466, "ctxt": 0 }, "questionDotToken": { "start": 1463, "end": 1464, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1459, "end": 1466, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1459, "end": 1463, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1459, "end": 1461, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1462, "end": 1463, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1465, "end": 1466, "ctxt": 0 }, "value": "y", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 1467, "end": 1468, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1470, "end": 1471, "ctxt": 0 }, "value": "w", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1477, "end": 1484, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1477, "end": 1483, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1477, "end": 1481, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1477, "end": 1479, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1480, "end": 1481, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1482, "end": 1483, "ctxt": 0 }, "value": "y", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1489, "end": 1500, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1489, "end": 1499, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1489, "end": 1497, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1489, "end": 1495, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1489, "end": 1493, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1489, "end": 1491, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1492, "end": 1493, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1494, "end": 1495, "ctxt": 0 }, "value": "y", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1496, "end": 1497, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1498, "end": 1499, "ctxt": 0 }, "value": "w", "optional": false } } } ] } }, { "type": "ExpressionStatement", "span": { "start": 1503, "end": 1508, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1503, "end": 1507, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1503, "end": 1505, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1506, "end": 1507, "ctxt": 0 }, "value": "x", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1509, "end": 1517, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1509, "end": 1516, "ctxt": 0 }, "questionDotToken": { "start": 1513, "end": 1514, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1509, "end": 1516, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1509, "end": 1513, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1509, "end": 1511, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1512, "end": 1513, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1515, "end": 1516, "ctxt": 0 }, "value": "y", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1518, "end": 1528, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1518, "end": 1527, "ctxt": 0 }, "object": { "type": "OptionalChainingExpression", "span": { "start": 1518, "end": 1525, "ctxt": 0 }, "questionDotToken": { "start": 1522, "end": 1523, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1518, "end": 1525, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1518, "end": 1522, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1518, "end": 1520, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1521, "end": 1522, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1524, "end": 1525, "ctxt": 0 }, "value": "y", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 1526, "end": 1527, "ctxt": 0 }, "value": "z", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1529, "end": 1542, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1529, "end": 1541, "ctxt": 0 }, "questionDotToken": { "start": 1538, "end": 1539, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1529, "end": 1541, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1529, "end": 1538, "ctxt": 0 }, "object": { "type": "OptionalChainingExpression", "span": { "start": 1529, "end": 1536, "ctxt": 0 }, "questionDotToken": { "start": 1533, "end": 1534, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1529, "end": 1536, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1529, "end": 1533, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1529, "end": 1531, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1532, "end": 1533, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1535, "end": 1536, "ctxt": 0 }, "value": "y", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 1537, "end": 1538, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1540, "end": 1541, "ctxt": 0 }, "value": "w", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1543, "end": 1550, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1543, "end": 1549, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1543, "end": 1547, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1543, "end": 1545, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1546, "end": 1547, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1548, "end": 1549, "ctxt": 0 }, "value": "y", "optional": false } } }, { "type": "ExpressionStatement", "span": { "start": 1551, "end": 1562, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1551, "end": 1561, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1551, "end": 1559, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1551, "end": 1557, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 1551, "end": 1555, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1551, "end": 1553, "ctxt": 0 }, "value": "o5", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1554, "end": 1555, "ctxt": 0 }, "value": "x", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1556, "end": 1557, "ctxt": 0 }, "value": "y", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1558, "end": 1559, "ctxt": 0 }, "value": "z", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 1560, "end": 1561, "ctxt": 0 }, "value": "w", "optional": false } } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1564, "end": 1608, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1574, "end": 1578, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 1579, "end": 1608, "ctxt": 0 }, "body": [ { "type": "TsMethodSignature", "span": { "start": 1585, "end": 1606, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1585, "end": 1586, "ctxt": 0 }, "value": "f", "optional": false }, "computed": false, "optional": false, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 1588, "end": 1605, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 1590, "end": 1605, "ctxt": 0 }, "asserts": false, "paramName": { "type": "TsThisType", "span": { "start": 1590, "end": 1594, "ctxt": 0 } }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1598, "end": 1605, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1598, "end": 1605, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1598, "end": 1605, "ctxt": 0 }, "value": "Derived", "optional": false }, "typeParams": null } } } }, "typeParams": null } ] } }, { "type": "TsInterfaceDeclaration", "span": { "start": 1610, "end": 1659, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1620, "end": 1627, "ctxt": 0 }, "value": "Derived", "optional": false }, "declare": false, "typeParams": null, "extends": [ { "type": "TsExpressionWithTypeArguments", "span": { "start": 1636, "end": 1640, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1636, "end": 1640, "ctxt": 0 }, "value": "Base", "optional": false }, "typeArguments": null } ], "body": { "type": "TsInterfaceBody", "span": { "start": 1641, "end": 1659, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 1647, "end": 1657, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 1647, "end": 1648, "ctxt": 0 }, "value": "x", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1648, "end": 1656, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1650, "end": 1656, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 1661, "end": 1696, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1675, "end": 1695, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1675, "end": 1677, "ctxt": 0 }, "value": "o6", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1677, "end": 1695, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1679, "end": 1695, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 1679, "end": 1683, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1679, "end": 1683, "ctxt": 0 }, "value": "Base", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 1686, "end": 1695, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "IfStatement", "span": { "start": 1697, "end": 1780, "ctxt": 0 }, "test": { "type": "CallExpression", "span": { "start": 1701, "end": 1708, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 1701, "end": 1706, "ctxt": 0 }, "questionDotToken": { "start": 1703, "end": 1704, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1701, "end": 1706, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1701, "end": 1703, "ctxt": 0 }, "value": "o6", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1705, "end": 1706, "ctxt": 0 }, "value": "f", "optional": false } } }, "arguments": [], "typeArguments": null }, "consequent": { "type": "BlockStatement", "span": { "start": 1710, "end": 1742, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1716, "end": 1719, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1716, "end": 1718, "ctxt": 0 }, "value": "o6", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 1735, "end": 1740, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1735, "end": 1739, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1735, "end": 1737, "ctxt": 0 }, "value": "o6", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1738, "end": 1739, "ctxt": 0 }, "value": "f", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 1748, "end": 1780, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1754, "end": 1757, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1754, "end": 1756, "ctxt": 0 }, "value": "o6", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 1762, "end": 1768, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1762, "end": 1767, "ctxt": 0 }, "questionDotToken": { "start": 1764, "end": 1765, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1762, "end": 1767, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1762, "end": 1764, "ctxt": 0 }, "value": "o6", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1766, "end": 1767, "ctxt": 0 }, "value": "f", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1773, "end": 1778, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1773, "end": 1777, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1773, "end": 1775, "ctxt": 0 }, "value": "o6", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1776, "end": 1777, "ctxt": 0 }, "value": "f", "optional": false } } } ] } }, { "type": "ExpressionStatement", "span": { "start": 1781, "end": 1784, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 1781, "end": 1783, "ctxt": 0 }, "value": "o6", "optional": false } }, { "type": "ExpressionStatement", "span": { "start": 1785, "end": 1791, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 1785, "end": 1790, "ctxt": 0 }, "questionDotToken": { "start": 1787, "end": 1788, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 1785, "end": 1790, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1785, "end": 1787, "ctxt": 0 }, "value": "o6", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1789, "end": 1790, "ctxt": 0 }, "value": "f", "optional": false } } } }, { "type": "ExpressionStatement", "span": { "start": 1792, "end": 1797, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 1792, "end": 1796, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 1792, "end": 1794, "ctxt": 0 }, "value": "o6", "optional": false }, "property": { "type": "Identifier", "span": { "start": 1795, "end": 1796, "ctxt": 0 }, "value": "f", "optional": false } } }, { "type": "VariableDeclaration", "span": { "start": 1810, "end": 1884, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1824, "end": 1883, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1824, "end": 1833, "ctxt": 0 }, "value": "isDefined", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1833, "end": 1883, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1835, "end": 1883, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1839, "end": 1847, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1844, "end": 1847, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1846, "end": 1847, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1846, "end": 1847, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } ], "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 1835, "end": 1838, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 1836, "end": 1837, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 1836, "end": 1837, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1849, "end": 1883, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 1852, "end": 1883, "ctxt": 0 }, "asserts": true, "paramName": { "type": "Identifier", "span": { "start": 1860, "end": 1865, "ctxt": 0 }, "value": "value", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1869, "end": 1883, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 1869, "end": 1883, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1869, "end": 1880, "ctxt": 0 }, "value": "NonNullable", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 1880, "end": 1883, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 1881, "end": 1882, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 1881, "end": 1882, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1885, "end": 1953, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1899, "end": 1952, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1899, "end": 1907, "ctxt": 0 }, "value": "isString", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1907, "end": 1952, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1909, "end": 1952, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1910, "end": 1924, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1915, "end": 1924, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1917, "end": 1924, "ctxt": 0 }, "kind": "unknown" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1926, "end": 1952, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 1929, "end": 1952, "ctxt": 0 }, "asserts": true, "paramName": { "type": "Identifier", "span": { "start": 1937, "end": 1942, "ctxt": 0 }, "value": "value", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1946, "end": 1952, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1946, "end": 1952, "ctxt": 0 }, "kind": "string" } } } } } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1954, "end": 2041, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1968, "end": 2040, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1968, "end": 1981, "ctxt": 0 }, "value": "maybeIsString", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1981, "end": 2040, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 1983, "end": 2040, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 1983, "end": 1992, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsParenthesizedType", "span": { "start": 1995, "end": 2040, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1996, "end": 2039, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1997, "end": 2011, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2002, "end": 2011, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2004, "end": 2011, "ctxt": 0 }, "kind": "unknown" } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2013, "end": 2039, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 2016, "end": 2039, "ctxt": 0 }, "asserts": true, "paramName": { "type": "Identifier", "span": { "start": 2024, "end": 2029, "ctxt": 0 }, "value": "value", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2033, "end": 2039, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2033, "end": 2039, "ctxt": 0 }, "kind": "string" } } } } } } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 2042, "end": 2094, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 2056, "end": 2093, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 2056, "end": 2066, "ctxt": 0 }, "value": "maybeNever", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2066, "end": 2093, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2068, "end": 2093, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 2068, "end": 2077, "ctxt": 0 }, "kind": "undefined" }, { "type": "TsParenthesizedType", "span": { "start": 2080, "end": 2093, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 2081, "end": 2092, "ctxt": 0 }, "params": [], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2084, "end": 2092, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2087, "end": 2092, "ctxt": 0 }, "kind": "never" } } } } ] } } }, "init": null, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2105, "end": 2108, "ctxt": 0 }, "value": "f01", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2109, "end": 2119, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2109, "end": 2119, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2110, "end": 2119, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2112, "end": 2119, "ctxt": 0 }, "kind": "unknown" } } } } ], "decorators": [], "span": { "start": 2096, "end": 2401, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2121, "end": 2401, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 2127, "end": 2180, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 2131, "end": 2137, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 2132, "end": 2137, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 2133, "end": 2137, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2139, "end": 2180, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2149, "end": 2163, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 2149, "end": 2162, "ctxt": 0 }, "questionDotToken": { "start": 2157, "end": 2158, "ctxt": 0 }, "base": { "type": "CallExpression", "span": { "start": 2149, "end": 2162, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2149, "end": 2157, "ctxt": 0 }, "value": "isString", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2160, "end": 2161, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } } }, { "type": "ExpressionStatement", "span": { "start": 2172, "end": 2174, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2172, "end": 2173, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2185, "end": 2243, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 2189, "end": 2195, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 2190, "end": 2195, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 2191, "end": 2195, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2197, "end": 2243, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2207, "end": 2226, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 2207, "end": 2225, "ctxt": 0 }, "questionDotToken": { "start": 2220, "end": 2221, "ctxt": 0 }, "base": { "type": "CallExpression", "span": { "start": 2207, "end": 2225, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2207, "end": 2220, "ctxt": 0 }, "value": "maybeIsString", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2223, "end": 2224, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } } }, { "type": "ExpressionStatement", "span": { "start": 2235, "end": 2237, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2235, "end": 2236, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2248, "end": 2340, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 2252, "end": 2258, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 2253, "end": 2258, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 2254, "end": 2258, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2260, "end": 2340, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2270, "end": 2295, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 2270, "end": 2294, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2270, "end": 2279, "ctxt": 0 }, "value": "isDefined", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2280, "end": 2293, "ctxt": 0 }, "value": "maybeIsString", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 2304, "end": 2323, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 2304, "end": 2322, "ctxt": 0 }, "questionDotToken": { "start": 2317, "end": 2318, "ctxt": 0 }, "base": { "type": "CallExpression", "span": { "start": 2304, "end": 2322, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2304, "end": 2317, "ctxt": 0 }, "value": "maybeIsString", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 2320, "end": 2321, "ctxt": 0 }, "value": "x", "optional": false } } ], "typeArguments": null } } }, { "type": "ExpressionStatement", "span": { "start": 2332, "end": 2334, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2332, "end": 2333, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2345, "end": 2399, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 2349, "end": 2355, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 2350, "end": 2355, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 2351, "end": 2355, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 2357, "end": 2399, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2367, "end": 2382, "ctxt": 0 }, "expression": { "type": "OptionalChainingExpression", "span": { "start": 2367, "end": 2381, "ctxt": 0 }, "questionDotToken": { "start": 2377, "end": 2378, "ctxt": 0 }, "base": { "type": "CallExpression", "span": { "start": 2367, "end": 2381, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 2367, "end": 2377, "ctxt": 0 }, "value": "maybeNever", "optional": false }, "arguments": [], "typeArguments": null } } }, { "type": "ExpressionStatement", "span": { "start": 2391, "end": 2393, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 2391, "end": 2392, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 2403, "end": 2469, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 2408, "end": 2413, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 2416, "end": 2468, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 2418, "end": 2439, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2418, "end": 2421, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2421, "end": 2438, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2423, "end": 2438, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 2423, "end": 2429, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 2432, "end": 2438, "ctxt": 0 }, "kind": "number" } ] } }, "typeParams": null }, { "type": "TsMethodSignature", "span": { "start": 2440, "end": 2454, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2440, "end": 2443, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "params": [], "typeAnn": { "type": "TsTypeAnnotation", "span": { "start": 2445, "end": 2453, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2447, "end": 2453, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 2455, "end": 2466, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 2455, "end": 2458, "ctxt": 0 }, "value": "baz", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2458, "end": 2466, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2460, "end": 2466, "ctxt": 0 }, "kind": "object" } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2480, "end": 2483, "ctxt": 0 }, "value": "f10", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2484, "end": 2504, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2484, "end": 2504, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2485, "end": 2504, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2487, "end": 2504, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2487, "end": 2492, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2487, "end": 2492, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 2495, "end": 2504, "ctxt": 0 }, "kind": "undefined" } ] } } } }, { "type": "Parameter", "span": { "start": 2506, "end": 2519, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2506, "end": 2519, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2511, "end": 2519, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2513, "end": 2519, "ctxt": 0 }, "kind": "number" } } } } ], "decorators": [], "span": { "start": 2471, "end": 2833, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2521, "end": 2833, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 2527, "end": 2571, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2531, "end": 2547, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 2531, "end": 2537, "ctxt": 0 }, "questionDotToken": { "start": 2532, "end": 2533, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2531, "end": 2537, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2531, "end": 2532, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2534, "end": 2537, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 2542, "end": 2547, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2549, "end": 2571, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2559, "end": 2565, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2559, "end": 2564, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2559, "end": 2560, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2561, "end": 2564, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2576, "end": 2627, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2580, "end": 2600, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 2580, "end": 2590, "ctxt": 0 }, "questionDotToken": { "start": 2581, "end": 2582, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2580, "end": 2590, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2580, "end": 2581, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 2583, "end": 2590, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 2584, "end": 2589, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 2595, "end": 2600, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2602, "end": 2627, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2612, "end": 2621, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2612, "end": 2620, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2612, "end": 2613, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 2613, "end": 2620, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 2614, "end": 2619, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2632, "end": 2678, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2636, "end": 2654, "ctxt": 0 }, "operator": "===", "left": { "type": "CallExpression", "span": { "start": 2636, "end": 2644, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 2636, "end": 2642, "ctxt": 0 }, "questionDotToken": { "start": 2637, "end": 2638, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2636, "end": 2642, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2636, "end": 2637, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2639, "end": 2642, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 2649, "end": 2654, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2656, "end": 2678, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2666, "end": 2672, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2666, "end": 2671, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2666, "end": 2667, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2668, "end": 2671, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2683, "end": 2726, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2687, "end": 2702, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 2687, "end": 2693, "ctxt": 0 }, "questionDotToken": { "start": 2688, "end": 2689, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2687, "end": 2693, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2687, "end": 2688, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2690, "end": 2693, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 2697, "end": 2702, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2704, "end": 2726, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2714, "end": 2720, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2714, "end": 2719, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2714, "end": 2715, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2716, "end": 2719, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2731, "end": 2781, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2735, "end": 2754, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 2735, "end": 2745, "ctxt": 0 }, "questionDotToken": { "start": 2736, "end": 2737, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2735, "end": 2745, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2735, "end": 2736, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 2738, "end": 2745, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 2739, "end": 2744, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 2749, "end": 2754, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2756, "end": 2781, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2766, "end": 2775, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2766, "end": 2774, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2766, "end": 2767, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 2767, "end": 2774, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 2768, "end": 2773, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2786, "end": 2831, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2790, "end": 2807, "ctxt": 0 }, "operator": "==", "left": { "type": "CallExpression", "span": { "start": 2790, "end": 2798, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 2790, "end": 2796, "ctxt": 0 }, "questionDotToken": { "start": 2791, "end": 2792, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2790, "end": 2796, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2790, "end": 2791, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2793, "end": 2796, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 2802, "end": 2807, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2809, "end": 2831, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2819, "end": 2825, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2819, "end": 2824, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2819, "end": 2820, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2821, "end": 2824, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 2844, "end": 2847, "ctxt": 0 }, "value": "f11", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 2848, "end": 2863, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2848, "end": 2863, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2849, "end": 2863, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 2851, "end": 2863, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 2851, "end": 2856, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 2851, "end": 2856, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 2859, "end": 2863, "ctxt": 0 }, "kind": "null" } ] } } } }, { "type": "Parameter", "span": { "start": 2865, "end": 2878, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 2865, "end": 2878, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 2870, "end": 2878, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 2872, "end": 2878, "ctxt": 0 }, "kind": "number" } } } } ], "decorators": [], "span": { "start": 2835, "end": 3192, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 2880, "end": 3192, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 2886, "end": 2930, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2890, "end": 2906, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 2890, "end": 2896, "ctxt": 0 }, "questionDotToken": { "start": 2891, "end": 2892, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2890, "end": 2896, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2890, "end": 2891, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2893, "end": 2896, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 2901, "end": 2906, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2908, "end": 2930, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2918, "end": 2924, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2918, "end": 2923, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2918, "end": 2919, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2920, "end": 2923, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2935, "end": 2986, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2939, "end": 2959, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 2939, "end": 2949, "ctxt": 0 }, "questionDotToken": { "start": 2940, "end": 2941, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2939, "end": 2949, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2939, "end": 2940, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 2942, "end": 2949, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 2943, "end": 2948, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 2954, "end": 2959, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 2961, "end": 2986, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 2971, "end": 2980, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 2971, "end": 2979, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2971, "end": 2972, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 2972, "end": 2979, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 2973, "end": 2978, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 2991, "end": 3037, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 2995, "end": 3013, "ctxt": 0 }, "operator": "===", "left": { "type": "CallExpression", "span": { "start": 2995, "end": 3003, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 2995, "end": 3001, "ctxt": 0 }, "questionDotToken": { "start": 2996, "end": 2997, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 2995, "end": 3001, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 2995, "end": 2996, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 2998, "end": 3001, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 3008, "end": 3013, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3015, "end": 3037, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3025, "end": 3031, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3025, "end": 3030, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3025, "end": 3026, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3027, "end": 3030, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3042, "end": 3085, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3046, "end": 3061, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 3046, "end": 3052, "ctxt": 0 }, "questionDotToken": { "start": 3047, "end": 3048, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3046, "end": 3052, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3046, "end": 3047, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3049, "end": 3052, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 3056, "end": 3061, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3063, "end": 3085, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3073, "end": 3079, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3073, "end": 3078, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3073, "end": 3074, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3075, "end": 3078, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3090, "end": 3140, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3094, "end": 3113, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 3094, "end": 3104, "ctxt": 0 }, "questionDotToken": { "start": 3095, "end": 3096, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3094, "end": 3104, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3094, "end": 3095, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3097, "end": 3104, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3098, "end": 3103, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 3108, "end": 3113, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3115, "end": 3140, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3125, "end": 3134, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3125, "end": 3133, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3125, "end": 3126, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3126, "end": 3133, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3127, "end": 3132, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3145, "end": 3190, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3149, "end": 3166, "ctxt": 0 }, "operator": "==", "left": { "type": "CallExpression", "span": { "start": 3149, "end": 3157, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 3149, "end": 3155, "ctxt": 0 }, "questionDotToken": { "start": 3150, "end": 3151, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3149, "end": 3155, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3149, "end": 3150, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3152, "end": 3155, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 3161, "end": 3166, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3168, "end": 3190, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3178, "end": 3184, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3178, "end": 3183, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3178, "end": 3179, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3180, "end": 3183, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3203, "end": 3206, "ctxt": 0 }, "value": "f12", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3207, "end": 3227, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3207, "end": 3227, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3208, "end": 3227, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 3210, "end": 3227, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 3210, "end": 3215, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3210, "end": 3215, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 3218, "end": 3227, "ctxt": 0 }, "kind": "undefined" } ] } } } }, { "type": "Parameter", "span": { "start": 3229, "end": 3254, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3229, "end": 3254, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3234, "end": 3254, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 3236, "end": 3254, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 3236, "end": 3242, "ctxt": 0 }, "kind": "number" }, { "type": "TsKeywordType", "span": { "start": 3245, "end": 3254, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 3194, "end": 3628, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3256, "end": 3628, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 3262, "end": 3316, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3266, "end": 3282, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 3266, "end": 3272, "ctxt": 0 }, "questionDotToken": { "start": 3267, "end": 3268, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3266, "end": 3272, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3266, "end": 3267, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3269, "end": 3272, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 3277, "end": 3282, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3284, "end": 3316, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3294, "end": 3300, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3294, "end": 3299, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3294, "end": 3295, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3296, "end": 3299, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3321, "end": 3382, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3325, "end": 3345, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 3325, "end": 3335, "ctxt": 0 }, "questionDotToken": { "start": 3326, "end": 3327, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3325, "end": 3335, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3325, "end": 3326, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3328, "end": 3335, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3329, "end": 3334, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 3340, "end": 3345, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3347, "end": 3382, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3357, "end": 3366, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3357, "end": 3365, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3357, "end": 3358, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3358, "end": 3365, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3359, "end": 3364, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3387, "end": 3443, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3391, "end": 3409, "ctxt": 0 }, "operator": "===", "left": { "type": "CallExpression", "span": { "start": 3391, "end": 3399, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 3391, "end": 3397, "ctxt": 0 }, "questionDotToken": { "start": 3392, "end": 3393, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3391, "end": 3397, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3391, "end": 3392, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3394, "end": 3397, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 3404, "end": 3409, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3411, "end": 3443, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3421, "end": 3427, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3421, "end": 3426, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3421, "end": 3422, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3423, "end": 3426, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3448, "end": 3501, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3452, "end": 3467, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 3452, "end": 3458, "ctxt": 0 }, "questionDotToken": { "start": 3453, "end": 3454, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3452, "end": 3458, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3452, "end": 3453, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3455, "end": 3458, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 3462, "end": 3467, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3469, "end": 3501, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3479, "end": 3485, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3479, "end": 3484, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3479, "end": 3480, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3481, "end": 3484, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3506, "end": 3566, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3510, "end": 3529, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 3510, "end": 3520, "ctxt": 0 }, "questionDotToken": { "start": 3511, "end": 3512, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3510, "end": 3520, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3510, "end": 3511, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3513, "end": 3520, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3514, "end": 3519, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 3524, "end": 3529, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3531, "end": 3566, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3541, "end": 3550, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3541, "end": 3549, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3541, "end": 3542, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3542, "end": 3549, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3543, "end": 3548, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3571, "end": 3626, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3575, "end": 3592, "ctxt": 0 }, "operator": "==", "left": { "type": "CallExpression", "span": { "start": 3575, "end": 3583, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 3575, "end": 3581, "ctxt": 0 }, "questionDotToken": { "start": 3576, "end": 3577, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3575, "end": 3581, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3575, "end": 3576, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3578, "end": 3581, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 3587, "end": 3592, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3594, "end": 3626, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3604, "end": 3610, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3604, "end": 3609, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3604, "end": 3605, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3606, "end": 3609, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 3639, "end": 3643, "ctxt": 0 }, "value": "f12a", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 3644, "end": 3664, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3644, "end": 3664, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3645, "end": 3664, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 3647, "end": 3664, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 3647, "end": 3652, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 3647, "end": 3652, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 3655, "end": 3664, "ctxt": 0 }, "kind": "undefined" } ] } } } }, { "type": "Parameter", "span": { "start": 3666, "end": 3686, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 3666, "end": 3686, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 3671, "end": 3686, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 3673, "end": 3686, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 3673, "end": 3679, "ctxt": 0 }, "kind": "number" }, { "type": "TsKeywordType", "span": { "start": 3682, "end": 3686, "ctxt": 0 }, "kind": "null" } ] } } } } ], "decorators": [], "span": { "start": 3630, "end": 4030, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 3688, "end": 4030, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 3694, "end": 3738, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3698, "end": 3714, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 3698, "end": 3704, "ctxt": 0 }, "questionDotToken": { "start": 3699, "end": 3700, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3698, "end": 3704, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3698, "end": 3699, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3701, "end": 3704, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 3709, "end": 3714, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3716, "end": 3738, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3726, "end": 3732, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3726, "end": 3731, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3726, "end": 3727, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3728, "end": 3731, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3743, "end": 3794, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3747, "end": 3767, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 3747, "end": 3757, "ctxt": 0 }, "questionDotToken": { "start": 3748, "end": 3749, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3747, "end": 3757, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3747, "end": 3748, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3750, "end": 3757, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3751, "end": 3756, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 3762, "end": 3767, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3769, "end": 3794, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3779, "end": 3788, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3779, "end": 3787, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3779, "end": 3780, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3780, "end": 3787, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3781, "end": 3786, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3799, "end": 3845, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3803, "end": 3821, "ctxt": 0 }, "operator": "===", "left": { "type": "CallExpression", "span": { "start": 3803, "end": 3811, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 3803, "end": 3809, "ctxt": 0 }, "questionDotToken": { "start": 3804, "end": 3805, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3803, "end": 3809, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3803, "end": 3804, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3806, "end": 3809, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 3816, "end": 3821, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3823, "end": 3845, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3833, "end": 3839, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3833, "end": 3838, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3833, "end": 3834, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3835, "end": 3838, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3850, "end": 3903, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3854, "end": 3869, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 3854, "end": 3860, "ctxt": 0 }, "questionDotToken": { "start": 3855, "end": 3856, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3854, "end": 3860, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3854, "end": 3855, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3857, "end": 3860, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 3864, "end": 3869, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3871, "end": 3903, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3881, "end": 3887, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3881, "end": 3886, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3881, "end": 3882, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3883, "end": 3886, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3908, "end": 3968, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3912, "end": 3931, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 3912, "end": 3922, "ctxt": 0 }, "questionDotToken": { "start": 3913, "end": 3914, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3912, "end": 3922, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3912, "end": 3913, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3915, "end": 3922, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3916, "end": 3921, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 3926, "end": 3931, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3933, "end": 3968, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 3943, "end": 3952, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 3943, "end": 3951, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3943, "end": 3944, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 3944, "end": 3951, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 3945, "end": 3950, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 3973, "end": 4028, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 3977, "end": 3994, "ctxt": 0 }, "operator": "==", "left": { "type": "CallExpression", "span": { "start": 3977, "end": 3985, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 3977, "end": 3983, "ctxt": 0 }, "questionDotToken": { "start": 3978, "end": 3979, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 3977, "end": 3983, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 3977, "end": 3978, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 3980, "end": 3983, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 3989, "end": 3994, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 3996, "end": 4028, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4006, "end": 4012, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4006, "end": 4011, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4006, "end": 4007, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4008, "end": 4011, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4041, "end": 4044, "ctxt": 0 }, "value": "f13", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4045, "end": 4065, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4045, "end": 4065, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4046, "end": 4065, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 4048, "end": 4065, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 4048, "end": 4053, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4048, "end": 4053, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 4056, "end": 4065, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 4032, "end": 4403, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4067, "end": 4403, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 4073, "end": 4121, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4077, "end": 4097, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 4077, "end": 4083, "ctxt": 0 }, "questionDotToken": { "start": 4078, "end": 4079, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4077, "end": 4083, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4077, "end": 4078, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4080, "end": 4083, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 4088, "end": 4097, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4099, "end": 4121, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4109, "end": 4115, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4109, "end": 4114, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4109, "end": 4110, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4111, "end": 4114, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4126, "end": 4181, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4130, "end": 4154, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 4130, "end": 4140, "ctxt": 0 }, "questionDotToken": { "start": 4131, "end": 4132, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4130, "end": 4140, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4130, "end": 4131, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4133, "end": 4140, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4134, "end": 4139, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 4145, "end": 4154, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4156, "end": 4181, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4166, "end": 4175, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4166, "end": 4174, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4166, "end": 4167, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4167, "end": 4174, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4168, "end": 4173, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4186, "end": 4236, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4190, "end": 4212, "ctxt": 0 }, "operator": "!==", "left": { "type": "CallExpression", "span": { "start": 4190, "end": 4198, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 4190, "end": 4196, "ctxt": 0 }, "questionDotToken": { "start": 4191, "end": 4192, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4190, "end": 4196, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4190, "end": 4191, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4193, "end": 4196, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 4203, "end": 4212, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4214, "end": 4236, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4224, "end": 4230, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4224, "end": 4229, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4224, "end": 4225, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4226, "end": 4229, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4241, "end": 4288, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4245, "end": 4264, "ctxt": 0 }, "operator": "!=", "left": { "type": "OptionalChainingExpression", "span": { "start": 4245, "end": 4251, "ctxt": 0 }, "questionDotToken": { "start": 4246, "end": 4247, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4245, "end": 4251, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4245, "end": 4246, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4248, "end": 4251, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 4255, "end": 4264, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4266, "end": 4288, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4276, "end": 4282, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4276, "end": 4281, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4276, "end": 4277, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4278, "end": 4281, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4293, "end": 4347, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4297, "end": 4320, "ctxt": 0 }, "operator": "!=", "left": { "type": "OptionalChainingExpression", "span": { "start": 4297, "end": 4307, "ctxt": 0 }, "questionDotToken": { "start": 4298, "end": 4299, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4297, "end": 4307, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4297, "end": 4298, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4300, "end": 4307, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4301, "end": 4306, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 4311, "end": 4320, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4322, "end": 4347, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4332, "end": 4341, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4332, "end": 4340, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4332, "end": 4333, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4333, "end": 4340, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4334, "end": 4339, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4352, "end": 4401, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4356, "end": 4377, "ctxt": 0 }, "operator": "!=", "left": { "type": "CallExpression", "span": { "start": 4356, "end": 4364, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 4356, "end": 4362, "ctxt": 0 }, "questionDotToken": { "start": 4357, "end": 4358, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4356, "end": 4362, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4356, "end": 4357, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4359, "end": 4362, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 4368, "end": 4377, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4379, "end": 4401, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4389, "end": 4395, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4389, "end": 4394, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4389, "end": 4390, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4391, "end": 4394, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4414, "end": 4418, "ctxt": 0 }, "value": "f13a", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4419, "end": 4439, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4419, "end": 4439, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4420, "end": 4439, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 4422, "end": 4439, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 4422, "end": 4427, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4422, "end": 4427, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 4430, "end": 4439, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 4405, "end": 4777, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4441, "end": 4777, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 4447, "end": 4500, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4451, "end": 4466, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 4451, "end": 4457, "ctxt": 0 }, "questionDotToken": { "start": 4452, "end": 4453, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4451, "end": 4457, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4451, "end": 4452, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4454, "end": 4457, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "NullLiteral", "span": { "start": 4462, "end": 4466, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 4468, "end": 4500, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4478, "end": 4484, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4478, "end": 4483, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4478, "end": 4479, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4480, "end": 4483, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4505, "end": 4565, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4509, "end": 4528, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 4509, "end": 4519, "ctxt": 0 }, "questionDotToken": { "start": 4510, "end": 4511, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4509, "end": 4519, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4509, "end": 4510, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4512, "end": 4519, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4513, "end": 4518, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "NullLiteral", "span": { "start": 4524, "end": 4528, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 4530, "end": 4565, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4540, "end": 4549, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4540, "end": 4548, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4540, "end": 4541, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4541, "end": 4548, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4542, "end": 4547, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4570, "end": 4625, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4574, "end": 4591, "ctxt": 0 }, "operator": "!==", "left": { "type": "CallExpression", "span": { "start": 4574, "end": 4582, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 4574, "end": 4580, "ctxt": 0 }, "questionDotToken": { "start": 4575, "end": 4576, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4574, "end": 4580, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4574, "end": 4575, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4577, "end": 4580, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "NullLiteral", "span": { "start": 4587, "end": 4591, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 4593, "end": 4625, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4603, "end": 4609, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4603, "end": 4608, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4603, "end": 4604, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4605, "end": 4608, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4630, "end": 4672, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4634, "end": 4648, "ctxt": 0 }, "operator": "!=", "left": { "type": "OptionalChainingExpression", "span": { "start": 4634, "end": 4640, "ctxt": 0 }, "questionDotToken": { "start": 4635, "end": 4636, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4634, "end": 4640, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4634, "end": 4635, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4637, "end": 4640, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "NullLiteral", "span": { "start": 4644, "end": 4648, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 4650, "end": 4672, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4660, "end": 4666, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4660, "end": 4665, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4660, "end": 4661, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4662, "end": 4665, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4677, "end": 4726, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4681, "end": 4699, "ctxt": 0 }, "operator": "!=", "left": { "type": "OptionalChainingExpression", "span": { "start": 4681, "end": 4691, "ctxt": 0 }, "questionDotToken": { "start": 4682, "end": 4683, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4681, "end": 4691, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4681, "end": 4682, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4684, "end": 4691, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4685, "end": 4690, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "NullLiteral", "span": { "start": 4695, "end": 4699, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 4701, "end": 4726, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4711, "end": 4720, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4711, "end": 4719, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4711, "end": 4712, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4712, "end": 4719, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4713, "end": 4718, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4731, "end": 4775, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4735, "end": 4751, "ctxt": 0 }, "operator": "!=", "left": { "type": "CallExpression", "span": { "start": 4735, "end": 4743, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 4735, "end": 4741, "ctxt": 0 }, "questionDotToken": { "start": 4736, "end": 4737, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4735, "end": 4741, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4735, "end": 4736, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4738, "end": 4741, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "NullLiteral", "span": { "start": 4747, "end": 4751, "ctxt": 0 } } }, "consequent": { "type": "BlockStatement", "span": { "start": 4753, "end": 4775, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4763, "end": 4769, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4763, "end": 4768, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4763, "end": 4764, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4765, "end": 4768, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4788, "end": 4791, "ctxt": 0 }, "value": "f14", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4792, "end": 4807, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4792, "end": 4807, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4793, "end": 4807, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 4795, "end": 4807, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 4795, "end": 4800, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4795, "end": 4800, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 4803, "end": 4807, "ctxt": 0 }, "kind": "null" } ] } } } } ], "decorators": [], "span": { "start": 4779, "end": 4980, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 4809, "end": 4980, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 4815, "end": 4863, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4819, "end": 4839, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 4819, "end": 4825, "ctxt": 0 }, "questionDotToken": { "start": 4820, "end": 4821, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4819, "end": 4825, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4819, "end": 4820, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4822, "end": 4825, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 4830, "end": 4839, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4841, "end": 4863, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4851, "end": 4857, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4851, "end": 4856, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4851, "end": 4852, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4853, "end": 4856, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4868, "end": 4923, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4872, "end": 4896, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 4872, "end": 4882, "ctxt": 0 }, "questionDotToken": { "start": 4873, "end": 4874, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4872, "end": 4882, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4872, "end": 4873, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4875, "end": 4882, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4876, "end": 4881, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } }, "right": { "type": "Identifier", "span": { "start": 4887, "end": 4896, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4898, "end": 4923, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4908, "end": 4917, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4908, "end": 4916, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4908, "end": 4909, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 4909, "end": 4916, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 4910, "end": 4915, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 4928, "end": 4978, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 4932, "end": 4954, "ctxt": 0 }, "operator": "!==", "left": { "type": "CallExpression", "span": { "start": 4932, "end": 4940, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 4932, "end": 4938, "ctxt": 0 }, "questionDotToken": { "start": 4933, "end": 4934, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 4932, "end": 4938, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4932, "end": 4933, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4935, "end": 4938, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null }, "right": { "type": "Identifier", "span": { "start": 4945, "end": 4954, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 4956, "end": 4978, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 4966, "end": 4972, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 4966, "end": 4971, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 4966, "end": 4967, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 4968, "end": 4971, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 4991, "end": 4994, "ctxt": 0 }, "value": "f15", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 4995, "end": 5015, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 4995, "end": 5015, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 4996, "end": 5015, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 4998, "end": 5015, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 4998, "end": 5003, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 4998, "end": 5003, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 5006, "end": 5015, "ctxt": 0 }, "kind": "undefined" } ] } } } }, { "type": "Parameter", "span": { "start": 5017, "end": 5030, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5017, "end": 5030, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5022, "end": 5030, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5024, "end": 5030, "ctxt": 0 }, "kind": "number" } } } } ], "decorators": [], "span": { "start": 4982, "end": 5397, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5032, "end": 5397, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 5038, "end": 5124, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5042, "end": 5058, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 5042, "end": 5048, "ctxt": 0 }, "questionDotToken": { "start": 5043, "end": 5044, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5042, "end": 5048, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5042, "end": 5043, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5045, "end": 5048, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5053, "end": 5058, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5060, "end": 5082, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5070, "end": 5076, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5070, "end": 5075, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5070, "end": 5071, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5072, "end": 5075, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5092, "end": 5124, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5102, "end": 5108, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5102, "end": 5107, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5102, "end": 5103, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5104, "end": 5107, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 5129, "end": 5215, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5133, "end": 5149, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 5133, "end": 5139, "ctxt": 0 }, "questionDotToken": { "start": 5134, "end": 5135, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5133, "end": 5139, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5133, "end": 5134, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5136, "end": 5139, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5144, "end": 5149, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5151, "end": 5183, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5161, "end": 5167, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5161, "end": 5166, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5161, "end": 5162, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5163, "end": 5166, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5193, "end": 5215, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5203, "end": 5209, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5203, "end": 5208, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5203, "end": 5204, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5205, "end": 5208, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 5220, "end": 5305, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5224, "end": 5239, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 5224, "end": 5230, "ctxt": 0 }, "questionDotToken": { "start": 5225, "end": 5226, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5224, "end": 5230, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5224, "end": 5225, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5227, "end": 5230, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5234, "end": 5239, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5241, "end": 5263, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5251, "end": 5257, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5251, "end": 5256, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5251, "end": 5252, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5253, "end": 5256, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5273, "end": 5305, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5283, "end": 5289, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5283, "end": 5288, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5283, "end": 5284, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5285, "end": 5288, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 5310, "end": 5395, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5314, "end": 5329, "ctxt": 0 }, "operator": "!=", "left": { "type": "OptionalChainingExpression", "span": { "start": 5314, "end": 5320, "ctxt": 0 }, "questionDotToken": { "start": 5315, "end": 5316, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5314, "end": 5320, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5314, "end": 5315, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5317, "end": 5320, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5324, "end": 5329, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5331, "end": 5363, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5341, "end": 5347, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5341, "end": 5346, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5341, "end": 5342, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5343, "end": 5346, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5373, "end": 5395, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5383, "end": 5389, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5383, "end": 5388, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5383, "end": 5384, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5385, "end": 5388, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5408, "end": 5412, "ctxt": 0 }, "value": "f15a", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5413, "end": 5433, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5413, "end": 5433, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5414, "end": 5433, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 5416, "end": 5433, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 5416, "end": 5421, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5416, "end": 5421, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 5424, "end": 5433, "ctxt": 0 }, "kind": "undefined" } ] } } } }, { "type": "Parameter", "span": { "start": 5435, "end": 5449, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5435, "end": 5449, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5440, "end": 5449, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 5442, "end": 5449, "ctxt": 0 }, "kind": "unknown" } } } } ], "decorators": [], "span": { "start": 5399, "end": 5856, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5451, "end": 5856, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 5457, "end": 5553, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5461, "end": 5477, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 5461, "end": 5467, "ctxt": 0 }, "questionDotToken": { "start": 5462, "end": 5463, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5461, "end": 5467, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5461, "end": 5462, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5464, "end": 5467, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5472, "end": 5477, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5479, "end": 5511, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5489, "end": 5495, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5489, "end": 5494, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5489, "end": 5490, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5491, "end": 5494, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5521, "end": 5553, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5531, "end": 5537, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5531, "end": 5536, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5531, "end": 5532, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5533, "end": 5536, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 5558, "end": 5654, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5562, "end": 5578, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 5562, "end": 5568, "ctxt": 0 }, "questionDotToken": { "start": 5563, "end": 5564, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5562, "end": 5568, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5562, "end": 5563, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5565, "end": 5568, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5573, "end": 5578, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5580, "end": 5612, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5590, "end": 5596, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5590, "end": 5595, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5590, "end": 5591, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5592, "end": 5595, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5622, "end": 5654, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5632, "end": 5638, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5632, "end": 5637, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5632, "end": 5633, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5634, "end": 5637, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 5659, "end": 5754, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5663, "end": 5678, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 5663, "end": 5669, "ctxt": 0 }, "questionDotToken": { "start": 5664, "end": 5665, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5663, "end": 5669, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5663, "end": 5664, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5666, "end": 5669, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5673, "end": 5678, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5680, "end": 5712, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5690, "end": 5696, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5690, "end": 5695, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5690, "end": 5691, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5692, "end": 5695, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5722, "end": 5754, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5732, "end": 5738, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5732, "end": 5737, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5732, "end": 5733, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5734, "end": 5737, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 5759, "end": 5854, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5763, "end": 5778, "ctxt": 0 }, "operator": "!=", "left": { "type": "OptionalChainingExpression", "span": { "start": 5763, "end": 5769, "ctxt": 0 }, "questionDotToken": { "start": 5764, "end": 5765, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5763, "end": 5769, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5763, "end": 5764, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5766, "end": 5769, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5773, "end": 5778, "ctxt": 0 }, "value": "value", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5780, "end": 5812, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5790, "end": 5796, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5790, "end": 5795, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5790, "end": 5791, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5792, "end": 5795, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5822, "end": 5854, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5832, "end": 5838, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5832, "end": 5837, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5832, "end": 5833, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5834, "end": 5837, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 5867, "end": 5870, "ctxt": 0 }, "value": "f16", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 5871, "end": 5891, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 5871, "end": 5891, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 5872, "end": 5891, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 5874, "end": 5891, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 5874, "end": 5879, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 5874, "end": 5879, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 5882, "end": 5891, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 5858, "end": 6274, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 5893, "end": 6274, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 5899, "end": 5989, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5903, "end": 5923, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 5903, "end": 5909, "ctxt": 0 }, "questionDotToken": { "start": 5904, "end": 5905, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5903, "end": 5909, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5903, "end": 5904, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5906, "end": 5909, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 5914, "end": 5923, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 5925, "end": 5957, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5935, "end": 5941, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5935, "end": 5940, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5935, "end": 5936, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5937, "end": 5940, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 5967, "end": 5989, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 5977, "end": 5983, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 5977, "end": 5982, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5977, "end": 5978, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 5979, "end": 5982, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 5994, "end": 6084, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 5998, "end": 6018, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 5998, "end": 6004, "ctxt": 0 }, "questionDotToken": { "start": 5999, "end": 6000, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 5998, "end": 6004, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 5998, "end": 5999, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6001, "end": 6004, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 6009, "end": 6018, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 6020, "end": 6042, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6030, "end": 6036, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6030, "end": 6035, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6030, "end": 6031, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6032, "end": 6035, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 6052, "end": 6084, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6062, "end": 6068, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6062, "end": 6067, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6062, "end": 6063, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6064, "end": 6067, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 6089, "end": 6178, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6093, "end": 6112, "ctxt": 0 }, "operator": "==", "left": { "type": "OptionalChainingExpression", "span": { "start": 6093, "end": 6099, "ctxt": 0 }, "questionDotToken": { "start": 6094, "end": 6095, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6093, "end": 6099, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6093, "end": 6094, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6096, "end": 6099, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 6103, "end": 6112, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 6114, "end": 6146, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6124, "end": 6130, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6124, "end": 6129, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6124, "end": 6125, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6126, "end": 6129, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 6156, "end": 6178, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6166, "end": 6172, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6166, "end": 6171, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6166, "end": 6167, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6168, "end": 6171, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 6183, "end": 6272, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6187, "end": 6206, "ctxt": 0 }, "operator": "!=", "left": { "type": "OptionalChainingExpression", "span": { "start": 6187, "end": 6193, "ctxt": 0 }, "questionDotToken": { "start": 6188, "end": 6189, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6187, "end": 6193, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6187, "end": 6188, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6190, "end": 6193, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 6197, "end": 6206, "ctxt": 0 }, "value": "undefined", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 6208, "end": 6230, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6218, "end": 6224, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6218, "end": 6223, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6218, "end": 6219, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6220, "end": 6223, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 6240, "end": 6272, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6250, "end": 6256, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6250, "end": 6255, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6250, "end": 6251, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6252, "end": 6255, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6285, "end": 6288, "ctxt": 0 }, "value": "f20", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6289, "end": 6309, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6289, "end": 6309, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6290, "end": 6309, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6292, "end": 6309, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6292, "end": 6297, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6292, "end": 6297, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 6300, "end": 6309, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 6276, "end": 6556, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6311, "end": 6556, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 6317, "end": 6371, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6321, "end": 6347, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 6321, "end": 6334, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 6328, "end": 6334, "ctxt": 0 }, "questionDotToken": { "start": 6329, "end": 6330, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6328, "end": 6334, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6328, "end": 6329, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6331, "end": 6334, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 6339, "end": 6347, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6349, "end": 6371, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6359, "end": 6365, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6359, "end": 6364, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6359, "end": 6360, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6361, "end": 6364, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 6376, "end": 6437, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6380, "end": 6410, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 6380, "end": 6397, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 6387, "end": 6397, "ctxt": 0 }, "questionDotToken": { "start": 6388, "end": 6389, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6387, "end": 6397, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6387, "end": 6388, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 6390, "end": 6397, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 6391, "end": 6396, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } }, "right": { "type": "StringLiteral", "span": { "start": 6402, "end": 6410, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6412, "end": 6437, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6422, "end": 6431, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6422, "end": 6430, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6422, "end": 6423, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 6423, "end": 6430, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 6424, "end": 6429, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 6442, "end": 6498, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6446, "end": 6474, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 6446, "end": 6461, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "CallExpression", "span": { "start": 6453, "end": 6461, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 6453, "end": 6459, "ctxt": 0 }, "questionDotToken": { "start": 6454, "end": 6455, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6453, "end": 6459, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6453, "end": 6454, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6456, "end": 6459, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null } }, "right": { "type": "StringLiteral", "span": { "start": 6466, "end": 6474, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6476, "end": 6498, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6486, "end": 6492, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6486, "end": 6491, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6486, "end": 6487, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6488, "end": 6491, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 6503, "end": 6554, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6507, "end": 6530, "ctxt": 0 }, "operator": "instanceof", "left": { "type": "OptionalChainingExpression", "span": { "start": 6507, "end": 6513, "ctxt": 0 }, "questionDotToken": { "start": 6508, "end": 6509, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6507, "end": 6513, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6507, "end": 6508, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6510, "end": 6513, "ctxt": 0 }, "value": "baz", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 6525, "end": 6530, "ctxt": 0 }, "value": "Error", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 6532, "end": 6554, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6542, "end": 6548, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6542, "end": 6547, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6542, "end": 6543, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6544, "end": 6547, "ctxt": 0 }, "value": "baz", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6567, "end": 6570, "ctxt": 0 }, "value": "f21", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6571, "end": 6586, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6571, "end": 6586, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6572, "end": 6586, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6574, "end": 6586, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6574, "end": 6579, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6574, "end": 6579, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 6582, "end": 6586, "ctxt": 0 }, "kind": "null" } ] } } } } ], "decorators": [], "span": { "start": 6558, "end": 6833, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6588, "end": 6833, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 6594, "end": 6648, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6598, "end": 6624, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 6598, "end": 6611, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 6605, "end": 6611, "ctxt": 0 }, "questionDotToken": { "start": 6606, "end": 6607, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6605, "end": 6611, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6605, "end": 6606, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6608, "end": 6611, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 6616, "end": 6624, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6626, "end": 6648, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6636, "end": 6642, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6636, "end": 6641, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6636, "end": 6637, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6638, "end": 6641, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 6653, "end": 6714, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6657, "end": 6687, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 6657, "end": 6674, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 6664, "end": 6674, "ctxt": 0 }, "questionDotToken": { "start": 6665, "end": 6666, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6664, "end": 6674, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6664, "end": 6665, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 6667, "end": 6674, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 6668, "end": 6673, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } }, "right": { "type": "StringLiteral", "span": { "start": 6679, "end": 6687, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6689, "end": 6714, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6699, "end": 6708, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6699, "end": 6707, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6699, "end": 6700, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Computed", "span": { "start": 6700, "end": 6707, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 6701, "end": 6706, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 6719, "end": 6775, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6723, "end": 6751, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 6723, "end": 6738, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "CallExpression", "span": { "start": 6730, "end": 6738, "ctxt": 0 }, "callee": { "type": "OptionalChainingExpression", "span": { "start": 6730, "end": 6736, "ctxt": 0 }, "questionDotToken": { "start": 6731, "end": 6732, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6730, "end": 6736, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6730, "end": 6731, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6733, "end": 6736, "ctxt": 0 }, "value": "bar", "optional": false } } }, "arguments": [], "typeArguments": null } }, "right": { "type": "StringLiteral", "span": { "start": 6743, "end": 6751, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6753, "end": 6775, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6763, "end": 6769, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6763, "end": 6768, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6763, "end": 6764, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6765, "end": 6768, "ctxt": 0 }, "value": "bar", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 6780, "end": 6831, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6784, "end": 6807, "ctxt": 0 }, "operator": "instanceof", "left": { "type": "OptionalChainingExpression", "span": { "start": 6784, "end": 6790, "ctxt": 0 }, "questionDotToken": { "start": 6785, "end": 6786, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6784, "end": 6790, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6784, "end": 6785, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6787, "end": 6790, "ctxt": 0 }, "value": "baz", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 6802, "end": 6807, "ctxt": 0 }, "value": "Error", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 6809, "end": 6831, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6819, "end": 6825, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6819, "end": 6824, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6819, "end": 6820, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6821, "end": 6824, "ctxt": 0 }, "value": "baz", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6844, "end": 6847, "ctxt": 0 }, "value": "f22", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 6848, "end": 6868, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 6848, "end": 6868, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 6849, "end": 6868, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 6851, "end": 6868, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 6851, "end": 6856, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 6851, "end": 6856, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 6859, "end": 6868, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 6835, "end": 7275, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 6870, "end": 7275, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 6876, "end": 6972, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6880, "end": 6906, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 6880, "end": 6893, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 6887, "end": 6893, "ctxt": 0 }, "questionDotToken": { "start": 6888, "end": 6889, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6887, "end": 6893, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6887, "end": 6888, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6890, "end": 6893, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 6898, "end": 6906, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 6908, "end": 6930, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6918, "end": 6924, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6918, "end": 6923, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6918, "end": 6919, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6920, "end": 6923, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 6940, "end": 6972, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 6950, "end": 6956, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 6950, "end": 6955, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6950, "end": 6951, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6952, "end": 6955, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 6977, "end": 7073, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 6981, "end": 7007, "ctxt": 0 }, "operator": "!==", "left": { "type": "UnaryExpression", "span": { "start": 6981, "end": 6994, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 6988, "end": 6994, "ctxt": 0 }, "questionDotToken": { "start": 6989, "end": 6990, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 6988, "end": 6994, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 6988, "end": 6989, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 6991, "end": 6994, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 6999, "end": 7007, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7009, "end": 7041, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7019, "end": 7025, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7019, "end": 7024, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7019, "end": 7020, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7021, "end": 7024, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7051, "end": 7073, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7061, "end": 7067, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7061, "end": 7066, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7061, "end": 7062, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7063, "end": 7066, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 7078, "end": 7173, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7082, "end": 7107, "ctxt": 0 }, "operator": "==", "left": { "type": "UnaryExpression", "span": { "start": 7082, "end": 7095, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 7089, "end": 7095, "ctxt": 0 }, "questionDotToken": { "start": 7090, "end": 7091, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 7089, "end": 7095, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7089, "end": 7090, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7092, "end": 7095, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 7099, "end": 7107, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7109, "end": 7131, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7119, "end": 7125, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7119, "end": 7124, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7119, "end": 7120, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7121, "end": 7124, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7141, "end": 7173, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7151, "end": 7157, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7151, "end": 7156, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7151, "end": 7152, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7153, "end": 7156, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 7178, "end": 7273, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7182, "end": 7207, "ctxt": 0 }, "operator": "!=", "left": { "type": "UnaryExpression", "span": { "start": 7182, "end": 7195, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 7189, "end": 7195, "ctxt": 0 }, "questionDotToken": { "start": 7190, "end": 7191, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 7189, "end": 7195, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7189, "end": 7190, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7192, "end": 7195, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 7199, "end": 7207, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7209, "end": 7241, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7219, "end": 7225, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7219, "end": 7224, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7219, "end": 7220, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7221, "end": 7224, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7251, "end": 7273, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7261, "end": 7267, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7261, "end": 7266, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7261, "end": 7262, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7263, "end": 7266, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7286, "end": 7289, "ctxt": 0 }, "value": "f23", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7290, "end": 7310, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7290, "end": 7310, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7291, "end": 7310, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 7293, "end": 7310, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 7293, "end": 7298, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7293, "end": 7298, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 7301, "end": 7310, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 7277, "end": 7729, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7312, "end": 7729, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 7318, "end": 7417, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7322, "end": 7351, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 7322, "end": 7335, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 7329, "end": 7335, "ctxt": 0 }, "questionDotToken": { "start": 7330, "end": 7331, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 7329, "end": 7335, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7329, "end": 7330, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7332, "end": 7335, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 7340, "end": 7351, "ctxt": 0 }, "value": "undefined", "raw": "\"undefined\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7353, "end": 7385, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7363, "end": 7369, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7363, "end": 7368, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7363, "end": 7364, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7365, "end": 7368, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7395, "end": 7417, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7405, "end": 7411, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7405, "end": 7410, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7405, "end": 7406, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7407, "end": 7410, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 7422, "end": 7521, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7426, "end": 7455, "ctxt": 0 }, "operator": "!==", "left": { "type": "UnaryExpression", "span": { "start": 7426, "end": 7439, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 7433, "end": 7439, "ctxt": 0 }, "questionDotToken": { "start": 7434, "end": 7435, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 7433, "end": 7439, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7433, "end": 7434, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7436, "end": 7439, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 7444, "end": 7455, "ctxt": 0 }, "value": "undefined", "raw": "\"undefined\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7457, "end": 7479, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7467, "end": 7473, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7467, "end": 7472, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7467, "end": 7468, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7469, "end": 7472, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7489, "end": 7521, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7499, "end": 7505, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7499, "end": 7504, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7499, "end": 7500, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7501, "end": 7504, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 7526, "end": 7624, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7530, "end": 7558, "ctxt": 0 }, "operator": "==", "left": { "type": "UnaryExpression", "span": { "start": 7530, "end": 7543, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 7537, "end": 7543, "ctxt": 0 }, "questionDotToken": { "start": 7538, "end": 7539, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 7537, "end": 7543, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7537, "end": 7538, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7540, "end": 7543, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 7547, "end": 7558, "ctxt": 0 }, "value": "undefined", "raw": "\"undefined\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7560, "end": 7592, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7570, "end": 7576, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7570, "end": 7575, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7570, "end": 7571, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7572, "end": 7575, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7602, "end": 7624, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7612, "end": 7618, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7612, "end": 7617, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7612, "end": 7613, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7614, "end": 7617, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } }, { "type": "IfStatement", "span": { "start": 7629, "end": 7727, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 7633, "end": 7661, "ctxt": 0 }, "operator": "!=", "left": { "type": "UnaryExpression", "span": { "start": 7633, "end": 7646, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 7640, "end": 7646, "ctxt": 0 }, "questionDotToken": { "start": 7641, "end": 7642, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 7640, "end": 7646, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7640, "end": 7641, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7643, "end": 7646, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 7650, "end": 7661, "ctxt": 0 }, "value": "undefined", "raw": "\"undefined\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 7663, "end": 7685, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7673, "end": 7679, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7673, "end": 7678, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7673, "end": 7674, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7675, "end": 7678, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 7695, "end": 7727, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7705, "end": 7711, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7705, "end": 7710, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7705, "end": 7706, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7707, "end": 7710, "ctxt": 0 }, "value": "foo", "optional": false } } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7748, "end": 7754, "ctxt": 0 }, "value": "assert", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 7755, "end": 7765, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7755, "end": 7765, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7756, "end": 7765, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 7758, "end": 7765, "ctxt": 0 }, "kind": "unknown" } } } } ], "decorators": [], "span": { "start": 7731, "end": 7778, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 7766, "end": 7777, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 7768, "end": 7777, "ctxt": 0 }, "asserts": true, "paramName": { "type": "Identifier", "span": { "start": 7776, "end": 7777, "ctxt": 0 }, "value": "x", "optional": false }, "typeAnnotation": null } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7796, "end": 7809, "ctxt": 0 }, "value": "assertNonNull", "optional": false }, "declare": true, "params": [ { "type": "Parameter", "span": { "start": 7813, "end": 7817, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7813, "end": 7817, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7814, "end": 7817, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7816, "end": 7817, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7816, "end": 7817, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 7779, "end": 7848, "ctxt": 0 }, "body": null, "generator": false, "async": false, "typeParameters": { "type": "TsTypeParameterDeclaration", "span": { "start": 7809, "end": 7812, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 7810, "end": 7811, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 7810, "end": 7811, "ctxt": 0 }, "value": "T", "optional": false }, "in": false, "out": false, "constraint": null, "default": null } ] }, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 7818, "end": 7847, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypePredicate", "span": { "start": 7820, "end": 7847, "ctxt": 0 }, "asserts": true, "paramName": { "type": "Identifier", "span": { "start": 7828, "end": 7829, "ctxt": 0 }, "value": "x", "optional": false }, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7833, "end": 7847, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 7833, "end": 7847, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7833, "end": 7844, "ctxt": 0 }, "value": "NonNullable", "optional": false }, "typeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 7844, "end": 7847, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 7845, "end": 7846, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7845, "end": 7846, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } ] } } } } } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 7859, "end": 7862, "ctxt": 0 }, "value": "f30", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 7863, "end": 7883, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 7863, "end": 7883, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 7864, "end": 7883, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 7866, "end": 7883, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 7866, "end": 7871, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 7866, "end": 7871, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 7874, "end": 7883, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 7850, "end": 8174, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 7885, "end": 8174, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 7891, "end": 7949, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 7895, "end": 7901, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 7896, "end": 7901, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 7897, "end": 7901, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 7903, "end": 7949, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7913, "end": 7928, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 7913, "end": 7927, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7913, "end": 7919, "ctxt": 0 }, "value": "assert", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "OptionalChainingExpression", "span": { "start": 7920, "end": 7926, "ctxt": 0 }, "questionDotToken": { "start": 7921, "end": 7922, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 7920, "end": 7926, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7920, "end": 7921, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7923, "end": 7926, "ctxt": 0 }, "value": "foo", "optional": false } } } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 7937, "end": 7943, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 7937, "end": 7942, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7937, "end": 7938, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7939, "end": 7942, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 7954, "end": 8019, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 7958, "end": 7964, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 7959, "end": 7964, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 7960, "end": 7964, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 7966, "end": 8019, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 7976, "end": 7998, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 7976, "end": 7997, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 7976, "end": 7982, "ctxt": 0 }, "value": "assert", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "BinaryExpression", "span": { "start": 7983, "end": 7996, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 7983, "end": 7989, "ctxt": 0 }, "questionDotToken": { "start": 7984, "end": 7985, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 7983, "end": 7989, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 7983, "end": 7984, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 7986, "end": 7989, "ctxt": 0 }, "value": "foo", "optional": false } } }, "right": { "type": "NumericLiteral", "span": { "start": 7994, "end": 7996, "ctxt": 0 }, "value": 42.0, "raw": "42" } } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 8007, "end": 8013, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8007, "end": 8012, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8007, "end": 8008, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8009, "end": 8012, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 8024, "end": 8102, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 8028, "end": 8034, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 8029, "end": 8034, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 8030, "end": 8034, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 8036, "end": 8102, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 8046, "end": 8081, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 8046, "end": 8080, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 8046, "end": 8052, "ctxt": 0 }, "value": "assert", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "BinaryExpression", "span": { "start": 8053, "end": 8079, "ctxt": 0 }, "operator": "===", "left": { "type": "UnaryExpression", "span": { "start": 8053, "end": 8066, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 8060, "end": 8066, "ctxt": 0 }, "questionDotToken": { "start": 8061, "end": 8062, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 8060, "end": 8066, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8060, "end": 8061, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8063, "end": 8066, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "right": { "type": "StringLiteral", "span": { "start": 8071, "end": 8079, "ctxt": 0 }, "value": "number", "raw": "\"number\"" } } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 8090, "end": 8096, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8090, "end": 8095, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8090, "end": 8091, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8092, "end": 8095, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null }, { "type": "IfStatement", "span": { "start": 8107, "end": 8172, "ctxt": 0 }, "test": { "type": "UnaryExpression", "span": { "start": 8111, "end": 8117, "ctxt": 0 }, "operator": "!", "argument": { "type": "UnaryExpression", "span": { "start": 8112, "end": 8117, "ctxt": 0 }, "operator": "!", "argument": { "type": "BooleanLiteral", "span": { "start": 8113, "end": 8117, "ctxt": 0 }, "value": true } } }, "consequent": { "type": "BlockStatement", "span": { "start": 8119, "end": 8172, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 8129, "end": 8151, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 8129, "end": 8150, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 8129, "end": 8142, "ctxt": 0 }, "value": "assertNonNull", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "OptionalChainingExpression", "span": { "start": 8143, "end": 8149, "ctxt": 0 }, "questionDotToken": { "start": 8144, "end": 8145, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 8143, "end": 8149, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8143, "end": 8144, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8146, "end": 8149, "ctxt": 0 }, "value": "foo", "optional": false } } } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 8160, "end": 8166, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8160, "end": 8165, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8160, "end": 8161, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8162, "end": 8165, "ctxt": 0 }, "value": "foo", "optional": false } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8185, "end": 8188, "ctxt": 0 }, "value": "f40", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 8189, "end": 8209, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8189, "end": 8209, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8190, "end": 8209, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 8192, "end": 8209, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 8192, "end": 8197, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8192, "end": 8197, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 8200, "end": 8209, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 8176, "end": 8492, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8211, "end": 8492, "ctxt": 0 }, "stmts": [ { "type": "SwitchStatement", "span": { "start": 8217, "end": 8490, "ctxt": 0 }, "discriminant": { "type": "OptionalChainingExpression", "span": { "start": 8225, "end": 8231, "ctxt": 0 }, "questionDotToken": { "start": 8226, "end": 8227, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 8225, "end": 8231, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8225, "end": 8226, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8228, "end": 8231, "ctxt": 0 }, "value": "foo", "optional": false } } }, "cases": [ { "type": "SwitchCase", "span": { "start": 8243, "end": 8292, "ctxt": 0 }, "test": { "type": "StringLiteral", "span": { "start": 8248, "end": 8253, "ctxt": 0 }, "value": "abc", "raw": "\"abc\"" }, "consequent": [ { "type": "ExpressionStatement", "span": { "start": 8267, "end": 8273, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8267, "end": 8272, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8267, "end": 8268, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8269, "end": 8272, "ctxt": 0 }, "value": "foo", "optional": false } } }, { "type": "BreakStatement", "span": { "start": 8286, "end": 8292, "ctxt": 0 }, "label": null } ] }, { "type": "SwitchCase", "span": { "start": 8301, "end": 8347, "ctxt": 0 }, "test": { "type": "NumericLiteral", "span": { "start": 8306, "end": 8308, "ctxt": 0 }, "value": 42.0, "raw": "42" }, "consequent": [ { "type": "ExpressionStatement", "span": { "start": 8322, "end": 8328, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8322, "end": 8327, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8322, "end": 8323, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8324, "end": 8327, "ctxt": 0 }, "value": "foo", "optional": false } } }, { "type": "BreakStatement", "span": { "start": 8341, "end": 8347, "ctxt": 0 }, "label": null } ] }, { "type": "SwitchCase", "span": { "start": 8356, "end": 8419, "ctxt": 0 }, "test": { "type": "Identifier", "span": { "start": 8361, "end": 8370, "ctxt": 0 }, "value": "undefined", "optional": false }, "consequent": [ { "type": "ExpressionStatement", "span": { "start": 8384, "end": 8390, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8384, "end": 8389, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8384, "end": 8385, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8386, "end": 8389, "ctxt": 0 }, "value": "foo", "optional": false } } }, { "type": "BreakStatement", "span": { "start": 8413, "end": 8419, "ctxt": 0 }, "label": null } ] }, { "type": "SwitchCase", "span": { "start": 8428, "end": 8484, "ctxt": 0 }, "test": null, "consequent": [ { "type": "ExpressionStatement", "span": { "start": 8449, "end": 8455, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8449, "end": 8454, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8449, "end": 8450, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8451, "end": 8454, "ctxt": 0 }, "value": "foo", "optional": false } } }, { "type": "BreakStatement", "span": { "start": 8478, "end": 8484, "ctxt": 0 }, "label": null } ] } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8503, "end": 8506, "ctxt": 0 }, "value": "f41", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 8507, "end": 8527, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8507, "end": 8527, "ctxt": 0 }, "value": "o", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8508, "end": 8527, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 8510, "end": 8527, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 8510, "end": 8515, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8510, "end": 8515, "ctxt": 0 }, "value": "Thing", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 8518, "end": 8527, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 8494, "end": 8828, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8529, "end": 8828, "ctxt": 0 }, "stmts": [ { "type": "SwitchStatement", "span": { "start": 8535, "end": 8826, "ctxt": 0 }, "discriminant": { "type": "UnaryExpression", "span": { "start": 8543, "end": 8556, "ctxt": 0 }, "operator": "typeof", "argument": { "type": "OptionalChainingExpression", "span": { "start": 8550, "end": 8556, "ctxt": 0 }, "questionDotToken": { "start": 8551, "end": 8552, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 8550, "end": 8556, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8550, "end": 8551, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8553, "end": 8556, "ctxt": 0 }, "value": "foo", "optional": false } } } }, "cases": [ { "type": "SwitchCase", "span": { "start": 8568, "end": 8620, "ctxt": 0 }, "test": { "type": "StringLiteral", "span": { "start": 8573, "end": 8581, "ctxt": 0 }, "value": "string", "raw": "\"string\"" }, "consequent": [ { "type": "ExpressionStatement", "span": { "start": 8595, "end": 8601, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8595, "end": 8600, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8595, "end": 8596, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8597, "end": 8600, "ctxt": 0 }, "value": "foo", "optional": false } } }, { "type": "BreakStatement", "span": { "start": 8614, "end": 8620, "ctxt": 0 }, "label": null } ] }, { "type": "SwitchCase", "span": { "start": 8629, "end": 8681, "ctxt": 0 }, "test": { "type": "StringLiteral", "span": { "start": 8634, "end": 8642, "ctxt": 0 }, "value": "number", "raw": "\"number\"" }, "consequent": [ { "type": "ExpressionStatement", "span": { "start": 8656, "end": 8662, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8656, "end": 8661, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8656, "end": 8657, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8658, "end": 8661, "ctxt": 0 }, "value": "foo", "optional": false } } }, { "type": "BreakStatement", "span": { "start": 8675, "end": 8681, "ctxt": 0 }, "label": null } ] }, { "type": "SwitchCase", "span": { "start": 8690, "end": 8755, "ctxt": 0 }, "test": { "type": "StringLiteral", "span": { "start": 8695, "end": 8706, "ctxt": 0 }, "value": "undefined", "raw": "\"undefined\"" }, "consequent": [ { "type": "ExpressionStatement", "span": { "start": 8720, "end": 8726, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8720, "end": 8725, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8720, "end": 8721, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8722, "end": 8725, "ctxt": 0 }, "value": "foo", "optional": false } } }, { "type": "BreakStatement", "span": { "start": 8749, "end": 8755, "ctxt": 0 }, "label": null } ] }, { "type": "SwitchCase", "span": { "start": 8764, "end": 8820, "ctxt": 0 }, "test": null, "consequent": [ { "type": "ExpressionStatement", "span": { "start": 8785, "end": 8791, "ctxt": 0 }, "expression": { "type": "MemberExpression", "span": { "start": 8785, "end": 8790, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 8785, "end": 8786, "ctxt": 0 }, "value": "o", "optional": false }, "property": { "type": "Identifier", "span": { "start": 8787, "end": 8790, "ctxt": 0 }, "value": "foo", "optional": false } } }, { "type": "BreakStatement", "span": { "start": 8814, "end": 8820, "ctxt": 0 }, "label": null } ] } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 8853, "end": 8965, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 8858, "end": 8863, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 8870, "end": 8965, "ctxt": 0 }, "types": [ { "type": "TsTypeLiteral", "span": { "start": 8872, "end": 8924, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 8874, "end": 8892, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8874, "end": 8878, "ctxt": 0 }, "value": "type", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8878, "end": 8891, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8880, "end": 8891, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8880, "end": 8891, "ctxt": 0 }, "value": "rectangle", "raw": "'rectangle'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 8893, "end": 8907, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8893, "end": 8898, "ctxt": 0 }, "value": "width", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8898, "end": 8906, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8900, "end": 8906, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 8908, "end": 8922, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8908, "end": 8914, "ctxt": 0 }, "value": "height", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8914, "end": 8922, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8916, "end": 8922, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] }, { "type": "TsTypeLiteral", "span": { "start": 8931, "end": 8965, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 8933, "end": 8948, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8933, "end": 8937, "ctxt": 0 }, "value": "type", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8937, "end": 8947, "ctxt": 0 }, "typeAnnotation": { "type": "TsLiteralType", "span": { "start": 8939, "end": 8947, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 8939, "end": 8947, "ctxt": 0 }, "value": "circle", "raw": "'circle'" } } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 8949, "end": 8963, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 8949, "end": 8955, "ctxt": 0 }, "value": "radius", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8955, "end": 8963, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 8957, "end": 8963, "ctxt": 0 }, "kind": "number" } }, "typeParams": null } ] } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 8976, "end": 8983, "ctxt": 0 }, "value": "getArea", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 8984, "end": 8997, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 8984, "end": 8997, "ctxt": 0 }, "value": "shape", "optional": true, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 8990, "end": 8997, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 8992, "end": 8997, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 8992, "end": 8997, "ctxt": 0 }, "value": "Shape", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 8967, "end": 9215, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 8999, "end": 9215, "ctxt": 0 }, "stmts": [ { "type": "SwitchStatement", "span": { "start": 9005, "end": 9213, "ctxt": 0 }, "discriminant": { "type": "OptionalChainingExpression", "span": { "start": 9013, "end": 9024, "ctxt": 0 }, "questionDotToken": { "start": 9018, "end": 9019, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 9013, "end": 9024, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9013, "end": 9018, "ctxt": 0 }, "value": "shape", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9020, "end": 9024, "ctxt": 0 }, "value": "type", "optional": false } } }, "cases": [ { "type": "SwitchCase", "span": { "start": 9036, "end": 9097, "ctxt": 0 }, "test": { "type": "StringLiteral", "span": { "start": 9041, "end": 9049, "ctxt": 0 }, "value": "circle", "raw": "'circle'" }, "consequent": [ { "type": "ReturnStatement", "span": { "start": 9063, "end": 9097, "ctxt": 0 }, "argument": { "type": "BinaryExpression", "span": { "start": 9070, "end": 9097, "ctxt": 0 }, "operator": "*", "left": { "type": "MemberExpression", "span": { "start": 9070, "end": 9077, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9070, "end": 9074, "ctxt": 0 }, "value": "Math", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9075, "end": 9077, "ctxt": 0 }, "value": "PI", "optional": false } }, "right": { "type": "BinaryExpression", "span": { "start": 9080, "end": 9097, "ctxt": 0 }, "operator": "**", "left": { "type": "MemberExpression", "span": { "start": 9080, "end": 9092, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9080, "end": 9085, "ctxt": 0 }, "value": "shape", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9086, "end": 9092, "ctxt": 0 }, "value": "radius", "optional": false } }, "right": { "type": "NumericLiteral", "span": { "start": 9096, "end": 9097, "ctxt": 0 }, "value": 2.0, "raw": "2" } } } } ] }, { "type": "SwitchCase", "span": { "start": 9106, "end": 9169, "ctxt": 0 }, "test": { "type": "StringLiteral", "span": { "start": 9111, "end": 9122, "ctxt": 0 }, "value": "rectangle", "raw": "'rectangle'" }, "consequent": [ { "type": "ReturnStatement", "span": { "start": 9136, "end": 9169, "ctxt": 0 }, "argument": { "type": "BinaryExpression", "span": { "start": 9143, "end": 9169, "ctxt": 0 }, "operator": "*", "left": { "type": "MemberExpression", "span": { "start": 9143, "end": 9154, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9143, "end": 9148, "ctxt": 0 }, "value": "shape", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9149, "end": 9154, "ctxt": 0 }, "value": "width", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 9157, "end": 9169, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9157, "end": 9162, "ctxt": 0 }, "value": "shape", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9163, "end": 9169, "ctxt": 0 }, "value": "height", "optional": false } } } } ] }, { "type": "SwitchCase", "span": { "start": 9178, "end": 9207, "ctxt": 0 }, "test": null, "consequent": [ { "type": "ReturnStatement", "span": { "start": 9199, "end": 9207, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 9206, "end": 9207, "ctxt": 0 }, "value": 0.0, "raw": "0" } } ] } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 9217, "end": 9315, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 9222, "end": 9229, "ctxt": 0 }, "value": "Feature", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 9232, "end": 9314, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 9236, "end": 9247, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 9236, "end": 9238, "ctxt": 0 }, "value": "id", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9238, "end": 9246, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 9240, "end": 9246, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 9250, "end": 9312, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 9250, "end": 9258, "ctxt": 0 }, "value": "geometry", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9259, "end": 9311, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 9261, "end": 9311, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 9267, "end": 9280, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 9267, "end": 9271, "ctxt": 0 }, "value": "type", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9271, "end": 9279, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 9273, "end": 9279, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 9285, "end": 9307, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 9285, "end": 9296, "ctxt": 0 }, "value": "coordinates", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9296, "end": 9306, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 9298, "end": 9306, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 9298, "end": 9304, "ctxt": 0 }, "kind": "number" } } }, "typeParams": null } ] } }, "typeParams": null } ] } }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 9327, "end": 9345, "ctxt": 0 }, "value": "extractCoordinates", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 9346, "end": 9356, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9346, "end": 9356, "ctxt": 0 }, "value": "f", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9347, "end": 9356, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9349, "end": 9356, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9349, "end": 9356, "ctxt": 0 }, "value": "Feature", "optional": false }, "typeParams": null } } } } ], "decorators": [], "span": { "start": 9318, "end": 9470, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 9368, "end": 9470, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 9374, "end": 9433, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 9378, "end": 9405, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 9378, "end": 9394, "ctxt": 0 }, "questionDotToken": { "start": 9388, "end": 9389, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 9378, "end": 9394, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 9378, "end": 9388, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9378, "end": 9379, "ctxt": 0 }, "value": "f", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9380, "end": 9388, "ctxt": 0 }, "value": "geometry", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 9390, "end": 9394, "ctxt": 0 }, "value": "type", "optional": false } } }, "right": { "type": "StringLiteral", "span": { "start": 9399, "end": 9405, "ctxt": 0 }, "value": "test", "raw": "'test'" } }, "consequent": { "type": "BlockStatement", "span": { "start": 9407, "end": 9433, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 9417, "end": 9427, "ctxt": 0 }, "argument": { "type": "ArrayExpression", "span": { "start": 9424, "end": 9426, "ctxt": 0 }, "elements": [] } } ] }, "alternate": null }, { "type": "ReturnStatement", "span": { "start": 9438, "end": 9468, "ctxt": 0 }, "argument": { "type": "MemberExpression", "span": { "start": 9445, "end": 9467, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 9445, "end": 9455, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9445, "end": 9446, "ctxt": 0 }, "value": "f", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9447, "end": 9455, "ctxt": 0 }, "value": "geometry", "optional": false } }, "property": { "type": "Identifier", "span": { "start": 9456, "end": 9467, "ctxt": 0 }, "value": "coordinates", "optional": false } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 9357, "end": 9367, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 9359, "end": 9367, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 9359, "end": 9365, "ctxt": 0 }, "kind": "number" } } } }, { "type": "TsInterfaceDeclaration", "span": { "start": 9494, "end": 9545, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 9504, "end": 9514, "ctxt": 0 }, "value": "SomeObject", "optional": false }, "declare": false, "typeParams": null, "extends": [], "body": { "type": "TsInterfaceBody", "span": { "start": 9515, "end": 9545, "ctxt": 0 }, "body": [ { "type": "TsPropertySignature", "span": { "start": 9521, "end": 9543, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 9521, "end": 9533, "ctxt": 0 }, "value": "someProperty", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9533, "end": 9542, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 9535, "end": 9542, "ctxt": 0 }, "kind": "unknown" } }, "typeParams": null } ] } }, { "type": "VariableDeclaration", "span": { "start": 9547, "end": 9589, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 9551, "end": 9588, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 9551, "end": 9567, "ctxt": 0 }, "value": "lastSomeProperty", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9567, "end": 9588, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 9569, "end": 9588, "ctxt": 0 }, "types": [ { "type": "TsKeywordType", "span": { "start": 9569, "end": 9576, "ctxt": 0 }, "kind": "unknown" }, { "type": "TsKeywordType", "span": { "start": 9579, "end": 9588, "ctxt": 0 }, "kind": "undefined" } ] } } }, "init": null, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 9600, "end": 9612, "ctxt": 0 }, "value": "someFunction", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 9613, "end": 9655, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 9613, "end": 9655, "ctxt": 0 }, "value": "someOptionalObject", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9631, "end": 9655, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 9633, "end": 9655, "ctxt": 0 }, "types": [ { "type": "TsTypeReference", "span": { "start": 9633, "end": 9643, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9633, "end": 9643, "ctxt": 0 }, "value": "SomeObject", "optional": false }, "typeParams": null }, { "type": "TsKeywordType", "span": { "start": 9646, "end": 9655, "ctxt": 0 }, "kind": "undefined" } ] } } } } ], "decorators": [], "span": { "start": 9591, "end": 9903, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 9663, "end": 9903, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 9669, "end": 9901, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 9673, "end": 9726, "ctxt": 0 }, "operator": "!==", "left": { "type": "OptionalChainingExpression", "span": { "start": 9673, "end": 9705, "ctxt": 0 }, "questionDotToken": { "start": 9691, "end": 9692, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 9673, "end": 9705, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9673, "end": 9691, "ctxt": 0 }, "value": "someOptionalObject", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9693, "end": 9705, "ctxt": 0 }, "value": "someProperty", "optional": false } } }, "right": { "type": "Identifier", "span": { "start": 9710, "end": 9726, "ctxt": 0 }, "value": "lastSomeProperty", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 9728, "end": 9901, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 9738, "end": 9770, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 9738, "end": 9769, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 9738, "end": 9749, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9738, "end": 9745, "ctxt": 0 }, "value": "console", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9746, "end": 9749, "ctxt": 0 }, "value": "log", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 9750, "end": 9768, "ctxt": 0 }, "value": "someOptionalObject", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 9779, "end": 9824, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 9779, "end": 9823, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 9779, "end": 9790, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9779, "end": 9786, "ctxt": 0 }, "value": "console", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9787, "end": 9790, "ctxt": 0 }, "value": "log", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "MemberExpression", "span": { "start": 9791, "end": 9822, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9791, "end": 9809, "ctxt": 0 }, "value": "someOptionalObject", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9810, "end": 9822, "ctxt": 0 }, "value": "someProperty", "optional": false } } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 9843, "end": 9895, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 9843, "end": 9894, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 9843, "end": 9859, "ctxt": 0 }, "value": "lastSomeProperty", "optional": false, "typeAnnotation": null }, "right": { "type": "OptionalChainingExpression", "span": { "start": 9862, "end": 9894, "ctxt": 0 }, "questionDotToken": { "start": 9880, "end": 9881, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 9862, "end": 9894, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 9862, "end": 9880, "ctxt": 0 }, "value": "someOptionalObject", "optional": false }, "property": { "type": "Identifier", "span": { "start": 9882, "end": 9894, "ctxt": 0 }, "value": "someProperty", "optional": false } } } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 9656, "end": 9662, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 9658, "end": 9662, "ctxt": 0 }, "kind": "void" } } }, { "type": "VariableDeclaration", "span": { "start": 9905, "end": 9961, "ctxt": 0 }, "kind": "const", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 9911, "end": 9960, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 9911, "end": 9921, "ctxt": 0 }, "value": "someObject", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 9921, "end": 9933, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 9923, "end": 9933, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 9923, "end": 9933, "ctxt": 0 }, "value": "SomeObject", "optional": false }, "typeParams": null } } }, "init": { "type": "ObjectExpression", "span": { "start": 9936, "end": 9960, "ctxt": 0 }, "properties": [ { "type": "KeyValueProperty", "key": { "type": "Identifier", "span": { "start": 9942, "end": 9954, "ctxt": 0 }, "value": "someProperty", "optional": false }, "value": { "type": "NumericLiteral", "span": { "start": 9956, "end": 9958, "ctxt": 0 }, "value": 42.0, "raw": "42" } } ] }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 9963, "end": 9988, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 9963, "end": 9987, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 9963, "end": 9975, "ctxt": 0 }, "value": "someFunction", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 9976, "end": 9986, "ctxt": 0 }, "value": "someObject", "optional": false } } ], "typeArguments": null } }, { "type": "ExpressionStatement", "span": { "start": 9989, "end": 10013, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 9989, "end": 10012, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 9989, "end": 10001, "ctxt": 0 }, "value": "someFunction", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 10002, "end": 10011, "ctxt": 0 }, "value": "undefined", "optional": false } } ], "typeArguments": null } }, { "type": "VariableDeclaration", "span": { "start": 10037, "end": 10047, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 10041, "end": 10046, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 10041, "end": 10042, "ctxt": 0 }, "value": "i", "optional": false, "typeAnnotation": null }, "init": { "type": "NumericLiteral", "span": { "start": 10045, "end": 10046, "ctxt": 0 }, "value": 0.0, "raw": "0" }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 10048, "end": 10097, "ctxt": 0 }, "kind": "const", "declare": true, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 10062, "end": 10096, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 10062, "end": 10065, "ctxt": 0 }, "value": "arr", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10065, "end": 10096, "ctxt": 0 }, "typeAnnotation": { "type": "TsArrayType", "span": { "start": 10067, "end": 10096, "ctxt": 0 }, "elemType": { "type": "TsTypeLiteral", "span": { "start": 10067, "end": 10094, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 10069, "end": 10092, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 10069, "end": 10072, "ctxt": 0 }, "value": "tag", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 10072, "end": 10092, "ctxt": 0 }, "typeAnnotation": { "type": "TsParenthesizedType", "span": { "start": 10074, "end": 10092, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 10075, "end": 10091, "ctxt": 0 }, "types": [ { "type": "TsLiteralType", "span": { "start": 10075, "end": 10081, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 10075, "end": 10081, "ctxt": 0 }, "value": "left", "raw": "\"left\"" } }, { "type": "TsLiteralType", "span": { "start": 10084, "end": 10091, "ctxt": 0 }, "literal": { "type": "StringLiteral", "span": { "start": 10084, "end": 10091, "ctxt": 0 }, "value": "right", "raw": "\"right\"" } } ] } } }, "typeParams": null } ] } } } }, "init": null, "definite": false } ] }, { "type": "WhileStatement", "span": { "start": 10099, "end": 10237, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 10106, "end": 10128, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 10106, "end": 10117, "ctxt": 0 }, "questionDotToken": { "start": 10112, "end": 10113, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 10106, "end": 10117, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 10106, "end": 10112, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 10106, "end": 10109, "ctxt": 0 }, "value": "arr", "optional": false }, "property": { "type": "Computed", "span": { "start": 10109, "end": 10112, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 10110, "end": 10111, "ctxt": 0 }, "value": "i", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 10114, "end": 10117, "ctxt": 0 }, "value": "tag", "optional": false } } }, "right": { "type": "StringLiteral", "span": { "start": 10122, "end": 10128, "ctxt": 0 }, "value": "left", "raw": "\"left\"" } }, "body": { "type": "BlockStatement", "span": { "start": 10130, "end": 10237, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 10136, "end": 10143, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 10136, "end": 10142, "ctxt": 0 }, "operator": "+=", "left": { "type": "Identifier", "span": { "start": 10136, "end": 10137, "ctxt": 0 }, "value": "i", "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 10141, "end": 10142, "ctxt": 0 }, "value": 1.0, "raw": "1" } } }, { "type": "IfStatement", "span": { "start": 10148, "end": 10235, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 10152, "end": 10175, "ctxt": 0 }, "operator": "===", "left": { "type": "OptionalChainingExpression", "span": { "start": 10152, "end": 10163, "ctxt": 0 }, "questionDotToken": { "start": 10158, "end": 10159, "ctxt": 0 }, "base": { "type": "MemberExpression", "span": { "start": 10152, "end": 10163, "ctxt": 0 }, "object": { "type": "MemberExpression", "span": { "start": 10152, "end": 10158, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 10152, "end": 10155, "ctxt": 0 }, "value": "arr", "optional": false }, "property": { "type": "Computed", "span": { "start": 10155, "end": 10158, "ctxt": 0 }, "expression": { "type": "Identifier", "span": { "start": 10156, "end": 10157, "ctxt": 0 }, "value": "i", "optional": false } } }, "property": { "type": "Identifier", "span": { "start": 10160, "end": 10163, "ctxt": 0 }, "value": "tag", "optional": false } } }, "right": { "type": "StringLiteral", "span": { "start": 10168, "end": 10175, "ctxt": 0 }, "value": "right", "raw": "\"right\"" } }, "consequent": { "type": "BlockStatement", "span": { "start": 10177, "end": 10235, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 10187, "end": 10229, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 10187, "end": 10228, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 10187, "end": 10198, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 10187, "end": 10194, "ctxt": 0 }, "value": "console", "optional": false }, "property": { "type": "Identifier", "span": { "start": 10195, "end": 10198, "ctxt": 0 }, "value": "log", "optional": false } }, "arguments": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 10199, "end": 10227, "ctxt": 0 }, "value": "I should ALSO be reachable", "raw": "\"I should ALSO be reachable\"" } } ], "typeArguments": null } } ] }, "alternate": null } ] } } ], "interpreter": null }