swc/crates/swc_ecma_parser/tests/tsc/controlFlowAliasing.json

12468 lines
389 KiB
JSON
Raw Normal View History

{
"type": "Script",
"span": {
"start": 89,
"end": 6710,
"ctxt": 0
},
"body": [
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 98,
"end": 101,
"ctxt": 0
},
"value": "f10",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 102,
"end": 120,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 102,
"end": 120,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 103,
"end": 120,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 105,
"end": 120,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 105,
"end": 111,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 114,
"end": 120,
"ctxt": 0
},
"kind": "number"
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 89,
"end": 266,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 122,
"end": 266,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 128,
"end": 167,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 134,
"end": 166,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 134,
"end": 142,
"ctxt": 0
},
"value": "isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 145,
"end": 166,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 145,
"end": 153,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "Identifier",
"span": {
"start": 152,
"end": 153,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 158,
"end": 166,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 172,
"end": 264,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 176,
"end": 184,
"ctxt": 0
},
"value": "isString",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 186,
"end": 220,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 196,
"end": 214,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 200,
"end": 213,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 200,
"end": 201,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 201,
"end": 209,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 203,
"end": 209,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 212,
"end": 213,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 230,
"end": 264,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 240,
"end": 258,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 244,
"end": 257,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 244,
"end": 245,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 245,
"end": 253,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 247,
"end": 253,
"ctxt": 0
},
"kind": "number"
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 256,
"end": 257,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 277,
"end": 280,
"ctxt": 0
},
"value": "f11",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 281,
"end": 291,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 281,
"end": 291,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 282,
"end": 291,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 284,
"end": 291,
"ctxt": 0
},
"kind": "unknown"
}
}
}
}
],
"decorators": [],
"span": {
"start": 268,
"end": 393,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 293,
"end": 393,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 299,
"end": 338,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 305,
"end": 337,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 305,
"end": 313,
"ctxt": 0
},
"value": "isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 316,
"end": 337,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 316,
"end": 324,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "Identifier",
"span": {
"start": 323,
"end": 324,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 329,
"end": 337,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 343,
"end": 391,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 347,
"end": 355,
"ctxt": 0
},
"value": "isString",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 357,
"end": 391,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 367,
"end": 385,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 371,
"end": 384,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 371,
"end": 372,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 372,
"end": 380,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 374,
"end": 380,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 383,
"end": 384,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 404,
"end": 407,
"ctxt": 0
},
"value": "f12",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 408,
"end": 436,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 408,
"end": 436,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 409,
"end": 436,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 411,
"end": 436,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 411,
"end": 417,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 420,
"end": 426,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsKeywordType",
"span": {
"start": 429,
"end": 436,
"ctxt": 0
},
"kind": "boolean"
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 395,
"end": 648,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 438,
"end": 648,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 444,
"end": 483,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 450,
"end": 482,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 450,
"end": 458,
"ctxt": 0
},
"value": "isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 461,
"end": 482,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 461,
"end": 469,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "Identifier",
"span": {
"start": 468,
"end": 469,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 474,
"end": 482,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 488,
"end": 527,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 494,
"end": 526,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 494,
"end": 502,
"ctxt": 0
},
"value": "isNumber",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 505,
"end": 526,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 505,
"end": 513,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "Identifier",
"span": {
"start": 512,
"end": 513,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 518,
"end": 526,
"ctxt": 0
},
"value": "number",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 532,
"end": 646,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 536,
"end": 556,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "Identifier",
"span": {
"start": 536,
"end": 544,
"ctxt": 0
},
"value": "isString",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 548,
"end": 556,
"ctxt": 0
},
"value": "isNumber",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 558,
"end": 601,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 568,
"end": 595,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 572,
"end": 594,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 572,
"end": 573,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 573,
"end": 590,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 575,
"end": 590,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 575,
"end": 581,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 584,
"end": 590,
"ctxt": 0
},
"kind": "number"
}
]
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 593,
"end": 594,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 611,
"end": 646,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 621,
"end": 640,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 625,
"end": 639,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 625,
"end": 626,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 626,
"end": 635,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 628,
"end": 635,
"ctxt": 0
},
"kind": "boolean"
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 638,
"end": 639,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 659,
"end": 662,
"ctxt": 0
},
"value": "f13",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 663,
"end": 691,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 663,
"end": 691,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 664,
"end": 691,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 666,
"end": 691,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 666,
"end": 672,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 675,
"end": 681,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsKeywordType",
"span": {
"start": 684,
"end": 691,
"ctxt": 0
},
"kind": "boolean"
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 650,
"end": 950,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 693,
"end": 950,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 699,
"end": 738,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 705,
"end": 737,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 705,
"end": 713,
"ctxt": 0
},
"value": "isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 716,
"end": 737,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 716,
"end": 724,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "Identifier",
"span": {
"start": 723,
"end": 724,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 729,
"end": 737,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 743,
"end": 782,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 749,
"end": 781,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 749,
"end": 757,
"ctxt": 0
},
"value": "isNumber",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 760,
"end": 781,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 760,
"end": 768,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "Identifier",
"span": {
"start": 767,
"end": 768,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 773,
"end": 781,
"ctxt": 0
},
"value": "number",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 787,
"end": 833,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 793,
"end": 832,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 793,
"end": 809,
"ctxt": 0
},
"value": "isStringOrNumber",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 812,
"end": 832,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "Identifier",
"span": {
"start": 812,
"end": 820,
"ctxt": 0
},
"value": "isString",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 824,
"end": 832,
"ctxt": 0
},
"value": "isNumber",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 838,
"end": 948,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 842,
"end": 858,
"ctxt": 0
},
"value": "isStringOrNumber",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 860,
"end": 903,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 870,
"end": 897,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 874,
"end": 896,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 874,
"end": 875,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 875,
"end": 892,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 877,
"end": 892,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 877,
"end": 883,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 886,
"end": 892,
"ctxt": 0
},
"kind": "number"
}
]
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 895,
"end": 896,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 913,
"end": 948,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 923,
"end": 942,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 927,
"end": 941,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 927,
"end": 928,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 928,
"end": 937,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 930,
"end": 937,
"ctxt": 0
},
"kind": "boolean"
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 940,
"end": 941,
"ctxt": 0
},
"value": "x",
"optional": false
},
"definite": false
}
]
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 961,
"end": 964,
"ctxt": 0
},
"value": "f14",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 965,
"end": 993,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 965,
"end": 993,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 966,
"end": 993,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 968,
"end": 993,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 968,
"end": 974,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsKeywordType",
"span": {
"start": 977,
"end": 981,
"ctxt": 0
},
"kind": "null"
},
{
"type": "TsKeywordType",
"span": {
"start": 984,
"end": 993,
"ctxt": 0
},
"kind": "undefined"
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 952,
"end": 1088,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1010,
"end": 1088,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1016,
"end": 1053,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1022,
"end": 1052,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1022,
"end": 1034,
"ctxt": 0
},
"value": "notUndefined",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 1037,
"end": 1052,
"ctxt": 0
},
"operator": "!==",
"left": {
"type": "Identifier",
"span": {
"start": 1037,
"end": 1038,
"ctxt": 0
},
"value": "x",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 1043,
"end": 1052,
"ctxt": 0
},
"value": "undefined",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ReturnStatement",
"span": {
"start": 1058,
"end": 1086,
"ctxt": 0
},
"argument": {
"type": "ConditionalExpression",
"span": {
"start": 1065,
"end": 1085,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 1065,
"end": 1077,
"ctxt": 0
},
"value": "notUndefined",
"optional": false
},
"consequent": {
"type": "Identifier",
"span": {
"start": 1080,
"end": 1081,
"ctxt": 0
},
"value": "x",
"optional": false
},
"alternate": {
"type": "NumericLiteral",
"span": {
"start": 1084,
"end": 1085,
"ctxt": 0
},
"value": 0.0
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 994,
"end": 1009,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 996,
"end": 1009,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 996,
"end": 1002,
"ctxt": 0
},
"kind": "number"
},
{
"type": "TsKeywordType",
"span": {
"start": 1005,
"end": 1009,
"ctxt": 0
},
"kind": "null"
}
]
}
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1099,
"end": 1102,
"ctxt": 0
},
"value": "f15",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1103,
"end": 1139,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1103,
"end": 1139,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1106,
"end": 1139,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1108,
"end": 1139,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1110,
"end": 1137,
"ctxt": 0
},
"readonly": true,
"key": {
"type": "Identifier",
"span": {
"start": 1119,
"end": 1120,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1120,
"end": 1137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1122,
"end": 1137,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 1122,
"end": 1128,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 1131,
"end": 1137,
"ctxt": 0
},
"kind": "number"
}
]
}
},
"typeParams": null
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 1090,
"end": 1249,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1141,
"end": 1249,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1147,
"end": 1190,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1153,
"end": 1189,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1153,
"end": 1161,
"ctxt": 0
},
"value": "isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 1164,
"end": 1189,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 1164,
"end": 1176,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "MemberExpression",
"span": {
"start": 1171,
"end": 1176,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1171,
"end": 1174,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1175,
"end": 1176,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 1181,
"end": 1189,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 1195,
"end": 1247,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 1199,
"end": 1207,
"ctxt": 0
},
"value": "isString",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 1209,
"end": 1247,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1219,
"end": 1241,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1223,
"end": 1240,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1223,
"end": 1224,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1224,
"end": 1232,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1226,
"end": 1232,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 1235,
"end": 1240,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1235,
"end": 1238,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1239,
"end": 1240,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"definite": false
}
]
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1260,
"end": 1263,
"ctxt": 0
},
"value": "f16",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1264,
"end": 1300,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1264,
"end": 1300,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1267,
"end": 1300,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 1269,
"end": 1300,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1271,
"end": 1298,
"ctxt": 0
},
"readonly": true,
"key": {
"type": "Identifier",
"span": {
"start": 1280,
"end": 1281,
"ctxt": 0
},
"value": "x",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1281,
"end": 1298,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1283,
"end": 1298,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 1283,
"end": 1289,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 1292,
"end": 1298,
"ctxt": 0
},
"kind": "number"
}
]
}
},
"typeParams": null
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 1251,
"end": 1488,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1302,
"end": 1488,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1308,
"end": 1351,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1314,
"end": 1350,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1314,
"end": 1322,
"ctxt": 0
},
"value": "isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 1325,
"end": 1350,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 1325,
"end": 1337,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "MemberExpression",
"span": {
"start": 1332,
"end": 1337,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1332,
"end": 1335,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1336,
"end": 1337,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 1342,
"end": 1350,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1356,
"end": 1372,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1356,
"end": 1371,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1356,
"end": 1359,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "ObjectExpression",
"span": {
"start": 1362,
"end": 1371,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 1364,
"end": 1365,
"ctxt": 0
},
"value": "x",
"optional": false
},
"value": {
"type": "NumericLiteral",
"span": {
"start": 1367,
"end": 1369,
"ctxt": 0
},
"value": 42.0
}
}
]
}
}
},
{
"type": "IfStatement",
"span": {
"start": 1377,
"end": 1486,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 1381,
"end": 1389,
"ctxt": 0
},
"value": "isString",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 1391,
"end": 1486,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1401,
"end": 1423,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1405,
"end": 1422,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1405,
"end": 1406,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1406,
"end": 1414,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1408,
"end": 1414,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 1417,
"end": 1422,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1417,
"end": 1420,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1421,
"end": 1422,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"definite": false
}
]
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1499,
"end": 1502,
"ctxt": 0
},
"value": "f17",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1503,
"end": 1534,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1503,
"end": 1534,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1506,
"end": 1534,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1508,
"end": 1534,
"ctxt": 0
},
"op": "readonly",
"typeAnnotation": {
"type": "TsTupleType",
"span": {
"start": 1517,
"end": 1534,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 1518,
"end": 1533,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsUnionType",
"span": {
"start": 1518,
"end": 1533,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 1518,
"end": 1524,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 1527,
"end": 1533,
"ctxt": 0
},
"kind": "number"
}
]
}
}
]
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 1490,
"end": 1646,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1536,
"end": 1646,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1542,
"end": 1586,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1548,
"end": 1585,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1548,
"end": 1556,
"ctxt": 0
},
"value": "isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 1559,
"end": 1585,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 1559,
"end": 1572,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "MemberExpression",
"span": {
"start": 1566,
"end": 1572,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1566,
"end": 1569,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 1569,
"end": 1572,
"ctxt": 0
},
"expression": {
"type": "NumericLiteral",
"span": {
"start": 1570,
"end": 1571,
"ctxt": 0
},
"value": 0.0
}
}
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 1577,
"end": 1585,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 1591,
"end": 1644,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 1595,
"end": 1603,
"ctxt": 0
},
"value": "isString",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 1605,
"end": 1644,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1615,
"end": 1638,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1619,
"end": 1637,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1619,
"end": 1620,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1620,
"end": 1628,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1622,
"end": 1628,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 1631,
"end": 1637,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1631,
"end": 1634,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 1634,
"end": 1637,
"ctxt": 0
},
"expression": {
"type": "NumericLiteral",
"span": {
"start": 1635,
"end": 1636,
"ctxt": 0
},
"value": 0.0
}
}
},
"definite": false
}
]
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1657,
"end": 1660,
"ctxt": 0
},
"value": "f18",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1661,
"end": 1692,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1661,
"end": 1692,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1664,
"end": 1692,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeOperator",
"span": {
"start": 1666,
"end": 1692,
"ctxt": 0
},
"op": "readonly",
"typeAnnotation": {
"type": "TsTupleType",
"span": {
"start": 1675,
"end": 1692,
"ctxt": 0
},
"elemTypes": [
{
"type": "TsTupleElement",
"span": {
"start": 1676,
"end": 1691,
"ctxt": 0
},
"label": null,
"ty": {
"type": "TsUnionType",
"span": {
"start": 1676,
"end": 1691,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 1676,
"end": 1682,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 1685,
"end": 1691,
"ctxt": 0
},
"kind": "number"
}
]
}
}
]
}
}
}
}
}
],
"decorators": [],
"span": {
"start": 1648,
"end": 1877,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1694,
"end": 1877,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1700,
"end": 1744,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1706,
"end": 1743,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1706,
"end": 1714,
"ctxt": 0
},
"value": "isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 1717,
"end": 1743,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 1717,
"end": 1730,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "MemberExpression",
"span": {
"start": 1724,
"end": 1730,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1724,
"end": 1727,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 1727,
"end": 1730,
"ctxt": 0
},
"expression": {
"type": "NumericLiteral",
"span": {
"start": 1728,
"end": 1729,
"ctxt": 0
},
"value": 0.0
}
}
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 1735,
"end": 1743,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 1749,
"end": 1760,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1749,
"end": 1759,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 1749,
"end": 1752,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "ArrayExpression",
"span": {
"start": 1755,
"end": 1759,
"ctxt": 0
},
"elements": [
{
"spread": null,
"expression": {
"type": "NumericLiteral",
"span": {
"start": 1756,
"end": 1758,
"ctxt": 0
},
"value": 42.0
}
}
]
}
}
},
{
"type": "IfStatement",
"span": {
"start": 1765,
"end": 1875,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 1769,
"end": 1777,
"ctxt": 0
},
"value": "isString",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 1779,
"end": 1875,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1789,
"end": 1812,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1793,
"end": 1811,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1793,
"end": 1794,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1794,
"end": 1802,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1796,
"end": 1802,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 1805,
"end": 1811,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1805,
"end": 1808,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Computed",
"span": {
"start": 1808,
"end": 1811,
"ctxt": 0
},
"expression": {
"type": "NumericLiteral",
"span": {
"start": 1809,
"end": 1810,
"ctxt": 0
},
"value": 0.0
}
}
},
"definite": false
}
]
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1888,
"end": 1891,
"ctxt": 0
},
"value": "f20",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1892,
"end": 1956,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1892,
"end": 1956,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1895,
"end": 1956,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 1897,
"end": 1956,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 1897,
"end": 1925,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1899,
"end": 1911,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1899,
"end": 1903,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1903,
"end": 1910,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1905,
"end": 1910,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1905,
"end": 1910,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1912,
"end": 1923,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1912,
"end": 1915,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1915,
"end": 1923,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1917,
"end": 1923,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 1928,
"end": 1956,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 1930,
"end": 1942,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1930,
"end": 1934,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1934,
"end": 1941,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 1936,
"end": 1941,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 1936,
"end": 1941,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 1943,
"end": 1954,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 1943,
"end": 1946,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1946,
"end": 1954,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1948,
"end": 1954,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 1879,
"end": 2073,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1958,
"end": 2073,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1964,
"end": 1997,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1970,
"end": 1996,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1970,
"end": 1975,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 1978,
"end": 1996,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 1978,
"end": 1986,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1978,
"end": 1981,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1982,
"end": 1986,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 1991,
"end": 1996,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 2002,
"end": 2071,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 2006,
"end": 2011,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2013,
"end": 2037,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2023,
"end": 2031,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2023,
"end": 2030,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2023,
"end": 2026,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2027,
"end": 2030,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 2047,
"end": 2071,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2057,
"end": 2065,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2057,
"end": 2064,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2057,
"end": 2060,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2061,
"end": 2064,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2084,
"end": 2087,
"ctxt": 0
},
"value": "f21",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2088,
"end": 2152,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2088,
"end": 2152,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2091,
"end": 2152,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2093,
"end": 2152,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 2093,
"end": 2121,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2095,
"end": 2107,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2095,
"end": 2099,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2099,
"end": 2106,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2101,
"end": 2106,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2101,
"end": 2106,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2108,
"end": 2119,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2108,
"end": 2111,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2111,
"end": 2119,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2113,
"end": 2119,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2124,
"end": 2152,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2126,
"end": 2138,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2126,
"end": 2130,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2130,
"end": 2137,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2132,
"end": 2137,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2132,
"end": 2137,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2139,
"end": 2150,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2139,
"end": 2142,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2142,
"end": 2150,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2144,
"end": 2150,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 2075,
"end": 2380,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2154,
"end": 2380,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 2160,
"end": 2202,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2166,
"end": 2201,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2166,
"end": 2171,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2171,
"end": 2180,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2173,
"end": 2180,
"ctxt": 0
},
"kind": "boolean"
}
}
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 2183,
"end": 2201,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 2183,
"end": 2191,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2183,
"end": 2186,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2187,
"end": 2191,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 2196,
"end": 2201,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 2207,
"end": 2378,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 2211,
"end": 2216,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2218,
"end": 2293,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2228,
"end": 2236,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2228,
"end": 2235,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2228,
"end": 2231,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2232,
"end": 2235,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 2303,
"end": 2378,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2313,
"end": 2321,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2313,
"end": 2320,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2313,
"end": 2316,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2317,
"end": 2320,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2391,
"end": 2394,
"ctxt": 0
},
"value": "f22",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2395,
"end": 2459,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2395,
"end": 2459,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2398,
"end": 2459,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2400,
"end": 2459,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 2400,
"end": 2428,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2402,
"end": 2414,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2402,
"end": 2406,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2406,
"end": 2413,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2408,
"end": 2413,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2408,
"end": 2413,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2415,
"end": 2426,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2415,
"end": 2418,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2418,
"end": 2426,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2420,
"end": 2426,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2431,
"end": 2459,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2433,
"end": 2445,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2433,
"end": 2437,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2437,
"end": 2444,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2439,
"end": 2444,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2439,
"end": 2444,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2446,
"end": 2457,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2446,
"end": 2449,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2449,
"end": 2457,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2451,
"end": 2457,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 2382,
"end": 2658,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2461,
"end": 2658,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 2467,
"end": 2498,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2471,
"end": 2497,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2471,
"end": 2476,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 2479,
"end": 2497,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 2479,
"end": 2487,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2479,
"end": 2482,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2483,
"end": 2487,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 2492,
"end": 2497,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 2503,
"end": 2656,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 2507,
"end": 2512,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2514,
"end": 2580,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2524,
"end": 2532,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2524,
"end": 2531,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2524,
"end": 2527,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2528,
"end": 2531,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 2590,
"end": 2656,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2600,
"end": 2608,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2600,
"end": 2607,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2600,
"end": 2603,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2604,
"end": 2607,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2669,
"end": 2672,
"ctxt": 0
},
"value": "f23",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 2673,
"end": 2737,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 2673,
"end": 2737,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2676,
"end": 2737,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 2678,
"end": 2737,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 2678,
"end": 2706,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2680,
"end": 2692,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2680,
"end": 2684,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2684,
"end": 2691,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2686,
"end": 2691,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2686,
"end": 2691,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2693,
"end": 2704,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2693,
"end": 2696,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2696,
"end": 2704,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2698,
"end": 2704,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 2709,
"end": 2737,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 2711,
"end": 2723,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2711,
"end": 2715,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2715,
"end": 2722,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 2717,
"end": 2722,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 2717,
"end": 2722,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 2724,
"end": 2735,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 2724,
"end": 2727,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2727,
"end": 2735,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 2729,
"end": 2735,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 2660,
"end": 2985,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 2739,
"end": 2985,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 2745,
"end": 2778,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2751,
"end": 2777,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2751,
"end": 2756,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 2759,
"end": 2777,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 2759,
"end": 2767,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2759,
"end": 2762,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2763,
"end": 2767,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 2772,
"end": 2777,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 2783,
"end": 2793,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2783,
"end": 2792,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2783,
"end": 2786,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 2789,
"end": 2792,
"ctxt": 0
},
"value": "obj",
"optional": false
}
}
},
{
"type": "IfStatement",
"span": {
"start": 2798,
"end": 2983,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 2802,
"end": 2807,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2809,
"end": 2891,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2819,
"end": 2827,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2819,
"end": 2826,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2819,
"end": 2822,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2823,
"end": 2826,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 2901,
"end": 2983,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2911,
"end": 2919,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 2911,
"end": 2918,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2911,
"end": 2914,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2915,
"end": 2918,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 2996,
"end": 2999,
"ctxt": 0
},
"value": "f24",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3000,
"end": 3064,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3000,
"end": 3064,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3003,
"end": 3064,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3005,
"end": 3064,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 3005,
"end": 3033,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3007,
"end": 3019,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3007,
"end": 3011,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3011,
"end": 3018,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3013,
"end": 3018,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3013,
"end": 3018,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3020,
"end": 3031,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3020,
"end": 3023,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3023,
"end": 3031,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3025,
"end": 3031,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 3036,
"end": 3064,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3038,
"end": 3050,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3038,
"end": 3042,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3042,
"end": 3049,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3044,
"end": 3049,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3044,
"end": 3049,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3051,
"end": 3062,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3051,
"end": 3054,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3054,
"end": 3062,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3056,
"end": 3062,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 2987,
"end": 3202,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3066,
"end": 3202,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3072,
"end": 3088,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3078,
"end": 3087,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3078,
"end": 3081,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "Identifier",
"span": {
"start": 3084,
"end": 3087,
"ctxt": 0
},
"value": "arg",
"optional": false
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3093,
"end": 3126,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3099,
"end": 3125,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3099,
"end": 3104,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 3107,
"end": 3125,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 3107,
"end": 3115,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3107,
"end": 3110,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3111,
"end": 3115,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 3120,
"end": 3125,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 3131,
"end": 3200,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3135,
"end": 3140,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3142,
"end": 3166,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3152,
"end": 3160,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 3152,
"end": 3159,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3152,
"end": 3155,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3156,
"end": 3159,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 3176,
"end": 3200,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3186,
"end": 3194,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 3186,
"end": 3193,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3186,
"end": 3189,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3190,
"end": 3193,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3213,
"end": 3216,
"ctxt": 0
},
"value": "f25",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3217,
"end": 3281,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3217,
"end": 3281,
"ctxt": 0
},
"value": "arg",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3220,
"end": 3281,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3222,
"end": 3281,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 3222,
"end": 3250,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3224,
"end": 3236,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3224,
"end": 3228,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3228,
"end": 3235,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3230,
"end": 3235,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3230,
"end": 3235,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3237,
"end": 3248,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3237,
"end": 3240,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3240,
"end": 3248,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3242,
"end": 3248,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 3253,
"end": 3281,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3255,
"end": 3267,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3255,
"end": 3259,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3259,
"end": 3266,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3261,
"end": 3266,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3261,
"end": 3266,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3268,
"end": 3279,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3268,
"end": 3271,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3271,
"end": 3279,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3273,
"end": 3279,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 3204,
"end": 3497,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3283,
"end": 3497,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3289,
"end": 3303,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3293,
"end": 3302,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3293,
"end": 3296,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "Identifier",
"span": {
"start": 3299,
"end": 3302,
"ctxt": 0
},
"value": "arg",
"optional": false
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3308,
"end": 3341,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3314,
"end": 3340,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3314,
"end": 3319,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 3322,
"end": 3340,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 3322,
"end": 3330,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3322,
"end": 3325,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3326,
"end": 3330,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 3335,
"end": 3340,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 3346,
"end": 3495,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3350,
"end": 3355,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3357,
"end": 3421,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3367,
"end": 3375,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 3367,
"end": 3374,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3367,
"end": 3370,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3371,
"end": 3374,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 3431,
"end": 3495,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3441,
"end": 3449,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 3441,
"end": 3448,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3441,
"end": 3444,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3445,
"end": 3448,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3508,
"end": 3511,
"ctxt": 0
},
"value": "f26",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3512,
"end": 3596,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3512,
"end": 3596,
"ctxt": 0
},
"value": "outer",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3517,
"end": 3596,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3519,
"end": 3596,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3521,
"end": 3594,
"ctxt": 0
},
"readonly": true,
"key": {
"type": "Identifier",
"span": {
"start": 3530,
"end": 3533,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3533,
"end": 3594,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3535,
"end": 3594,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 3535,
"end": 3563,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3537,
"end": 3549,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3537,
"end": 3541,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3541,
"end": 3548,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3543,
"end": 3548,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3543,
"end": 3548,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3550,
"end": 3561,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3550,
"end": 3553,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3553,
"end": 3561,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3555,
"end": 3561,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 3566,
"end": 3594,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3568,
"end": 3580,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3568,
"end": 3572,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3572,
"end": 3579,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3574,
"end": 3579,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3574,
"end": 3579,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3581,
"end": 3592,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3581,
"end": 3584,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3584,
"end": 3592,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3586,
"end": 3592,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
},
"typeParams": null
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 3499,
"end": 3731,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3598,
"end": 3731,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3604,
"end": 3643,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3610,
"end": 3642,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3610,
"end": 3615,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 3618,
"end": 3642,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 3618,
"end": 3632,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3618,
"end": 3627,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3618,
"end": 3623,
"ctxt": 0
},
"value": "outer",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3624,
"end": 3627,
"ctxt": 0
},
"value": "obj",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3628,
"end": 3632,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 3637,
"end": 3642,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 3648,
"end": 3729,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3652,
"end": 3657,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3659,
"end": 3689,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3669,
"end": 3683,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 3669,
"end": 3682,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3669,
"end": 3678,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3669,
"end": 3674,
"ctxt": 0
},
"value": "outer",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3675,
"end": 3678,
"ctxt": 0
},
"value": "obj",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3679,
"end": 3682,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 3699,
"end": 3729,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3709,
"end": 3723,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 3709,
"end": 3722,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3709,
"end": 3718,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3709,
"end": 3714,
"ctxt": 0
},
"value": "outer",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3715,
"end": 3718,
"ctxt": 0
},
"value": "obj",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3719,
"end": 3722,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3742,
"end": 3745,
"ctxt": 0
},
"value": "f27",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3746,
"end": 3821,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3746,
"end": 3821,
"ctxt": 0
},
"value": "outer",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3751,
"end": 3821,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeLiteral",
"span": {
"start": 3753,
"end": 3821,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3755,
"end": 3819,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3755,
"end": 3758,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3758,
"end": 3819,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 3760,
"end": 3819,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 3760,
"end": 3788,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3762,
"end": 3774,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3762,
"end": 3766,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3766,
"end": 3773,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3768,
"end": 3773,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3768,
"end": 3773,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3775,
"end": 3786,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3775,
"end": 3778,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3778,
"end": 3786,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3780,
"end": 3786,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 3791,
"end": 3819,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 3793,
"end": 3805,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3793,
"end": 3797,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3797,
"end": 3804,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 3799,
"end": 3804,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 3799,
"end": 3804,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 3806,
"end": 3817,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 3806,
"end": 3809,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3809,
"end": 3817,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 3811,
"end": 3817,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
},
"typeParams": null
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 3733,
"end": 4036,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3823,
"end": 4036,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3829,
"end": 3868,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3835,
"end": 3867,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3835,
"end": 3840,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 3843,
"end": 3867,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 3843,
"end": 3857,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3843,
"end": 3852,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3843,
"end": 3848,
"ctxt": 0
},
"value": "outer",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3849,
"end": 3852,
"ctxt": 0
},
"value": "obj",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3853,
"end": 3857,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 3862,
"end": 3867,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 3873,
"end": 4034,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3877,
"end": 3882,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3884,
"end": 3954,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3894,
"end": 3908,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 3894,
"end": 3907,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3894,
"end": 3903,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3894,
"end": 3899,
"ctxt": 0
},
"value": "outer",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3900,
"end": 3903,
"ctxt": 0
},
"value": "obj",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3904,
"end": 3907,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 3964,
"end": 4034,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3974,
"end": 3988,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 3974,
"end": 3987,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3974,
"end": 3983,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3974,
"end": 3979,
"ctxt": 0
},
"value": "outer",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3980,
"end": 3983,
"ctxt": 0
},
"value": "obj",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3984,
"end": 3987,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4047,
"end": 4050,
"ctxt": 0
},
"value": "f28",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4051,
"end": 4116,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4051,
"end": 4116,
"ctxt": 0
},
"value": "obj",
"optional": true,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4055,
"end": 4116,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4057,
"end": 4116,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 4057,
"end": 4085,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4059,
"end": 4071,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4059,
"end": 4063,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4063,
"end": 4070,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4065,
"end": 4070,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4065,
"end": 4070,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4072,
"end": 4083,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4072,
"end": 4075,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4075,
"end": 4083,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4077,
"end": 4083,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 4088,
"end": 4116,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4090,
"end": 4102,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4090,
"end": 4094,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4094,
"end": 4101,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4096,
"end": 4101,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4096,
"end": 4101,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4103,
"end": 4114,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4103,
"end": 4106,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4106,
"end": 4114,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4108,
"end": 4114,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 4038,
"end": 4291,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4118,
"end": 4291,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4124,
"end": 4164,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4130,
"end": 4163,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4130,
"end": 4135,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 4138,
"end": 4163,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 4138,
"end": 4141,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 4145,
"end": 4163,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 4145,
"end": 4153,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4145,
"end": 4148,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4149,
"end": 4153,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 4158,
"end": 4163,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4169,
"end": 4209,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4175,
"end": 4208,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4175,
"end": 4180,
"ctxt": 0
},
"value": "isBar",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 4183,
"end": 4208,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 4183,
"end": 4186,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 4190,
"end": 4208,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 4190,
"end": 4198,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4190,
"end": 4193,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4194,
"end": 4198,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 4203,
"end": 4208,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 4214,
"end": 4249,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 4218,
"end": 4223,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 4225,
"end": 4249,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4235,
"end": 4243,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 4235,
"end": 4242,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4235,
"end": 4238,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4239,
"end": 4242,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": null
},
{
"type": "IfStatement",
"span": {
"start": 4254,
"end": 4289,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 4258,
"end": 4263,
"ctxt": 0
},
"value": "isBar",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 4265,
"end": 4289,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4275,
"end": 4283,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 4275,
"end": 4282,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4275,
"end": 4278,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4279,
"end": 4282,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4356,
"end": 4359,
"ctxt": 0
},
"value": "f30",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4360,
"end": 4424,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4360,
"end": 4424,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4363,
"end": 4424,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4365,
"end": 4424,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 4365,
"end": 4393,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4367,
"end": 4379,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4367,
"end": 4371,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4371,
"end": 4378,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4373,
"end": 4378,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4373,
"end": 4378,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4380,
"end": 4391,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4380,
"end": 4383,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4383,
"end": 4391,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4385,
"end": 4391,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 4396,
"end": 4424,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4398,
"end": 4410,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4398,
"end": 4402,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4402,
"end": 4409,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4404,
"end": 4409,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4404,
"end": 4409,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4411,
"end": 4422,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4411,
"end": 4414,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4414,
"end": 4422,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4416,
"end": 4422,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 4347,
"end": 4539,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4426,
"end": 4539,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4432,
"end": 4454,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4438,
"end": 4453,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4438,
"end": 4442,
"ctxt": 0
},
"value": "kind",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 4445,
"end": 4453,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4445,
"end": 4448,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4449,
"end": 4453,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 4459,
"end": 4537,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 4463,
"end": 4477,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "Identifier",
"span": {
"start": 4463,
"end": 4467,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 4472,
"end": 4477,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 4479,
"end": 4503,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4489,
"end": 4497,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 4489,
"end": 4496,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4489,
"end": 4492,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4493,
"end": 4496,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 4513,
"end": 4537,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4523,
"end": 4531,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 4523,
"end": 4530,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4523,
"end": 4526,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4527,
"end": 4530,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4550,
"end": 4553,
"ctxt": 0
},
"value": "f31",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4554,
"end": 4618,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4554,
"end": 4618,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4557,
"end": 4618,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4559,
"end": 4618,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 4559,
"end": 4587,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4561,
"end": 4573,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4561,
"end": 4565,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4565,
"end": 4572,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4567,
"end": 4572,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4567,
"end": 4572,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4574,
"end": 4585,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4574,
"end": 4577,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4577,
"end": 4585,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4579,
"end": 4585,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 4590,
"end": 4618,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4592,
"end": 4604,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4592,
"end": 4596,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4596,
"end": 4603,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4598,
"end": 4603,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4598,
"end": 4603,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4605,
"end": 4616,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4605,
"end": 4608,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4608,
"end": 4616,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4610,
"end": 4616,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 4541,
"end": 4732,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4620,
"end": 4732,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4626,
"end": 4647,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4632,
"end": 4646,
"ctxt": 0
},
"id": {
"type": "ObjectPattern",
"span": {
"start": 4632,
"end": 4640,
"ctxt": 0
},
"properties": [
{
"type": "AssignmentPatternProperty",
"span": {
"start": 4634,
"end": 4638,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 4634,
"end": 4638,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"value": null
}
],
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "Identifier",
"span": {
"start": 4643,
"end": 4646,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 4652,
"end": 4730,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 4656,
"end": 4670,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "Identifier",
"span": {
"start": 4656,
"end": 4660,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 4665,
"end": 4670,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 4672,
"end": 4696,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4682,
"end": 4690,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 4682,
"end": 4689,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4682,
"end": 4685,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4686,
"end": 4689,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 4706,
"end": 4730,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4716,
"end": 4724,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 4716,
"end": 4723,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4716,
"end": 4719,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4720,
"end": 4723,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4743,
"end": 4746,
"ctxt": 0
},
"value": "f32",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4747,
"end": 4811,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4747,
"end": 4811,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4750,
"end": 4811,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4752,
"end": 4811,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 4752,
"end": 4780,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4754,
"end": 4766,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4754,
"end": 4758,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4758,
"end": 4765,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4760,
"end": 4765,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4760,
"end": 4765,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4767,
"end": 4778,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4767,
"end": 4770,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4770,
"end": 4778,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4772,
"end": 4778,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 4783,
"end": 4811,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4785,
"end": 4797,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4785,
"end": 4789,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4789,
"end": 4796,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4791,
"end": 4796,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4791,
"end": 4796,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4798,
"end": 4809,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4798,
"end": 4801,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4801,
"end": 4809,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4803,
"end": 4809,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 4734,
"end": 4925,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4813,
"end": 4925,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4819,
"end": 4843,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4825,
"end": 4842,
"ctxt": 0
},
"id": {
"type": "ObjectPattern",
"span": {
"start": 4825,
"end": 4836,
"ctxt": 0
},
"properties": [
{
"type": "KeyValuePatternProperty",
"key": {
"type": "Identifier",
"span": {
"start": 4827,
"end": 4831,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"value": {
"type": "Identifier",
"span": {
"start": 4833,
"end": 4834,
"ctxt": 0
},
"value": "k",
"optional": false,
"typeAnnotation": null
}
}
],
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "Identifier",
"span": {
"start": 4839,
"end": 4842,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 4848,
"end": 4923,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 4852,
"end": 4863,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "Identifier",
"span": {
"start": 4852,
"end": 4853,
"ctxt": 0
},
"value": "k",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 4858,
"end": 4863,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 4865,
"end": 4889,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4875,
"end": 4883,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 4875,
"end": 4882,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4875,
"end": 4878,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4879,
"end": 4882,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 4899,
"end": 4923,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4909,
"end": 4917,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 4909,
"end": 4916,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4909,
"end": 4912,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4913,
"end": 4916,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4936,
"end": 4939,
"ctxt": 0
},
"value": "f33",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4940,
"end": 5004,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4940,
"end": 5004,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4943,
"end": 5004,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 4945,
"end": 5004,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 4945,
"end": 4973,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4947,
"end": 4959,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4947,
"end": 4951,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4951,
"end": 4958,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4953,
"end": 4958,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4953,
"end": 4958,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4960,
"end": 4971,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4960,
"end": 4963,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4963,
"end": 4971,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4965,
"end": 4971,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 4976,
"end": 5004,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 4978,
"end": 4990,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4978,
"end": 4982,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4982,
"end": 4989,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 4984,
"end": 4989,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 4984,
"end": 4989,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 4991,
"end": 5002,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 4991,
"end": 4994,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4994,
"end": 5002,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 4996,
"end": 5002,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 4927,
"end": 5133,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5006,
"end": 5133,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5012,
"end": 5033,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5018,
"end": 5032,
"ctxt": 0
},
"id": {
"type": "ObjectPattern",
"span": {
"start": 5018,
"end": 5026,
"ctxt": 0
},
"properties": [
{
"type": "AssignmentPatternProperty",
"span": {
"start": 5020,
"end": 5024,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 5020,
"end": 5024,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"value": null
}
],
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "Identifier",
"span": {
"start": 5029,
"end": 5032,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"definite": false
}
]
},
{
"type": "SwitchStatement",
"span": {
"start": 5038,
"end": 5131,
"ctxt": 0
},
"discriminant": {
"type": "Identifier",
"span": {
"start": 5046,
"end": 5050,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"cases": [
{
"type": "SwitchCase",
"span": {
"start": 5062,
"end": 5089,
"ctxt": 0
},
"test": {
"type": "StringLiteral",
"span": {
"start": 5067,
"end": 5072,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"consequent": [
{
"type": "ExpressionStatement",
"span": {
"start": 5074,
"end": 5082,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 5074,
"end": 5081,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5074,
"end": 5077,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5078,
"end": 5081,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
},
{
"type": "BreakStatement",
"span": {
"start": 5083,
"end": 5089,
"ctxt": 0
},
"label": null
}
]
},
{
"type": "SwitchCase",
"span": {
"start": 5098,
"end": 5125,
"ctxt": 0
},
"test": {
"type": "StringLiteral",
"span": {
"start": 5103,
"end": 5108,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
},
"consequent": [
{
"type": "ExpressionStatement",
"span": {
"start": 5110,
"end": 5118,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 5110,
"end": 5117,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5110,
"end": 5113,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5114,
"end": 5117,
"ctxt": 0
},
"value": "bar",
"optional": false
}
}
},
{
"type": "BreakStatement",
"span": {
"start": 5119,
"end": 5125,
"ctxt": 0
},
"label": null
}
]
}
]
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5142,
"end": 5145,
"ctxt": 0
},
"value": "C10",
"optional": false
},
"declare": false,
"span": {
"start": 5136,
"end": 5433,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 5152,
"end": 5431,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 5152,
"end": 5163,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "TsParameterProperty",
"span": {
"start": 5164,
"end": 5191,
"ctxt": 0
},
"decorators": [],
"accessibility": null,
"override": false,
"readonly": true,
"param": {
"type": "Identifier",
"span": {
"start": 5173,
"end": 5191,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5174,
"end": 5191,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 5176,
"end": 5191,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 5176,
"end": 5182,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 5185,
"end": 5191,
"ctxt": 0
},
"kind": "number"
}
]
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 5193,
"end": 5431,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5203,
"end": 5253,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5209,
"end": 5252,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5209,
"end": 5223,
"ctxt": 0
},
"value": "thisX_isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 5226,
"end": 5252,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 5226,
"end": 5239,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "MemberExpression",
"span": {
"start": 5233,
"end": 5239,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 5233,
"end": 5237,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5238,
"end": 5239,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 5244,
"end": 5252,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5262,
"end": 5302,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5268,
"end": 5301,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5268,
"end": 5277,
"ctxt": 0
},
"value": "xIsString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 5280,
"end": 5301,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 5280,
"end": 5288,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "Identifier",
"span": {
"start": 5287,
"end": 5288,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 5293,
"end": 5301,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 5311,
"end": 5425,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 5315,
"end": 5342,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 5315,
"end": 5329,
"ctxt": 0
},
"value": "thisX_isString",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 5333,
"end": 5342,
"ctxt": 0
},
"value": "xIsString",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 5344,
"end": 5425,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5358,
"end": 5372,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5362,
"end": 5371,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5362,
"end": 5363,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5363,
"end": 5371,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5365,
"end": 5371,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 5385,
"end": 5396,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5385,
"end": 5395,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 5385,
"end": 5386,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 5389,
"end": 5395,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 5389,
"end": 5393,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5394,
"end": 5395,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5409,
"end": 5415,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5409,
"end": 5414,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 5409,
"end": 5410,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 5413,
"end": 5414,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
}
]
},
"alternate": null
}
]
},
"accessibility": null,
"isOptional": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5441,
"end": 5444,
"ctxt": 0
},
"value": "C11",
"optional": false
},
"declare": false,
"span": {
"start": 5435,
"end": 5878,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 5451,
"end": 5876,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 5451,
"end": 5462,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "TsParameterProperty",
"span": {
"start": 5463,
"end": 5490,
"ctxt": 0
},
"decorators": [],
"accessibility": null,
"override": false,
"readonly": true,
"param": {
"type": "Identifier",
"span": {
"start": 5472,
"end": 5490,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5473,
"end": 5490,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 5475,
"end": 5490,
"ctxt": 0
},
"types": [
{
"type": "TsKeywordType",
"span": {
"start": 5475,
"end": 5481,
"ctxt": 0
},
"kind": "string"
},
{
"type": "TsKeywordType",
"span": {
"start": 5484,
"end": 5490,
"ctxt": 0
},
"kind": "number"
}
]
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 5492,
"end": 5876,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5502,
"end": 5552,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5508,
"end": 5551,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5508,
"end": 5522,
"ctxt": 0
},
"value": "thisX_isString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 5525,
"end": 5551,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 5525,
"end": 5538,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "MemberExpression",
"span": {
"start": 5532,
"end": 5538,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 5532,
"end": 5536,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5537,
"end": 5538,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 5543,
"end": 5551,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5561,
"end": 5601,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5567,
"end": 5600,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5567,
"end": 5576,
"ctxt": 0
},
"value": "xIsString",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 5579,
"end": 5600,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "UnaryExpression",
"span": {
"start": 5579,
"end": 5587,
"ctxt": 0
},
"operator": "typeof",
"argument": {
"type": "Identifier",
"span": {
"start": 5586,
"end": 5587,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 5592,
"end": 5600,
"ctxt": 0
},
"value": "string",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 5610,
"end": 5870,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 5614,
"end": 5641,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 5614,
"end": 5628,
"ctxt": 0
},
"value": "thisX_isString",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 5632,
"end": 5641,
"ctxt": 0
},
"value": "xIsString",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 5643,
"end": 5800,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5733,
"end": 5747,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5737,
"end": 5746,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5737,
"end": 5738,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5738,
"end": 5746,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5740,
"end": 5746,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": null,
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 5760,
"end": 5771,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5760,
"end": 5770,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 5760,
"end": 5761,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 5764,
"end": 5770,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 5764,
"end": 5768,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5769,
"end": 5770,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5784,
"end": 5790,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5784,
"end": 5789,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 5784,
"end": 5785,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "Identifier",
"span": {
"start": 5788,
"end": 5789,
"ctxt": 0
},
"value": "x",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 5814,
"end": 5870,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 5828,
"end": 5840,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5828,
"end": 5839,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5828,
"end": 5834,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 5828,
"end": 5832,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5833,
"end": 5834,
"ctxt": 0
},
"value": "x",
"optional": false
}
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 5837,
"end": 5839,
"ctxt": 0
},
"value": 10.0
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5853,
"end": 5860,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5853,
"end": 5859,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 5853,
"end": 5854,
"ctxt": 0
},
"value": "x",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 5857,
"end": 5859,
"ctxt": 0
},
"value": 10.0
}
}
}
]
}
}
]
},
"accessibility": null,
"isOptional": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5942,
"end": 5945,
"ctxt": 0
},
"value": "f40",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5946,
"end": 6012,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5946,
"end": 6012,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5949,
"end": 6012,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 5951,
"end": 6012,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 5951,
"end": 5980,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 5953,
"end": 5965,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5953,
"end": 5957,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5957,
"end": 5964,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 5959,
"end": 5964,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 5959,
"end": 5964,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 5966,
"end": 5978,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5966,
"end": 5969,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5970,
"end": 5978,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 5972,
"end": 5978,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 5983,
"end": 6012,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 5985,
"end": 5997,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5985,
"end": 5989,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5989,
"end": 5996,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 5991,
"end": 5996,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 5991,
"end": 5996,
"ctxt": 0
},
"value": "bar",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 5998,
"end": 6010,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 5998,
"end": 6001,
"ctxt": 0
},
"value": "bar",
"optional": false
},
"computed": false,
"optional": true,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6002,
"end": 6010,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6004,
"end": 6010,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
}
}
}
],
"decorators": [],
"span": {
"start": 5933,
"end": 6143,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6014,
"end": 6143,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6020,
"end": 6041,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6026,
"end": 6040,
"ctxt": 0
},
"id": {
"type": "ObjectPattern",
"span": {
"start": 6026,
"end": 6034,
"ctxt": 0
},
"properties": [
{
"type": "AssignmentPatternProperty",
"span": {
"start": 6028,
"end": 6032,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 6028,
"end": 6032,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"value": null
}
],
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "Identifier",
"span": {
"start": 6037,
"end": 6040,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6046,
"end": 6074,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6052,
"end": 6073,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6052,
"end": 6057,
"ctxt": 0
},
"value": "isFoo",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 6060,
"end": 6073,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "Identifier",
"span": {
"start": 6060,
"end": 6064,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 6068,
"end": 6073,
"ctxt": 0
},
"value": "foo",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 6079,
"end": 6141,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 6083,
"end": 6099,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 6083,
"end": 6088,
"ctxt": 0
},
"value": "isFoo",
"optional": false
},
"right": {
"type": "MemberExpression",
"span": {
"start": 6092,
"end": 6099,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6092,
"end": 6095,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6096,
"end": 6099,
"ctxt": 0
},
"value": "foo",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 6101,
"end": 6141,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6111,
"end": 6135,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6115,
"end": 6134,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6115,
"end": 6116,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6116,
"end": 6124,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6118,
"end": 6124,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 6127,
"end": 6134,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6127,
"end": 6130,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6131,
"end": 6134,
"ctxt": 0
},
"value": "foo",
"optional": false
}
},
"definite": false
}
]
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "TsTypeAliasDeclaration",
"span": {
"start": 6224,
"end": 6304,
"ctxt": 0
},
"declare": false,
"id": {
"type": "Identifier",
"span": {
"start": 6229,
"end": 6233,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null,
"typeAnnotation": {
"type": "TsUnionType",
"span": {
"start": 6236,
"end": 6303,
"ctxt": 0
},
"types": [
{
"type": "TsTypeLiteral",
"span": {
"start": 6236,
"end": 6268,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 6238,
"end": 6250,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6238,
"end": 6242,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6242,
"end": 6249,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 6244,
"end": 6249,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 6244,
"end": 6249,
"ctxt": 0
},
"value": "str",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 6251,
"end": 6266,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6251,
"end": 6258,
"ctxt": 0
},
"value": "payload",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6258,
"end": 6266,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6260,
"end": 6266,
"ctxt": 0
},
"kind": "string"
}
},
"typeParams": null
}
]
},
{
"type": "TsTypeLiteral",
"span": {
"start": 6271,
"end": 6303,
"ctxt": 0
},
"members": [
{
"type": "TsPropertySignature",
"span": {
"start": 6273,
"end": 6285,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6273,
"end": 6277,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6277,
"end": 6284,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsLiteralType",
"span": {
"start": 6279,
"end": 6284,
"ctxt": 0
},
"literal": {
"type": "StringLiteral",
"span": {
"start": 6279,
"end": 6284,
"ctxt": 0
},
"value": "num",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
}
},
"typeParams": null
},
{
"type": "TsPropertySignature",
"span": {
"start": 6286,
"end": 6301,
"ctxt": 0
},
"readonly": false,
"key": {
"type": "Identifier",
"span": {
"start": 6286,
"end": 6293,
"ctxt": 0
},
"value": "payload",
"optional": false
},
"computed": false,
"optional": false,
"init": null,
"params": [],
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6293,
"end": 6301,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6295,
"end": 6301,
"ctxt": 0
},
"kind": "number"
}
},
"typeParams": null
}
]
}
]
}
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6315,
"end": 6318,
"ctxt": 0
},
"value": "gg2",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6319,
"end": 6328,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6319,
"end": 6328,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6322,
"end": 6328,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6324,
"end": 6328,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6324,
"end": 6328,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 6306,
"end": 6460,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6330,
"end": 6460,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 6336,
"end": 6458,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 6340,
"end": 6358,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "MemberExpression",
"span": {
"start": 6340,
"end": 6348,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6340,
"end": 6343,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6344,
"end": 6348,
"ctxt": 0
},
"value": "kind",
"optional": false
}
},
"right": {
"type": "StringLiteral",
"span": {
"start": 6353,
"end": 6358,
"ctxt": 0
},
"value": "str",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 6360,
"end": 6404,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6370,
"end": 6398,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6374,
"end": 6397,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6374,
"end": 6375,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6375,
"end": 6383,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6377,
"end": 6383,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 6386,
"end": 6397,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6386,
"end": 6389,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6390,
"end": 6397,
"ctxt": 0
},
"value": "payload",
"optional": false
}
},
"definite": false
}
]
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 6414,
"end": 6458,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6424,
"end": 6452,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6428,
"end": 6451,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6428,
"end": 6429,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6429,
"end": 6437,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6431,
"end": 6437,
"ctxt": 0
},
"kind": "number"
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 6440,
"end": 6451,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6440,
"end": 6443,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6444,
"end": 6451,
"ctxt": 0
},
"value": "payload",
"optional": false
}
},
"definite": false
}
]
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6471,
"end": 6474,
"ctxt": 0
},
"value": "foo",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6475,
"end": 6498,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "ObjectPattern",
"span": {
"start": 6475,
"end": 6498,
"ctxt": 0
},
"properties": [
{
"type": "AssignmentPatternProperty",
"span": {
"start": 6477,
"end": 6481,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 6477,
"end": 6481,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"value": null
},
{
"type": "AssignmentPatternProperty",
"span": {
"start": 6483,
"end": 6490,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 6483,
"end": 6490,
"ctxt": 0
},
"value": "payload",
"optional": false
},
"value": null
}
],
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6492,
"end": 6498,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6494,
"end": 6498,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6494,
"end": 6498,
"ctxt": 0
},
"value": "Data",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 6462,
"end": 6618,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6500,
"end": 6618,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 6506,
"end": 6616,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 6510,
"end": 6524,
"ctxt": 0
},
"operator": "===",
"left": {
"type": "Identifier",
"span": {
"start": 6510,
"end": 6514,
"ctxt": 0
},
"value": "kind",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 6519,
"end": 6524,
"ctxt": 0
},
"value": "str",
"hasEscape": false,
"kind": {
"type": "normal",
"containsQuote": true
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 6526,
"end": 6566,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6536,
"end": 6560,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6540,
"end": 6559,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6540,
"end": 6541,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6541,
"end": 6549,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6543,
"end": 6549,
"ctxt": 0
},
"kind": "string"
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 6552,
"end": 6559,
"ctxt": 0
},
"value": "payload",
"optional": false
},
"definite": false
}
]
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 6576,
"end": 6616,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6586,
"end": 6610,
"ctxt": 0
},
"kind": "let",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6590,
"end": 6609,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6590,
"end": 6591,
"ctxt": 0
},
"value": "t",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6591,
"end": 6599,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 6593,
"end": 6599,
"ctxt": 0
},
"kind": "number"
}
}
},
"init": {
"type": "Identifier",
"span": {
"start": 6602,
"end": 6609,
"ctxt": 0
},
"value": "payload",
"optional": false
},
"definite": false
}
]
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 6642,
"end": 6677,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6648,
"end": 6676,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6648,
"end": 6651,
"ctxt": 0
},
"value": "obj",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ObjectExpression",
"span": {
"start": 6654,
"end": 6676,
"ctxt": 0
},
"properties": [
{
"type": "KeyValueProperty",
"key": {
"type": "Identifier",
"span": {
"start": 6660,
"end": 6662,
"ctxt": 0
},
"value": "fn",
"optional": false
},
"value": {
"type": "ArrowFunctionExpression",
"span": {
"start": 6664,
"end": 6674,
"ctxt": 0
},
"params": [],
"body": {
"type": "BooleanLiteral",
"span": {
"start": 6670,
"end": 6674,
"ctxt": 0
},
"value": true
},
"async": false,
"generator": false,
"typeParameters": null,
"returnType": null
}
}
]
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 6679,
"end": 6689,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 6683,
"end": 6684,
"ctxt": 0
},
"value": "a",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 6686,
"end": 6689,
"ctxt": 0
},
"stmts": []
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 6691,
"end": 6710,
"ctxt": 0
},
"kind": "const",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6697,
"end": 6709,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6697,
"end": 6698,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 6701,
"end": 6709,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 6701,
"end": 6707,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6701,
"end": 6704,
"ctxt": 0
},
"value": "obj",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6705,
"end": 6707,
"ctxt": 0
},
"value": "fn",
"optional": false
}
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
}
],
"interpreter": null
}