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

22986 lines
996 KiB
JSON

{
"type": "Script",
"span": {
"start": 212,
"end": 20476,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 212,
"end": 20476,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 219,
"end": 229,
"ctxt": 0
},
"value": "TypeScript",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 230,
"end": 20476,
"ctxt": 0
},
"body": [
{
"type": "ExportDeclaration",
"span": {
"start": 237,
"end": 451,
"ctxt": 0
},
"declaration": {
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 250,
"end": 268,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"declare": false,
"span": {
"start": 244,
"end": 451,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 279,
"end": 445,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 279,
"end": 290,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "TsParameterProperty",
"span": {
"start": 292,
"end": 321,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 299,
"end": 321,
"ctxt": 0
},
"value": "scopeChain",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 309,
"end": 321,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 311,
"end": 321,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 311,
"end": 321,
"ctxt": 0
},
"value": "ScopeChain",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "TsParameterProperty",
"span": {
"start": 344,
"end": 369,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 351,
"end": 369,
"ctxt": 0
},
"value": "typeFlow",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 359,
"end": 369,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 361,
"end": 369,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 361,
"end": 369,
"ctxt": 0
},
"value": "TypeFlow",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "TsParameterProperty",
"span": {
"start": 392,
"end": 432,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 399,
"end": 432,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 411,
"end": 432,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 413,
"end": 432,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 413,
"end": 430,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 413,
"end": 430,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 434,
"end": 445,
"ctxt": 0
},
"stmts": []
},
"accessibility": null,
"isOptional": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 457,
"end": 820,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 473,
"end": 488,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 489,
"end": 507,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 489,
"end": 507,
"ctxt": 0
},
"value": "scope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 494,
"end": 507,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 496,
"end": 507,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 496,
"end": 507,
"ctxt": 0
},
"value": "SymbolScope",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 517,
"end": 544,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 517,
"end": 544,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 524,
"end": 544,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 526,
"end": 544,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 526,
"end": 544,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 554,
"end": 564,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 554,
"end": 564,
"ctxt": 0
},
"value": "type",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 558,
"end": 564,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 560,
"end": 564,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 560,
"end": 564,
"ctxt": 0
},
"value": "Type",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 574,
"end": 589,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 574,
"end": 589,
"ctxt": 0
},
"value": "classType",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 583,
"end": 589,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 585,
"end": 589,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 585,
"end": 589,
"ctxt": 0
},
"value": "Type",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 599,
"end": 612,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 599,
"end": 612,
"ctxt": 0
},
"value": "fnc",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 602,
"end": 612,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 604,
"end": 612,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 604,
"end": 612,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 464,
"end": 820,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 614,
"end": 820,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 625,
"end": 685,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 629,
"end": 684,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 629,
"end": 634,
"ctxt": 0
},
"value": "chain",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 637,
"end": 684,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 641,
"end": 651,
"ctxt": 0
},
"value": "ScopeChain",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 652,
"end": 656,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 658,
"end": 676,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 658,
"end": 665,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 666,
"end": 676,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 678,
"end": 683,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 694,
"end": 716,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 694,
"end": 715,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 694,
"end": 708,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 694,
"end": 699,
"ctxt": 0
},
"value": "chain",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 700,
"end": 708,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 711,
"end": 715,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 725,
"end": 753,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 725,
"end": 752,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 725,
"end": 740,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 725,
"end": 730,
"ctxt": 0
},
"value": "chain",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 731,
"end": 740,
"ctxt": 0
},
"value": "classType",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 743,
"end": 752,
"ctxt": 0
},
"value": "classType",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 762,
"end": 778,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 762,
"end": 777,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 762,
"end": 771,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 762,
"end": 767,
"ctxt": 0
},
"value": "chain",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 768,
"end": 771,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 774,
"end": 777,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 787,
"end": 814,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 787,
"end": 813,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 787,
"end": 805,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 787,
"end": 794,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 795,
"end": 805,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 808,
"end": 813,
"ctxt": 0
},
"value": "chain",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 826,
"end": 951,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 842,
"end": 856,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 857,
"end": 884,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 857,
"end": 884,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 864,
"end": 884,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 866,
"end": 884,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 866,
"end": 884,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 833,
"end": 951,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 886,
"end": 951,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 896,
"end": 945,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 896,
"end": 944,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 896,
"end": 914,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 896,
"end": 903,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 904,
"end": 914,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 917,
"end": 944,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 917,
"end": 935,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 917,
"end": 924,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 925,
"end": 935,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 936,
"end": 944,
"ctxt": 0
},
"value": "previous",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 957,
"end": 1155,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 973,
"end": 988,
"ctxt": 0
},
"value": "instanceCompare",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 989,
"end": 998,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 989,
"end": 998,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 990,
"end": 998,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 992,
"end": 998,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 992,
"end": 998,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1000,
"end": 1009,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1000,
"end": 1009,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1001,
"end": 1009,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1003,
"end": 1009,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1003,
"end": 1009,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 964,
"end": 1155,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1011,
"end": 1155,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 1021,
"end": 1149,
"ctxt": 0
},
"test": {
"type": "ParenthesisExpression",
"span": {
"start": 1025,
"end": 1067,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 1026,
"end": 1066,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 1026,
"end": 1037,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 1027,
"end": 1036,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "Identifier",
"span": {
"start": 1027,
"end": 1028,
"ctxt": 0
},
"value": "a",
"optional": false
},
"right": {
"type": "NullLiteral",
"span": {
"start": 1032,
"end": 1036,
"ctxt": 0
}
}
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 1041,
"end": 1066,
"ctxt": 0
},
"expression": {
"type": "UnaryExpression",
"span": {
"start": 1042,
"end": 1065,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 1043,
"end": 1065,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 1043,
"end": 1063,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1043,
"end": 1044,
"ctxt": 0
},
"value": "a",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1045,
"end": 1063,
"ctxt": 0
},
"value": "isInstanceProperty",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 1069,
"end": 1102,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1083,
"end": 1092,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 1090,
"end": 1091,
"ctxt": 0
},
"value": "b",
"optional": false
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 1116,
"end": 1149,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1130,
"end": 1139,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 1137,
"end": 1138,
"ctxt": 0
},
"value": "a",
"optional": false
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 1161,
"end": 1253,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1177,
"end": 1195,
"ctxt": 0
},
"value": "instanceFilterStop",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1196,
"end": 1205,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1196,
"end": 1205,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1197,
"end": 1205,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1199,
"end": 1205,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1199,
"end": 1205,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1168,
"end": 1253,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1207,
"end": 1253,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1217,
"end": 1247,
"ctxt": 0
},
"argument": {
"type": "CallExpression",
"span": {
"start": 1224,
"end": 1246,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 1224,
"end": 1244,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1224,
"end": 1225,
"ctxt": 0
},
"value": "s",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1226,
"end": 1244,
"ctxt": 0
},
"value": "isInstanceProperty",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 1259,
"end": 1807,
"ctxt": 0
},
"declaration": {
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1272,
"end": 1289,
"ctxt": 0
},
"value": "ScopeSearchFilter",
"optional": false
},
"declare": false,
"span": {
"start": 1266,
"end": 1807,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 1301,
"end": 1429,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 1301,
"end": 1312,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "TsParameterProperty",
"span": {
"start": 1314,
"end": 1360,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 1321,
"end": 1360,
"ctxt": 0
},
"value": "select",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1327,
"end": 1360,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1329,
"end": 1360,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1330,
"end": 1339,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1331,
"end": 1339,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1333,
"end": 1339,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1333,
"end": 1339,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1341,
"end": 1350,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1342,
"end": 1350,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1344,
"end": 1350,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1344,
"end": 1350,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1352,
"end": 1360,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1354,
"end": 1360,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1354,
"end": 1360,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
}
}
},
{
"type": "TsParameterProperty",
"span": {
"start": 1390,
"end": 1424,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 1397,
"end": 1424,
"ctxt": 0
},
"value": "stop",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1401,
"end": 1424,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1403,
"end": 1424,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1404,
"end": 1413,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1405,
"end": 1413,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1407,
"end": 1413,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1407,
"end": 1413,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1415,
"end": 1424,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1417,
"end": 1424,
"ctxt": 0
},
"kind": "boolean"
}
}
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 1426,
"end": 1429,
"ctxt": 0
},
"stmts": []
},
"accessibility": null,
"isOptional": false
},
{
"type": "ClassProperty",
"span": {
"start": 1439,
"end": 1468,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 1446,
"end": 1452,
"ctxt": 0
},
"value": "result",
"optional": false
},
"value": {
"type": "NullLiteral",
"span": {
"start": 1463,
"end": 1467,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1452,
"end": 1460,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1454,
"end": 1460,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1454,
"end": 1460,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
},
"isStatic": false,
"decorators": [],
"accessibility": "public",
"isAbstract": false,
"isOptional": false,
"isOverride": false,
"readonly": false,
"declare": false,
"definite": false
},
{
"type": "ClassMethod",
"span": {
"start": 1478,
"end": 1536,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 1485,
"end": 1490,
"ctxt": 0
},
"value": "reset",
"optional": false
},
"function": {
"params": [],
"decorators": [],
"span": {
"start": 1478,
"end": 1536,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1493,
"end": 1536,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 1507,
"end": 1526,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1507,
"end": 1525,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 1507,
"end": 1518,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1507,
"end": 1511,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1512,
"end": 1518,
"ctxt": 0
},
"value": "result",
"optional": false
}
},
"right": {
"type": "NullLiteral",
"span": {
"start": 1521,
"end": 1525,
"ctxt": 0
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
},
"kind": "method",
"isStatic": false,
"accessibility": "public",
"isAbstract": false,
"isOptional": false,
"isOverride": false
},
{
"type": "ClassMethod",
"span": {
"start": 1546,
"end": 1801,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 1553,
"end": 1559,
"ctxt": 0
},
"value": "update",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 1560,
"end": 1569,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1560,
"end": 1569,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1561,
"end": 1569,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1563,
"end": 1569,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1563,
"end": 1569,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1546,
"end": 1801,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1580,
"end": 1801,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 1594,
"end": 1636,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1594,
"end": 1635,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 1594,
"end": 1605,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1594,
"end": 1598,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1599,
"end": 1605,
"ctxt": 0
},
"value": "result",
"optional": false
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 1608,
"end": 1635,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 1608,
"end": 1619,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1608,
"end": 1612,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1613,
"end": 1619,
"ctxt": 0
},
"value": "select",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 1620,
"end": 1631,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1620,
"end": 1624,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1625,
"end": 1631,
"ctxt": 0
},
"value": "result",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1633,
"end": 1634,
"ctxt": 0
},
"value": "b",
"optional": false
}
}
],
"typeArguments": null
}
}
},
{
"type": "IfStatement",
"span": {
"start": 1649,
"end": 1791,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 1653,
"end": 1664,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1653,
"end": 1657,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1658,
"end": 1664,
"ctxt": 0
},
"value": "result",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 1666,
"end": 1728,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1684,
"end": 1714,
"ctxt": 0
},
"argument": {
"type": "CallExpression",
"span": {
"start": 1691,
"end": 1713,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 1691,
"end": 1700,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1691,
"end": 1695,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1696,
"end": 1700,
"ctxt": 0
},
"value": "stop",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 1701,
"end": 1712,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1701,
"end": 1705,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1706,
"end": 1712,
"ctxt": 0
},
"value": "result",
"optional": false
}
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 1746,
"end": 1791,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1764,
"end": 1777,
"ctxt": 0
},
"argument": {
"type": "BooleanLiteral",
"span": {
"start": 1771,
"end": 1776,
"ctxt": 0
},
"value": false
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1570,
"end": 1579,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1572,
"end": 1579,
"ctxt": 0
},
"kind": "boolean"
}
}
},
"kind": "method",
"isStatic": false,
"accessibility": "public",
"isAbstract": false,
"isOptional": false,
"isOverride": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 1813,
"end": 1900,
"ctxt": 0
},
"declaration": {
"type": "VariableDeclaration",
"span": {
"start": 1820,
"end": 1900,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1824,
"end": 1899,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1824,
"end": 1838,
"ctxt": 0
},
"value": "instanceFilter",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 1841,
"end": 1899,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1845,
"end": 1862,
"ctxt": 0
},
"value": "ScopeSearchFilter",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1863,
"end": 1878,
"ctxt": 0
},
"value": "instanceCompare",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1880,
"end": 1898,
"ctxt": 0
},
"value": "instanceFilterStop",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 1906,
"end": 3112,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1922,
"end": 1943,
"ctxt": 0
},
"value": "preAssignModuleScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1944,
"end": 1952,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1944,
"end": 1952,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1947,
"end": 1952,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1949,
"end": 1952,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1949,
"end": 1952,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1954,
"end": 1981,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1954,
"end": 1981,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1961,
"end": 1981,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1963,
"end": 1981,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1963,
"end": 1981,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1913,
"end": 3112,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1983,
"end": 3112,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1993,
"end": 2033,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1997,
"end": 2032,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1997,
"end": 2007,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 2010,
"end": 2032,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2029,
"end": 2032,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2011,
"end": 2028,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2011,
"end": 2028,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2042,
"end": 2083,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2046,
"end": 2082,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2046,
"end": 2057,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2057,
"end": 2075,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2059,
"end": 2075,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2059,
"end": 2075,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 2078,
"end": 2082,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2092,
"end": 2134,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2096,
"end": 2133,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2096,
"end": 2104,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2104,
"end": 2126,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2106,
"end": 2126,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2106,
"end": 2126,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 2129,
"end": 2133,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 2144,
"end": 2251,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 2148,
"end": 2181,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 2148,
"end": 2163,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2148,
"end": 2158,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2159,
"end": 2163,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 2167,
"end": 2181,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2167,
"end": 2177,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2178,
"end": 2181,
"ctxt": 0
},
"value": "mod",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2183,
"end": 2251,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2197,
"end": 2241,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2197,
"end": 2240,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2197,
"end": 2216,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2197,
"end": 2212,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2197,
"end": 2207,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2208,
"end": 2212,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2213,
"end": 2216,
"ctxt": 0
},
"value": "sym",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 2219,
"end": 2240,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2219,
"end": 2233,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2219,
"end": 2229,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2230,
"end": 2233,
"ctxt": 0
},
"value": "mod",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2234,
"end": 2240,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 2261,
"end": 2286,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2265,
"end": 2285,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2265,
"end": 2268,
"ctxt": 0
},
"value": "mod",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 2271,
"end": 2285,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2271,
"end": 2281,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2282,
"end": 2285,
"ctxt": 0
},
"value": "mod",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 2351,
"end": 2392,
"ctxt": 0
},
"test": {
"type": "UnaryExpression",
"span": {
"start": 2355,
"end": 2359,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "Identifier",
"span": {
"start": 2356,
"end": 2359,
"ctxt": 0
},
"value": "mod",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2361,
"end": 2392,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 2375,
"end": 2382,
"ctxt": 0
},
"argument": null
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 2402,
"end": 2527,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2402,
"end": 2526,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2402,
"end": 2413,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 2416,
"end": 2526,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2420,
"end": 2436,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2437,
"end": 2448,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2437,
"end": 2440,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2441,
"end": 2448,
"ctxt": 0
},
"value": "members",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2450,
"end": 2468,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2450,
"end": 2453,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2454,
"end": 2468,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2470,
"end": 2487,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2470,
"end": 2473,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2474,
"end": 2487,
"ctxt": 0
},
"value": "enclosedTypes",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2489,
"end": 2513,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2489,
"end": 2492,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2493,
"end": 2513,
"ctxt": 0
},
"value": "ambientEnclosedTypes",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2515,
"end": 2525,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2515,
"end": 2518,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2519,
"end": 2525,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2536,
"end": 2566,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2536,
"end": 2565,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2536,
"end": 2551,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2536,
"end": 2539,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2540,
"end": 2551,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 2554,
"end": 2565,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2575,
"end": 2613,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2575,
"end": 2612,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 2575,
"end": 2600,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2575,
"end": 2595,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2575,
"end": 2582,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2583,
"end": 2595,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2596,
"end": 2600,
"ctxt": 0
},
"value": "push",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2601,
"end": 2611,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2622,
"end": 2675,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2622,
"end": 2674,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2622,
"end": 2661,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2622,
"end": 2646,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2622,
"end": 2638,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2622,
"end": 2629,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2630,
"end": 2638,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2639,
"end": 2646,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2647,
"end": 2661,
"ctxt": 0
},
"value": "currentModDecl",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 2664,
"end": 2674,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2684,
"end": 2732,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2684,
"end": 2731,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2684,
"end": 2692,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 2695,
"end": 2731,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2699,
"end": 2719,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2720,
"end": 2730,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2720,
"end": 2723,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2724,
"end": 2730,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2741,
"end": 2778,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2741,
"end": 2777,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 2741,
"end": 2764,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2741,
"end": 2749,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2750,
"end": 2764,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2765,
"end": 2776,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2787,
"end": 2837,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2787,
"end": 2836,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 2787,
"end": 2810,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2787,
"end": 2795,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2796,
"end": 2810,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2811,
"end": 2835,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2811,
"end": 2829,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2811,
"end": 2818,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2819,
"end": 2829,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2830,
"end": 2835,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2846,
"end": 2899,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2846,
"end": 2898,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2846,
"end": 2861,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2862,
"end": 2870,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2872,
"end": 2879,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2881,
"end": 2885,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2887,
"end": 2891,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2893,
"end": 2897,
"ctxt": 0
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2908,
"end": 2938,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2908,
"end": 2937,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2908,
"end": 2926,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2908,
"end": 2911,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2912,
"end": 2926,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 2929,
"end": 2937,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
}
},
{
"type": "IfStatement",
"span": {
"start": 2947,
"end": 3106,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 2951,
"end": 2961,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2951,
"end": 2954,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2955,
"end": 2961,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2963,
"end": 3106,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2977,
"end": 3096,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2977,
"end": 3095,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 2977,
"end": 3012,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2977,
"end": 2993,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2977,
"end": 2984,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2985,
"end": 2993,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2994,
"end": 3012,
"ctxt": 0
},
"value": "addLocalsFromScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3013,
"end": 3031,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3013,
"end": 3016,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3017,
"end": 3031,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3033,
"end": 3043,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3033,
"end": 3036,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3037,
"end": 3043,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3045,
"end": 3060,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3045,
"end": 3055,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3056,
"end": 3060,
"ctxt": 0
},
"value": "vars",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3062,
"end": 3088,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3062,
"end": 3073,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3062,
"end": 3065,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3066,
"end": 3073,
"ctxt": 0
},
"value": "members",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3074,
"end": 3088,
"ctxt": 0
},
"value": "privateMembers",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 3090,
"end": 3094,
"ctxt": 0
},
"value": true
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 3118,
"end": 4493,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3134,
"end": 3154,
"ctxt": 0
},
"value": "preAssignClassScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3155,
"end": 3163,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3155,
"end": 3163,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3158,
"end": 3163,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3160,
"end": 3163,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3160,
"end": 3163,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 3165,
"end": 3192,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3165,
"end": 3192,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3172,
"end": 3192,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3174,
"end": 3192,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3174,
"end": 3192,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 3125,
"end": 4493,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3194,
"end": 4493,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3204,
"end": 3246,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3208,
"end": 3245,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3208,
"end": 3217,
"ctxt": 0
},
"value": "classDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 3220,
"end": 3245,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3242,
"end": 3245,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3221,
"end": 3241,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3221,
"end": 3241,
"ctxt": 0
},
"value": "InterfaceDeclaration",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3255,
"end": 3296,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3259,
"end": 3295,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3259,
"end": 3270,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3270,
"end": 3288,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3272,
"end": 3288,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3272,
"end": 3288,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 3291,
"end": 3295,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3305,
"end": 3347,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3309,
"end": 3346,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3309,
"end": 3317,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3317,
"end": 3339,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3319,
"end": 3339,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3319,
"end": 3339,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 3342,
"end": 3346,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 3357,
"end": 3462,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 3361,
"end": 3393,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 3361,
"end": 3375,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3361,
"end": 3370,
"ctxt": 0
},
"value": "classDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3371,
"end": 3375,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 3379,
"end": 3393,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3379,
"end": 3388,
"ctxt": 0
},
"value": "classDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3389,
"end": 3393,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3395,
"end": 3462,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3409,
"end": 3452,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3409,
"end": 3451,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3409,
"end": 3427,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3409,
"end": 3423,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3409,
"end": 3418,
"ctxt": 0
},
"value": "classDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3419,
"end": 3423,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3424,
"end": 3427,
"ctxt": 0
},
"value": "sym",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 3430,
"end": 3451,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3430,
"end": 3444,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3430,
"end": 3439,
"ctxt": 0
},
"value": "classDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3440,
"end": 3444,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3445,
"end": 3451,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 3472,
"end": 3497,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3476,
"end": 3496,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3476,
"end": 3485,
"ctxt": 0
},
"value": "classType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 3488,
"end": 3496,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3488,
"end": 3491,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3492,
"end": 3496,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 3507,
"end": 4487,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3511,
"end": 3520,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3522,
"end": 4413,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3536,
"end": 3568,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3540,
"end": 3567,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3540,
"end": 3548,
"ctxt": 0
},
"value": "classSym",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 3551,
"end": 3567,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3551,
"end": 3560,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3561,
"end": 3567,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 3581,
"end": 3657,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3581,
"end": 3656,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3581,
"end": 3592,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "TsTypeAssertion",
"span": {
"start": 3595,
"end": 3656,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3613,
"end": 3656,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 3613,
"end": 3645,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3613,
"end": 3637,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3613,
"end": 3629,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3613,
"end": 3620,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3621,
"end": 3629,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3630,
"end": 3637,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3638,
"end": 3645,
"ctxt": 0
},
"value": "scopeOf",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3646,
"end": 3655,
"ctxt": 0
},
"value": "classType",
"optional": false
}
}
],
"typeArguments": null
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3596,
"end": 3612,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3596,
"end": 3612,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3671,
"end": 3725,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3671,
"end": 3724,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3671,
"end": 3679,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 3682,
"end": 3724,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3686,
"end": 3706,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3707,
"end": 3723,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3707,
"end": 3716,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3717,
"end": 3723,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3738,
"end": 3775,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3738,
"end": 3774,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 3738,
"end": 3761,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3738,
"end": 3746,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3747,
"end": 3761,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3762,
"end": 3773,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3788,
"end": 3838,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3788,
"end": 3837,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 3788,
"end": 3811,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3788,
"end": 3796,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3797,
"end": 3811,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3812,
"end": 3836,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3812,
"end": 3830,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3812,
"end": 3819,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3820,
"end": 3830,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3831,
"end": 3836,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3852,
"end": 3888,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3852,
"end": 3887,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3852,
"end": 3876,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3852,
"end": 3861,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3862,
"end": 3876,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 3879,
"end": 3887,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3901,
"end": 3937,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3901,
"end": 3936,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3901,
"end": 3922,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3901,
"end": 3910,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3911,
"end": 3922,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 3925,
"end": 3936,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 3951,
"end": 3993,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3955,
"end": 3992,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3955,
"end": 3967,
"ctxt": 0
},
"value": "instanceType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 3970,
"end": 3992,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3970,
"end": 3979,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3980,
"end": 3992,
"ctxt": 0
},
"value": "instanceType",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 4006,
"end": 4085,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4006,
"end": 4084,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 4006,
"end": 4017,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "TsTypeAssertion",
"span": {
"start": 4020,
"end": 4084,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4038,
"end": 4084,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4038,
"end": 4070,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4038,
"end": 4062,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4038,
"end": 4054,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4038,
"end": 4045,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4046,
"end": 4054,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4055,
"end": 4062,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4063,
"end": 4070,
"ctxt": 0
},
"value": "scopeOf",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4071,
"end": 4083,
"ctxt": 0
},
"value": "instanceType",
"optional": false
}
}
],
"typeArguments": null
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4021,
"end": 4037,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4021,
"end": 4037,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4098,
"end": 4137,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4098,
"end": 4136,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 4098,
"end": 4122,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4098,
"end": 4110,
"ctxt": 0
},
"value": "instanceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4111,
"end": 4122,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 4125,
"end": 4136,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4151,
"end": 4208,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4151,
"end": 4207,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 4151,
"end": 4159,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 4162,
"end": 4207,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4166,
"end": 4186,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 4187,
"end": 4206,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4187,
"end": 4199,
"ctxt": 0
},
"value": "instanceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4200,
"end": 4206,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4221,
"end": 4271,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4221,
"end": 4270,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4221,
"end": 4244,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4221,
"end": 4229,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4230,
"end": 4244,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 4245,
"end": 4269,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4245,
"end": 4263,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4245,
"end": 4252,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4253,
"end": 4263,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4264,
"end": 4269,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4285,
"end": 4351,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4285,
"end": 4350,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4285,
"end": 4300,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4301,
"end": 4309,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4311,
"end": 4318,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4320,
"end": 4332,
"ctxt": 0
},
"value": "instanceType",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4334,
"end": 4343,
"ctxt": 0
},
"value": "classType",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 4345,
"end": 4349,
"ctxt": 0
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4364,
"end": 4403,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4364,
"end": 4402,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 4364,
"end": 4391,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4364,
"end": 4376,
"ctxt": 0
},
"value": "instanceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4377,
"end": 4391,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 4394,
"end": 4402,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 4427,
"end": 4487,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4441,
"end": 4477,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4441,
"end": 4476,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 4441,
"end": 4449,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4441,
"end": 4444,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4445,
"end": 4449,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 4452,
"end": 4476,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4452,
"end": 4468,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4452,
"end": 4459,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4460,
"end": 4468,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4469,
"end": 4476,
"ctxt": 0
},
"value": "anyType",
"optional": false
}
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 4499,
"end": 5333,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4515,
"end": 4539,
"ctxt": 0
},
"value": "preAssignInterfaceScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4540,
"end": 4548,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4540,
"end": 4548,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4543,
"end": 4548,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4545,
"end": 4548,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4545,
"end": 4548,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 4550,
"end": 4577,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4550,
"end": 4577,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4557,
"end": 4577,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4559,
"end": 4577,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4559,
"end": 4577,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4506,
"end": 5333,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4579,
"end": 5333,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4589,
"end": 4635,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4593,
"end": 4634,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4593,
"end": 4606,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 4609,
"end": 4634,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4631,
"end": 4634,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4610,
"end": 4630,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4610,
"end": 4630,
"ctxt": 0
},
"value": "InterfaceDeclaration",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4644,
"end": 4685,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4648,
"end": 4684,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4648,
"end": 4659,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4659,
"end": 4677,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4661,
"end": 4677,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4661,
"end": 4677,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 4680,
"end": 4684,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4694,
"end": 4736,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4698,
"end": 4735,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4698,
"end": 4706,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4706,
"end": 4728,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4708,
"end": 4728,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4708,
"end": 4728,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 4731,
"end": 4735,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 4746,
"end": 4867,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 4750,
"end": 4790,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 4750,
"end": 4768,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4750,
"end": 4763,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4764,
"end": 4768,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 4772,
"end": 4790,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4772,
"end": 4785,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4786,
"end": 4790,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 4792,
"end": 4867,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4806,
"end": 4857,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4806,
"end": 4856,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 4806,
"end": 4828,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4806,
"end": 4824,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4806,
"end": 4819,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4820,
"end": 4824,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4825,
"end": 4828,
"ctxt": 0
},
"value": "sym",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 4831,
"end": 4856,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4831,
"end": 4849,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4831,
"end": 4844,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4845,
"end": 4849,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4850,
"end": 4856,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 4877,
"end": 4906,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4881,
"end": 4905,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4881,
"end": 4894,
"ctxt": 0
},
"value": "interfaceType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 4897,
"end": 4905,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4897,
"end": 4900,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4901,
"end": 4905,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 4915,
"end": 4995,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4915,
"end": 4994,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 4915,
"end": 4926,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "TsTypeAssertion",
"span": {
"start": 4929,
"end": 4994,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4947,
"end": 4994,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4947,
"end": 4979,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4947,
"end": 4971,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4947,
"end": 4963,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4947,
"end": 4954,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4955,
"end": 4963,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4964,
"end": 4971,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4972,
"end": 4979,
"ctxt": 0
},
"value": "scopeOf",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4980,
"end": 4993,
"ctxt": 0
},
"value": "interfaceType",
"optional": false
}
}
],
"typeArguments": null
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4930,
"end": 4946,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4930,
"end": 4946,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5004,
"end": 5044,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5004,
"end": 5043,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5004,
"end": 5029,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5004,
"end": 5017,
"ctxt": 0
},
"value": "interfaceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5018,
"end": 5029,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5032,
"end": 5043,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5053,
"end": 5111,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5053,
"end": 5110,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 5053,
"end": 5061,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 5064,
"end": 5110,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5068,
"end": 5088,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 5089,
"end": 5109,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5089,
"end": 5102,
"ctxt": 0
},
"value": "interfaceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5103,
"end": 5109,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5120,
"end": 5157,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 5120,
"end": 5156,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 5120,
"end": 5143,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5120,
"end": 5128,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5129,
"end": 5143,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5144,
"end": 5155,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5166,
"end": 5216,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 5166,
"end": 5215,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 5166,
"end": 5189,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5166,
"end": 5174,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5175,
"end": 5189,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 5190,
"end": 5214,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 5190,
"end": 5208,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5190,
"end": 5197,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5198,
"end": 5208,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5209,
"end": 5214,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5225,
"end": 5278,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 5225,
"end": 5277,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5225,
"end": 5240,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5241,
"end": 5249,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5251,
"end": 5258,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 5260,
"end": 5264,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 5266,
"end": 5270,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 5272,
"end": 5276,
"ctxt": 0
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5287,
"end": 5327,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5287,
"end": 5326,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5287,
"end": 5315,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5287,
"end": 5300,
"ctxt": 0
},
"value": "interfaceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5301,
"end": 5315,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5318,
"end": 5326,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 5339,
"end": 6354,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5355,
"end": 5374,
"ctxt": 0
},
"value": "preAssignWithScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5375,
"end": 5383,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5375,
"end": 5383,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5378,
"end": 5383,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5380,
"end": 5383,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5380,
"end": 5383,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 5385,
"end": 5412,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5385,
"end": 5412,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5392,
"end": 5412,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5394,
"end": 5412,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5394,
"end": 5412,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 5346,
"end": 6354,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5414,
"end": 6354,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5424,
"end": 5458,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5428,
"end": 5457,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5428,
"end": 5436,
"ctxt": 0
},
"value": "withStmt",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 5439,
"end": 5457,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5454,
"end": 5457,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5440,
"end": 5453,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5440,
"end": 5453,
"ctxt": 0
},
"value": "WithStatement",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5467,
"end": 5496,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5471,
"end": 5495,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5471,
"end": 5479,
"ctxt": 0
},
"value": "withType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 5482,
"end": 5495,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5482,
"end": 5490,
"ctxt": 0
},
"value": "withStmt",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5491,
"end": 5495,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5506,
"end": 5609,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5510,
"end": 5608,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5510,
"end": 5517,
"ctxt": 0
},
"value": "members",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 5520,
"end": 5608,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5524,
"end": 5537,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5538,
"end": 5607,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5542,
"end": 5561,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5562,
"end": 5583,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5566,
"end": 5581,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5585,
"end": 5606,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5589,
"end": 5604,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5618,
"end": 5728,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5622,
"end": 5727,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5622,
"end": 5636,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 5639,
"end": 5727,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5643,
"end": 5656,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5657,
"end": 5726,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5661,
"end": 5680,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5681,
"end": 5702,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5685,
"end": 5700,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5704,
"end": 5725,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5708,
"end": 5723,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5738,
"end": 5764,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5742,
"end": 5763,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5742,
"end": 5750,
"ctxt": 0
},
"value": "withType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 5753,
"end": 5763,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5757,
"end": 5761,
"ctxt": 0
},
"value": "Type",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5773,
"end": 5882,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5777,
"end": 5881,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5777,
"end": 5787,
"ctxt": 0
},
"value": "withSymbol",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 5790,
"end": 5881,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5794,
"end": 5804,
"ctxt": 0
},
"value": "WithSymbol",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 5805,
"end": 5821,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5805,
"end": 5813,
"ctxt": 0
},
"value": "withStmt",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5814,
"end": 5821,
"ctxt": 0
},
"value": "minChar",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 5823,
"end": 5870,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 5823,
"end": 5860,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 5823,
"end": 5847,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 5823,
"end": 5839,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5823,
"end": 5830,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5831,
"end": 5839,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5840,
"end": 5847,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5848,
"end": 5860,
"ctxt": 0
},
"value": "locationInfo",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5861,
"end": 5870,
"ctxt": 0
},
"value": "unitIndex",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5872,
"end": 5880,
"ctxt": 0
},
"value": "withType",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 5891,
"end": 5918,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5891,
"end": 5917,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5891,
"end": 5907,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5891,
"end": 5899,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5900,
"end": 5907,
"ctxt": 0
},
"value": "members",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5910,
"end": 5917,
"ctxt": 0
},
"value": "members",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5927,
"end": 5968,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5927,
"end": 5967,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5927,
"end": 5950,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5927,
"end": 5935,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5936,
"end": 5950,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5953,
"end": 5967,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5977,
"end": 6006,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5977,
"end": 6005,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5977,
"end": 5992,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5977,
"end": 5985,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5986,
"end": 5992,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5995,
"end": 6005,
"ctxt": 0
},
"value": "withSymbol",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6015,
"end": 6047,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 6015,
"end": 6046,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 6015,
"end": 6044,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6015,
"end": 6023,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6024,
"end": 6044,
"ctxt": 0
},
"value": "setHasImplementation",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6056,
"end": 6081,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 6056,
"end": 6080,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 6056,
"end": 6069,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6056,
"end": 6064,
"ctxt": 0
},
"value": "withStmt",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6065,
"end": 6069,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 6072,
"end": 6080,
"ctxt": 0
},
"value": "withType",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 6091,
"end": 6239,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6095,
"end": 6238,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6095,
"end": 6104,
"ctxt": 0
},
"value": "withScope",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 6107,
"end": 6238,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 6111,
"end": 6140,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6111,
"end": 6121,
"ctxt": 0
},
"value": "TypeScript",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6122,
"end": 6140,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6141,
"end": 6157,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6141,
"end": 6149,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6150,
"end": 6157,
"ctxt": 0
},
"value": "members",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6159,
"end": 6182,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6159,
"end": 6167,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6168,
"end": 6182,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6184,
"end": 6188,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6190,
"end": 6194,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6196,
"end": 6220,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6196,
"end": 6214,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6196,
"end": 6203,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6204,
"end": 6214,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6215,
"end": 6220,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6222,
"end": 6237,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6222,
"end": 6230,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6231,
"end": 6237,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 6249,
"end": 6303,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 6249,
"end": 6302,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 6249,
"end": 6264,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 6265,
"end": 6274,
"ctxt": 0
},
"value": "withScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 6276,
"end": 6283,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6285,
"end": 6289,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6291,
"end": 6295,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6297,
"end": 6301,
"ctxt": 0
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6312,
"end": 6348,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 6312,
"end": 6347,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 6312,
"end": 6335,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6312,
"end": 6320,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6321,
"end": 6335,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 6338,
"end": 6347,
"ctxt": 0
},
"value": "withScope",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 6360,
"end": 16824,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6376,
"end": 6399,
"ctxt": 0
},
"value": "preAssignFuncDeclScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6400,
"end": 6408,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6400,
"end": 6408,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6403,
"end": 6408,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6405,
"end": 6408,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6405,
"end": 6408,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 6410,
"end": 6437,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6410,
"end": 6437,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6417,
"end": 6437,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6419,
"end": 6437,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6419,
"end": 6437,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 6367,
"end": 16824,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6439,
"end": 16824,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6449,
"end": 6478,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6453,
"end": 6477,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6453,
"end": 6461,
"ctxt": 0
},
"value": "funcDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 6464,
"end": 6477,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6474,
"end": 6477,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6465,
"end": 6473,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6465,
"end": 6473,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6488,
"end": 6517,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6492,
"end": 6516,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6492,
"end": 6501,
"ctxt": 0
},
"value": "container",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6501,
"end": 6509,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6503,
"end": 6509,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6503,
"end": 6509,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 6512,
"end": 6516,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6526,
"end": 6560,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6530,
"end": 6559,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6530,
"end": 6544,
"ctxt": 0
},
"value": "localContainer",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6544,
"end": 6552,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6546,
"end": 6552,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6546,
"end": 6552,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 6555,
"end": 6559,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 6569,
"end": 6645,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 6573,
"end": 6586,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6573,
"end": 6581,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6582,
"end": 6586,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 6588,
"end": 6645,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 6602,
"end": 6635,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 6602,
"end": 6634,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 6602,
"end": 6616,
"ctxt": 0
},
"value": "localContainer",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 6619,
"end": 6634,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6619,
"end": 6627,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6619,
"end": 6622,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6623,
"end": 6627,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6628,
"end": 6634,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 6655,
"end": 6714,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6659,
"end": 6713,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6659,
"end": 6667,
"ctxt": 0
},
"value": "isStatic",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 6670,
"end": 6713,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 6670,
"end": 6677,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6678,
"end": 6695,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6678,
"end": 6686,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6687,
"end": 6695,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6697,
"end": 6712,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6697,
"end": 6705,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6706,
"end": 6712,
"ctxt": 0
},
"value": "Static",
"optional": false
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6723,
"end": 6786,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6727,
"end": 6785,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6727,
"end": 6740,
"ctxt": 0
},
"value": "isInnerStatic",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 6743,
"end": 6785,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 6743,
"end": 6751,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 6755,
"end": 6785,
"ctxt": 0
},
"operator": "!=",
"left": {
"type": "MemberExpression",
"span": {
"start": 6755,
"end": 6777,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6755,
"end": 6773,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6755,
"end": 6762,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6763,
"end": 6773,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6774,
"end": 6777,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"right": {
"type": "NullLiteral",
"span": {
"start": 6781,
"end": 6785,
"ctxt": 0
}
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6898,
"end": 6999,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6902,
"end": 6998,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6902,
"end": 6913,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ConditionalExpression",
"span": {
"start": 6916,
"end": 6998,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 6916,
"end": 6929,
"ctxt": 0
},
"value": "isInnerStatic",
"optional": false
},
"consequent": {
"type": "MemberExpression",
"span": {
"start": 6932,
"end": 6971,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6932,
"end": 6959,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6932,
"end": 6954,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6932,
"end": 6950,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6932,
"end": 6939,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6940,
"end": 6950,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6951,
"end": 6954,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6955,
"end": 6959,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6960,
"end": 6971,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"alternate": {
"type": "MemberExpression",
"span": {
"start": 6974,
"end": 6998,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6974,
"end": 6992,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6974,
"end": 6981,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6982,
"end": 6992,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6993,
"end": 6998,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 7335,
"end": 9115,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 7339,
"end": 7459,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 7339,
"end": 7366,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7339,
"end": 7357,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7339,
"end": 7346,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7347,
"end": 7357,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 7358,
"end": 7366,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 7382,
"end": 7459,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 7383,
"end": 7458,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 7383,
"end": 7406,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 7384,
"end": 7406,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7384,
"end": 7392,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7393,
"end": 7406,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 7410,
"end": 7458,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7410,
"end": 7417,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 7418,
"end": 7435,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7418,
"end": 7426,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7427,
"end": 7435,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 7437,
"end": 7457,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7437,
"end": 7445,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7446,
"end": 7457,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 7461,
"end": 8871,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 7475,
"end": 7518,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7479,
"end": 7517,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7479,
"end": 7487,
"ctxt": 0
},
"value": "instType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 7490,
"end": 7517,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7490,
"end": 7508,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7490,
"end": 7497,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7498,
"end": 7508,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 7509,
"end": 7517,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 7532,
"end": 8820,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 7536,
"end": 7630,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "UnaryExpression",
"span": {
"start": 7536,
"end": 7577,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "ParenthesisExpression",
"span": {
"start": 7537,
"end": 7577,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 7538,
"end": 7576,
"ctxt": 0
},
"operator": "&",
"left": {
"type": "MemberExpression",
"span": {
"start": 7538,
"end": 7556,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7538,
"end": 7546,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7547,
"end": 7556,
"ctxt": 0
},
"value": "typeFlags",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 7559,
"end": 7576,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7559,
"end": 7568,
"ctxt": 0
},
"value": "TypeFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7569,
"end": 7576,
"ctxt": 0
},
"value": "IsClass",
"optional": false
}
}
}
}
},
"right": {
"type": "UnaryExpression",
"span": {
"start": 7581,
"end": 7630,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 7582,
"end": 7630,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7582,
"end": 7589,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 7590,
"end": 7607,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7590,
"end": 7598,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7599,
"end": 7607,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 7609,
"end": 7629,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7609,
"end": 7617,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7618,
"end": 7629,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 7632,
"end": 7947,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 7650,
"end": 7933,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 7654,
"end": 7686,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 7654,
"end": 7674,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 7655,
"end": 7674,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 7655,
"end": 7672,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7655,
"end": 7663,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7664,
"end": 7672,
"ctxt": 0
},
"value": "isMethod",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
"right": {
"type": "Identifier",
"span": {
"start": 7678,
"end": 7686,
"ctxt": 0
},
"value": "isStatic",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 7688,
"end": 7768,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 7710,
"end": 7750,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 7710,
"end": 7749,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 7710,
"end": 7721,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 7724,
"end": 7749,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7724,
"end": 7732,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7733,
"end": 7749,
"ctxt": 0
},
"value": "constructorScope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 7790,
"end": 7933,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 7877,
"end": 7915,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 7877,
"end": 7914,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 7877,
"end": 7888,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 7891,
"end": 7914,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7891,
"end": 7899,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7900,
"end": 7914,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
}
}
}
]
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 7965,
"end": 8820,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 7983,
"end": 8806,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 7987,
"end": 8311,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 7987,
"end": 8210,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 7987,
"end": 8105,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 7987,
"end": 8030,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7987,
"end": 8020,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7987,
"end": 8014,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7987,
"end": 8005,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7987,
"end": 7994,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7995,
"end": 8005,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8006,
"end": 8014,
"ctxt": 0
},
"value": "previous",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8015,
"end": 8020,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8021,
"end": 8030,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8054,
"end": 8105,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8054,
"end": 8097,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8054,
"end": 8087,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8054,
"end": 8081,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8054,
"end": 8072,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8054,
"end": 8061,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8062,
"end": 8072,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8073,
"end": 8081,
"ctxt": 0
},
"value": "previous",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8082,
"end": 8087,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8088,
"end": 8097,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8098,
"end": 8105,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
}
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 8129,
"end": 8210,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 8129,
"end": 8189,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8129,
"end": 8180,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8129,
"end": 8172,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8129,
"end": 8162,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8129,
"end": 8156,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8129,
"end": 8147,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8129,
"end": 8136,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8137,
"end": 8147,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8148,
"end": 8156,
"ctxt": 0
},
"value": "previous",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8157,
"end": 8162,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8163,
"end": 8172,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8173,
"end": 8180,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8181,
"end": 8189,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8193,
"end": 8210,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8193,
"end": 8201,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8202,
"end": 8210,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8234,
"end": 8311,
"ctxt": 0
},
"object": {
"type": "ParenthesisExpression",
"span": {
"start": 8234,
"end": 8297,
"ctxt": 0
},
"expression": {
"type": "TsTypeAssertion",
"span": {
"start": 8235,
"end": 8296,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 8245,
"end": 8296,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8245,
"end": 8288,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8245,
"end": 8278,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8245,
"end": 8272,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8245,
"end": 8263,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8245,
"end": 8252,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8253,
"end": 8263,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8264,
"end": 8272,
"ctxt": 0
},
"value": "previous",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8273,
"end": 8278,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8279,
"end": 8288,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8289,
"end": 8296,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 8236,
"end": 8244,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8236,
"end": 8244,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8298,
"end": 8311,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 8313,
"end": 8487,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 8429,
"end": 8469,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8429,
"end": 8468,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 8429,
"end": 8440,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8443,
"end": 8468,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8443,
"end": 8451,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8452,
"end": 8468,
"ctxt": 0
},
"value": "constructorScope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 8509,
"end": 8806,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 8513,
"end": 8553,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 8513,
"end": 8521,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8525,
"end": 8553,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8525,
"end": 8543,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8525,
"end": 8532,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8533,
"end": 8543,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8544,
"end": 8553,
"ctxt": 0
},
"value": "classType",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 8555,
"end": 8653,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 8577,
"end": 8635,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8577,
"end": 8634,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 8577,
"end": 8588,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8591,
"end": 8634,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8591,
"end": 8619,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8591,
"end": 8609,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8591,
"end": 8598,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8599,
"end": 8609,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8610,
"end": 8619,
"ctxt": 0
},
"value": "classType",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8620,
"end": 8634,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 8675,
"end": 8806,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 8750,
"end": 8788,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8750,
"end": 8787,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 8750,
"end": 8761,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8764,
"end": 8787,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8764,
"end": 8772,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8773,
"end": 8787,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
}
}
}
]
}
}
}
]
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 8833,
"end": 8861,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8833,
"end": 8860,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 8833,
"end": 8842,
"ctxt": 0
},
"value": "container",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8845,
"end": 8860,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8845,
"end": 8853,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8854,
"end": 8860,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 8885,
"end": 9115,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 8889,
"end": 8942,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 8889,
"end": 8911,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8889,
"end": 8897,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8898,
"end": 8911,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8915,
"end": 8942,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8915,
"end": 8933,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8915,
"end": 8922,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8923,
"end": 8933,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8934,
"end": 8942,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 8944,
"end": 9115,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 9058,
"end": 9105,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9058,
"end": 9104,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9058,
"end": 9067,
"ctxt": 0
},
"value": "container",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 9070,
"end": 9104,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9070,
"end": 9097,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9070,
"end": 9088,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9070,
"end": 9077,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9078,
"end": 9088,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9089,
"end": 9097,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9098,
"end": 9104,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
}
},
{
"type": "IfStatement",
"span": {
"start": 9125,
"end": 12426,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 9129,
"end": 9231,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "BinaryExpression",
"span": {
"start": 9129,
"end": 9150,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 9129,
"end": 9142,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9129,
"end": 9137,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9138,
"end": 9142,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"right": {
"type": "NullLiteral",
"span": {
"start": 9146,
"end": 9150,
"ctxt": 0
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 9154,
"end": 9231,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 9154,
"end": 9161,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 9162,
"end": 9188,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9162,
"end": 9182,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9162,
"end": 9175,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9162,
"end": 9170,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9171,
"end": 9175,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9176,
"end": 9182,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9183,
"end": 9188,
"ctxt": 0
},
"value": "flags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 9190,
"end": 9230,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9190,
"end": 9201,
"ctxt": 0
},
"value": "SymbolFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9202,
"end": 9230,
"ctxt": 0
},
"value": "TypeSetDuringScopeAssignment",
"optional": false
}
}
}
],
"typeArguments": null
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 9233,
"end": 12426,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 9247,
"end": 9385,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 9251,
"end": 9304,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 9251,
"end": 9273,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9251,
"end": 9269,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9251,
"end": 9258,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9259,
"end": 9269,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9270,
"end": 9273,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 9277,
"end": 9304,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9277,
"end": 9299,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9277,
"end": 9295,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9277,
"end": 9284,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9285,
"end": 9295,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9296,
"end": 9299,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9300,
"end": 9304,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 9306,
"end": 9385,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 9324,
"end": 9371,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9324,
"end": 9370,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9324,
"end": 9333,
"ctxt": 0
},
"value": "container",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 9336,
"end": 9370,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9336,
"end": 9363,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9336,
"end": 9358,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9336,
"end": 9354,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9336,
"end": 9343,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9344,
"end": 9354,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9355,
"end": 9358,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9359,
"end": 9363,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9364,
"end": 9370,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 9399,
"end": 9420,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9403,
"end": 9419,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9403,
"end": 9412,
"ctxt": 0
},
"value": "funcScope",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NullLiteral",
"span": {
"start": 9415,
"end": 9419,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 9433,
"end": 9481,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9437,
"end": 9480,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9437,
"end": 9445,
"ctxt": 0
},
"value": "outerFnc",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9445,
"end": 9455,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9447,
"end": 9455,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9447,
"end": 9455,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 9458,
"end": 9480,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9458,
"end": 9476,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9458,
"end": 9465,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9466,
"end": 9476,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9477,
"end": 9480,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 9494,
"end": 9557,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9498,
"end": 9556,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9498,
"end": 9506,
"ctxt": 0
},
"value": "nameText",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ConditionalExpression",
"span": {
"start": 9509,
"end": 9556,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 9509,
"end": 9522,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9509,
"end": 9517,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9518,
"end": 9522,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"consequent": {
"type": "MemberExpression",
"span": {
"start": 9525,
"end": 9549,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9525,
"end": 9538,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9525,
"end": 9533,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9534,
"end": 9538,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9539,
"end": 9549,
"ctxt": 0
},
"value": "actualText",
"optional": false
}
},
"alternate": {
"type": "NullLiteral",
"span": {
"start": 9552,
"end": 9556,
"ctxt": 0
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 9570,
"end": 9599,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9574,
"end": 9598,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9574,
"end": 9579,
"ctxt": 0
},
"value": "fgSym",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9579,
"end": 9591,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9581,
"end": 9591,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9581,
"end": 9591,
"ctxt": 0
},
"value": "TypeSymbol",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 9594,
"end": 9598,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 9613,
"end": 10865,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 9617,
"end": 9625,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 9627,
"end": 10324,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 9943,
"end": 10153,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 9947,
"end": 10011,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 9947,
"end": 9976,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 9947,
"end": 9968,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9947,
"end": 9960,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9947,
"end": 9955,
"ctxt": 0
},
"value": "outerFnc",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9956,
"end": 9960,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9961,
"end": 9968,
"ctxt": 0
},
"value": "members",
"optional": false
}
},
"right": {
"type": "NullLiteral",
"span": {
"start": 9972,
"end": 9976,
"ctxt": 0
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 9980,
"end": 10011,
"ctxt": 0
},
"object": {
"type": "CallExpression",
"span": {
"start": 9980,
"end": 9999,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 9980,
"end": 9997,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9980,
"end": 9989,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9990,
"end": 9997,
"ctxt": 0
},
"value": "getType",
"optional": false
}
},
"arguments": [],
"typeArguments": null
},
"property": {
"type": "Identifier",
"span": {
"start": 10000,
"end": 10011,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 10013,
"end": 10153,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 10035,
"end": 10135,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10035,
"end": 10134,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 10035,
"end": 10056,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10035,
"end": 10048,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10035,
"end": 10043,
"ctxt": 0
},
"value": "outerFnc",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10044,
"end": 10048,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10049,
"end": 10056,
"ctxt": 0
},
"value": "members",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10059,
"end": 10134,
"ctxt": 0
},
"object": {
"type": "ParenthesisExpression",
"span": {
"start": 10059,
"end": 10121,
"ctxt": 0
},
"expression": {
"type": "TsTypeAssertion",
"span": {
"start": 10060,
"end": 10120,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 10080,
"end": 10120,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10080,
"end": 10108,
"ctxt": 0
},
"object": {
"type": "ParenthesisExpression",
"span": {
"start": 10080,
"end": 10103,
"ctxt": 0
},
"expression": {
"type": "TsTypeAssertion",
"span": {
"start": 10081,
"end": 10102,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 10093,
"end": 10102,
"ctxt": 0
},
"value": "container",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10082,
"end": 10092,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10082,
"end": 10092,
"ctxt": 0
},
"value": "TypeSymbol",
"optional": false
},
"typeParams": null
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10104,
"end": 10108,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10109,
"end": 10120,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10061,
"end": 10079,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10061,
"end": 10079,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
},
"typeParams": null
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10122,
"end": 10134,
"ctxt": 0
},
"value": "valueMembers",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 10170,
"end": 10222,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10170,
"end": 10221,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 10170,
"end": 10179,
"ctxt": 0
},
"value": "funcScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10182,
"end": 10221,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10182,
"end": 10209,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10182,
"end": 10204,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10182,
"end": 10200,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10182,
"end": 10189,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10190,
"end": 10200,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10201,
"end": 10204,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10205,
"end": 10209,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10210,
"end": 10221,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 10239,
"end": 10310,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10239,
"end": 10309,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 10239,
"end": 10298,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10239,
"end": 10264,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10239,
"end": 10247,
"ctxt": 0
},
"value": "outerFnc",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10248,
"end": 10264,
"ctxt": 0
},
"value": "innerStaticFuncs",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 10264,
"end": 10298,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 10265,
"end": 10297,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10265,
"end": 10290,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10265,
"end": 10273,
"ctxt": 0
},
"value": "outerFnc",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10274,
"end": 10290,
"ctxt": 0
},
"value": "innerStaticFuncs",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10291,
"end": 10297,
"ctxt": 0
},
"value": "length",
"optional": false
}
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 10301,
"end": 10309,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 10342,
"end": 10865,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 10361,
"end": 10851,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 10365,
"end": 10644,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 10365,
"end": 10600,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 10365,
"end": 10533,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 10365,
"end": 10462,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 10365,
"end": 10421,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "UnaryExpression",
"span": {
"start": 10365,
"end": 10388,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 10366,
"end": 10388,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10366,
"end": 10374,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10375,
"end": 10388,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 10412,
"end": 10421,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10445,
"end": 10462,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10445,
"end": 10454,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10455,
"end": 10462,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
}
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 10486,
"end": 10533,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 10486,
"end": 10512,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10486,
"end": 10503,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10486,
"end": 10495,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10496,
"end": 10503,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10504,
"end": 10512,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10516,
"end": 10533,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10516,
"end": 10524,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10525,
"end": 10533,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10557,
"end": 10600,
"ctxt": 0
},
"object": {
"type": "ParenthesisExpression",
"span": {
"start": 10557,
"end": 10586,
"ctxt": 0
},
"expression": {
"type": "TsTypeAssertion",
"span": {
"start": 10558,
"end": 10585,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 10568,
"end": 10585,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10568,
"end": 10577,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10578,
"end": 10585,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10559,
"end": 10567,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10559,
"end": 10567,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10587,
"end": 10600,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "UnaryExpression",
"span": {
"start": 10624,
"end": 10644,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 10625,
"end": 10644,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 10625,
"end": 10642,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10625,
"end": 10633,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10634,
"end": 10642,
"ctxt": 0
},
"value": "isMethod",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 10646,
"end": 10752,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 10668,
"end": 10725,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10668,
"end": 10724,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 10668,
"end": 10677,
"ctxt": 0
},
"value": "funcScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10680,
"end": 10724,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10680,
"end": 10707,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10680,
"end": 10698,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10680,
"end": 10687,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10688,
"end": 10698,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10699,
"end": 10707,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10708,
"end": 10724,
"ctxt": 0
},
"value": "constructorScope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 10774,
"end": 10851,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 10796,
"end": 10833,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10796,
"end": 10832,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 10796,
"end": 10805,
"ctxt": 0
},
"value": "funcScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10808,
"end": 10832,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10808,
"end": 10826,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10808,
"end": 10815,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10816,
"end": 10826,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10827,
"end": 10832,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
}
]
}
}
]
}
},
{
"type": "IfStatement",
"span": {
"start": 11155,
"end": 11562,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 11159,
"end": 11220,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 11159,
"end": 11194,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 11159,
"end": 11167,
"ctxt": 0
},
"value": "nameText",
"optional": false
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 11171,
"end": 11194,
"ctxt": 0
},
"operator": "!=",
"left": {
"type": "Identifier",
"span": {
"start": 11171,
"end": 11179,
"ctxt": 0
},
"value": "nameText",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 11183,
"end": 11194,
"ctxt": 0
},
"value": "__missing",
"raw": "\"__missing\""
}
}
},
"right": {
"type": "UnaryExpression",
"span": {
"start": 11198,
"end": 11220,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 11199,
"end": 11220,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 11199,
"end": 11218,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11199,
"end": 11207,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11208,
"end": 11218,
"ctxt": 0
},
"value": "isAccessor",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 11222,
"end": 11562,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 11240,
"end": 11548,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 11244,
"end": 11252,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 11254,
"end": 11346,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 11276,
"end": 11328,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 11276,
"end": 11327,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 11276,
"end": 11281,
"ctxt": 0
},
"value": "fgSym",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "CallExpression",
"span": {
"start": 11284,
"end": 11327,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 11284,
"end": 11303,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11284,
"end": 11293,
"ctxt": 0
},
"value": "funcScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11294,
"end": 11303,
"ctxt": 0
},
"value": "findLocal",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11304,
"end": 11312,
"ctxt": 0
},
"value": "nameText",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 11314,
"end": 11319,
"ctxt": 0
},
"value": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 11321,
"end": 11326,
"ctxt": 0
},
"value": false
}
}
],
"typeArguments": null
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 11368,
"end": 11548,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 11478,
"end": 11530,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 11478,
"end": 11529,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 11478,
"end": 11483,
"ctxt": 0
},
"value": "fgSym",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "CallExpression",
"span": {
"start": 11486,
"end": 11529,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 11486,
"end": 11505,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11486,
"end": 11495,
"ctxt": 0
},
"value": "funcScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11496,
"end": 11505,
"ctxt": 0
},
"value": "findLocal",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11506,
"end": 11514,
"ctxt": 0
},
"value": "nameText",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 11516,
"end": 11521,
"ctxt": 0
},
"value": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 11523,
"end": 11528,
"ctxt": 0
},
"value": false
}
}
],
"typeArguments": null
}
}
}
]
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 11576,
"end": 11739,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 11576,
"end": 11738,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 11576,
"end": 11624,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 11576,
"end": 11600,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 11576,
"end": 11592,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11576,
"end": 11583,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11584,
"end": 11592,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 11593,
"end": 11600,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 11601,
"end": 11624,
"ctxt": 0
},
"value": "createFunctionSignature",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11625,
"end": 11633,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11635,
"end": 11644,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11706,
"end": 11715,
"ctxt": 0
},
"value": "funcScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11717,
"end": 11722,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BinaryExpression",
"span": {
"start": 11724,
"end": 11737,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "Identifier",
"span": {
"start": 11724,
"end": 11729,
"ctxt": 0
},
"value": "fgSym",
"optional": false
},
"right": {
"type": "NullLiteral",
"span": {
"start": 11733,
"end": 11737,
"ctxt": 0
}
}
}
}
],
"typeArguments": null
}
},
{
"type": "IfStatement",
"span": {
"start": 11834,
"end": 12331,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 11838,
"end": 12111,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "BinaryExpression",
"span": {
"start": 11838,
"end": 12057,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 11838,
"end": 11954,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 11838,
"end": 11925,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "UnaryExpression",
"span": {
"start": 11838,
"end": 11862,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 11839,
"end": 11862,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11839,
"end": 11847,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11848,
"end": 11862,
"ctxt": 0
},
"value": "accessorSymbol",
"optional": false
}
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 11883,
"end": 11925,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 11884,
"end": 11924,
"ctxt": 0
},
"operator": "&",
"left": {
"type": "MemberExpression",
"span": {
"start": 11884,
"end": 11901,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11884,
"end": 11892,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11893,
"end": 11901,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 11904,
"end": 11924,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11904,
"end": 11912,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11913,
"end": 11924,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 11945,
"end": 11954,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 11975,
"end": 12057,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 11976,
"end": 12056,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 11976,
"end": 12031,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 11977,
"end": 12030,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 11977,
"end": 11983,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "Identifier",
"span": {
"start": 11978,
"end": 11983,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 11987,
"end": 12030,
"ctxt": 0
},
"operator": "!=",
"left": {
"type": "MemberExpression",
"span": {
"start": 11987,
"end": 12009,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 11987,
"end": 12000,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11987,
"end": 11992,
"ctxt": 0
},
"value": "fgSym",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11993,
"end": 12000,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12001,
"end": 12009,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12013,
"end": 12030,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12013,
"end": 12021,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12022,
"end": 12030,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 12035,
"end": 12056,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12035,
"end": 12054,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12035,
"end": 12043,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12044,
"end": 12054,
"ctxt": 0
},
"value": "isAccessor",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 12082,
"end": 12111,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 12083,
"end": 12110,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 12083,
"end": 12088,
"ctxt": 0
},
"value": "fgSym",
"optional": false
},
"right": {
"type": "CallExpression",
"span": {
"start": 12092,
"end": 12110,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12092,
"end": 12108,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12092,
"end": 12097,
"ctxt": 0
},
"value": "fgSym",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12098,
"end": 12108,
"ctxt": 0
},
"value": "isAccessor",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 12126,
"end": 12331,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 12144,
"end": 12317,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 12144,
"end": 12316,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 12144,
"end": 12167,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12144,
"end": 12152,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12153,
"end": 12167,
"ctxt": 0
},
"value": "accessorSymbol",
"optional": false
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 12170,
"end": 12316,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12170,
"end": 12215,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12170,
"end": 12194,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12170,
"end": 12186,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12170,
"end": 12177,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12178,
"end": 12186,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12187,
"end": 12194,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12195,
"end": 12215,
"ctxt": 0
},
"value": "createAccessorSymbol",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 12216,
"end": 12224,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 12226,
"end": 12231,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "CallExpression",
"span": {
"start": 12233,
"end": 12252,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12233,
"end": 12250,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12233,
"end": 12242,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12243,
"end": 12250,
"ctxt": 0
},
"value": "getType",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
{
"spread": null,
"expression": {
"type": "ParenthesisExpression",
"span": {
"start": 12254,
"end": 12287,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 12255,
"end": 12286,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "CallExpression",
"span": {
"start": 12255,
"end": 12274,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12255,
"end": 12272,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12255,
"end": 12263,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12264,
"end": 12272,
"ctxt": 0
},
"value": "isMethod",
"optional": false
}
},
"arguments": [],
"typeArguments": null
},
"right": {
"type": "Identifier",
"span": {
"start": 12278,
"end": 12286,
"ctxt": 0
},
"value": "isStatic",
"optional": false
}
}
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 12289,
"end": 12293,
"ctxt": 0
},
"value": true
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 12295,
"end": 12304,
"ctxt": 0
},
"value": "funcScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 12306,
"end": 12315,
"ctxt": 0
},
"value": "container",
"optional": false
}
}
],
"typeArguments": null
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 12345,
"end": 12416,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 12345,
"end": 12415,
"ctxt": 0
},
"operator": "|=",
"left": {
"type": "MemberExpression",
"span": {
"start": 12345,
"end": 12371,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12345,
"end": 12365,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12345,
"end": 12358,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12345,
"end": 12353,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12354,
"end": 12358,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12359,
"end": 12365,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12366,
"end": 12371,
"ctxt": 0
},
"value": "flags",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12375,
"end": 12415,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12375,
"end": 12386,
"ctxt": 0
},
"value": "SymbolFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12387,
"end": 12415,
"ctxt": 0
},
"value": "TypeSetDuringScopeAssignment",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "IfStatement",
"span": {
"start": 12496,
"end": 12597,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 12500,
"end": 12530,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 12500,
"end": 12513,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12500,
"end": 12508,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12509,
"end": 12513,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12517,
"end": 12530,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12517,
"end": 12525,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12526,
"end": 12530,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 12532,
"end": 12597,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 12546,
"end": 12587,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 12546,
"end": 12586,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 12546,
"end": 12563,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12546,
"end": 12559,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12546,
"end": 12554,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12555,
"end": 12559,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12560,
"end": 12563,
"ctxt": 0
},
"value": "sym",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12566,
"end": 12586,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12566,
"end": 12579,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12566,
"end": 12574,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12575,
"end": 12579,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12580,
"end": 12586,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 12784,
"end": 12819,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 12784,
"end": 12818,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 12784,
"end": 12802,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12784,
"end": 12792,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12793,
"end": 12802,
"ctxt": 0
},
"value": "scopeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12805,
"end": 12818,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12805,
"end": 12813,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12814,
"end": 12818,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
}
},
{
"type": "IfStatement",
"span": {
"start": 12878,
"end": 12934,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 12882,
"end": 12901,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12882,
"end": 12890,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12891,
"end": 12901,
"ctxt": 0
},
"value": "isOverload",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 12903,
"end": 12934,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 12917,
"end": 12924,
"ctxt": 0
},
"argument": null
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 12944,
"end": 12982,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 12948,
"end": 12981,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12948,
"end": 12957,
"ctxt": 0
},
"value": "funcTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 12960,
"end": 12981,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 12964,
"end": 12979,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 12991,
"end": 13086,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 12995,
"end": 13085,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12995,
"end": 13006,
"ctxt": 0
},
"value": "funcMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13009,
"end": 13085,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13013,
"end": 13026,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13027,
"end": 13084,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13031,
"end": 13050,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13051,
"end": 13060,
"ctxt": 0
},
"value": "funcTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13062,
"end": 13083,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13066,
"end": 13081,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13095,
"end": 13140,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13099,
"end": 13139,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13099,
"end": 13115,
"ctxt": 0
},
"value": "ambientFuncTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13118,
"end": 13139,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13122,
"end": 13137,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13149,
"end": 13258,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13153,
"end": 13257,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13153,
"end": 13171,
"ctxt": 0
},
"value": "ambientFuncMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13174,
"end": 13257,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13178,
"end": 13191,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13192,
"end": 13256,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13196,
"end": 13215,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13216,
"end": 13232,
"ctxt": 0
},
"value": "ambientFuncTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13234,
"end": 13255,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13238,
"end": 13253,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13267,
"end": 13311,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13271,
"end": 13310,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13271,
"end": 13286,
"ctxt": 0
},
"value": "funcStaticTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13289,
"end": 13310,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13293,
"end": 13308,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13320,
"end": 13427,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13324,
"end": 13426,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13324,
"end": 13341,
"ctxt": 0
},
"value": "funcStaticMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13344,
"end": 13426,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13348,
"end": 13361,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13362,
"end": 13425,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13366,
"end": 13385,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13386,
"end": 13401,
"ctxt": 0
},
"value": "funcStaticTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13403,
"end": 13424,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13407,
"end": 13422,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13436,
"end": 13487,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13440,
"end": 13486,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13440,
"end": 13462,
"ctxt": 0
},
"value": "ambientFuncStaticTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13465,
"end": 13486,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13469,
"end": 13484,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13496,
"end": 13617,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13500,
"end": 13616,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13500,
"end": 13524,
"ctxt": 0
},
"value": "ambientFuncStaticMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13527,
"end": 13616,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13531,
"end": 13544,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13545,
"end": 13615,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13549,
"end": 13568,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13569,
"end": 13591,
"ctxt": 0
},
"value": "ambientFuncStaticTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13593,
"end": 13614,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13597,
"end": 13612,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 13724,
"end": 13793,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 13724,
"end": 13792,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 13724,
"end": 13742,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13724,
"end": 13732,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 13733,
"end": 13742,
"ctxt": 0
},
"value": "unitIndex",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 13745,
"end": 13792,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 13745,
"end": 13782,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 13745,
"end": 13769,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 13745,
"end": 13761,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13745,
"end": 13752,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 13753,
"end": 13761,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 13762,
"end": 13769,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 13770,
"end": 13782,
"ctxt": 0
},
"value": "locationInfo",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 13783,
"end": 13792,
"ctxt": 0
},
"value": "unitIndex",
"optional": false
}
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 13803,
"end": 13913,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13807,
"end": 13912,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13807,
"end": 13813,
"ctxt": 0
},
"value": "locals",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13816,
"end": 13912,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13820,
"end": 13838,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13839,
"end": 13850,
"ctxt": 0
},
"value": "funcMembers",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13852,
"end": 13870,
"ctxt": 0
},
"value": "ambientFuncMembers",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 13872,
"end": 13876,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 13878,
"end": 13882,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13884,
"end": 13895,
"ctxt": 0
},
"value": "parentScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13897,
"end": 13911,
"ctxt": 0
},
"value": "localContainer",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13922,
"end": 14035,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13926,
"end": 14034,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13926,
"end": 13933,
"ctxt": 0
},
"value": "statics",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13936,
"end": 14034,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13940,
"end": 13958,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13959,
"end": 13976,
"ctxt": 0
},
"value": "funcStaticMembers",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13978,
"end": 14002,
"ctxt": 0
},
"value": "ambientFuncStaticMembers",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 14004,
"end": 14008,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 14010,
"end": 14014,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 14016,
"end": 14027,
"ctxt": 0
},
"value": "parentScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 14029,
"end": 14033,
"ctxt": 0
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 14045,
"end": 14182,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 14049,
"end": 14102,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 14049,
"end": 14071,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14049,
"end": 14057,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14058,
"end": 14071,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 14075,
"end": 14102,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14075,
"end": 14093,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14075,
"end": 14082,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14083,
"end": 14093,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14094,
"end": 14102,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 14104,
"end": 14182,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 14118,
"end": 14172,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 14118,
"end": 14171,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 14118,
"end": 14162,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14118,
"end": 14145,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14118,
"end": 14136,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14118,
"end": 14125,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14126,
"end": 14136,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14137,
"end": 14145,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14146,
"end": 14162,
"ctxt": 0
},
"value": "constructorScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 14165,
"end": 14171,
"ctxt": 0
},
"value": "locals",
"optional": false
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 14811,
"end": 14840,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 14811,
"end": 14839,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 14811,
"end": 14827,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14811,
"end": 14819,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14820,
"end": 14827,
"ctxt": 0
},
"value": "symbols",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 14830,
"end": 14839,
"ctxt": 0
},
"value": "funcTable",
"optional": false
}
}
},
{
"type": "IfStatement",
"span": {
"start": 14850,
"end": 16502,
"ctxt": 0
},
"test": {
"type": "UnaryExpression",
"span": {
"start": 14854,
"end": 14877,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 14855,
"end": 14877,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 14855,
"end": 14875,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14855,
"end": 14863,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14864,
"end": 14875,
"ctxt": 0
},
"value": "isSpecialFn",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 14879,
"end": 16502,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 14893,
"end": 14919,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 14897,
"end": 14918,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 14897,
"end": 14902,
"ctxt": 0
},
"value": "group",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 14905,
"end": 14918,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14905,
"end": 14913,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14914,
"end": 14918,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 14932,
"end": 14967,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 14936,
"end": 14966,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 14936,
"end": 14945,
"ctxt": 0
},
"value": "signature",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 14948,
"end": 14966,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14948,
"end": 14956,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14957,
"end": 14966,
"ctxt": 0
},
"value": "signature",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 14981,
"end": 15217,
"ctxt": 0
},
"test": {
"type": "UnaryExpression",
"span": {
"start": 14985,
"end": 15008,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 14986,
"end": 15008,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14986,
"end": 14994,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14995,
"end": 15008,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 15010,
"end": 15217,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 15028,
"end": 15058,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15028,
"end": 15057,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15028,
"end": 15048,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15028,
"end": 15033,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15034,
"end": 15048,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 15051,
"end": 15057,
"ctxt": 0
},
"value": "locals",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15075,
"end": 15107,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15075,
"end": 15106,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15075,
"end": 15091,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15075,
"end": 15081,
"ctxt": 0
},
"value": "locals",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15082,
"end": 15091,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15094,
"end": 15106,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15094,
"end": 15099,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15100,
"end": 15106,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15125,
"end": 15153,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15125,
"end": 15152,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15125,
"end": 15142,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15125,
"end": 15130,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15131,
"end": 15142,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 15145,
"end": 15152,
"ctxt": 0
},
"value": "statics",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15170,
"end": 15203,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15170,
"end": 15202,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15170,
"end": 15187,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15170,
"end": 15177,
"ctxt": 0
},
"value": "statics",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15178,
"end": 15187,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15190,
"end": 15202,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15190,
"end": 15195,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15196,
"end": 15202,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 15230,
"end": 15277,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15230,
"end": 15276,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15230,
"end": 15251,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15230,
"end": 15238,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15239,
"end": 15251,
"ctxt": 0
},
"value": "enclosingFnc",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15254,
"end": 15276,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15254,
"end": 15272,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15254,
"end": 15261,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15262,
"end": 15272,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15273,
"end": 15276,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15290,
"end": 15382,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15290,
"end": 15381,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15290,
"end": 15309,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15290,
"end": 15295,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15296,
"end": 15309,
"ctxt": 0
},
"value": "enclosingType",
"optional": false
}
},
"right": {
"type": "ConditionalExpression",
"span": {
"start": 15312,
"end": 15381,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 15312,
"end": 15320,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"consequent": {
"type": "MemberExpression",
"span": {
"start": 15323,
"end": 15351,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15323,
"end": 15341,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15323,
"end": 15330,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15331,
"end": 15341,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15342,
"end": 15351,
"ctxt": 0
},
"value": "classType",
"optional": false
}
},
"alternate": {
"type": "MemberExpression",
"span": {
"start": 15354,
"end": 15381,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15354,
"end": 15372,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15354,
"end": 15361,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15362,
"end": 15372,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15373,
"end": 15381,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
}
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 15441,
"end": 15481,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 15445,
"end": 15480,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 15445,
"end": 15450,
"ctxt": 0
},
"value": "fgSym",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 15453,
"end": 15480,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 15465,
"end": 15480,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15465,
"end": 15473,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15465,
"end": 15468,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15469,
"end": 15473,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15474,
"end": 15480,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15454,
"end": 15464,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15454,
"end": 15464,
"ctxt": 0
},
"value": "TypeSymbol",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 15494,
"end": 15907,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 15498,
"end": 15574,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 15498,
"end": 15557,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 15499,
"end": 15556,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 15499,
"end": 15539,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 15500,
"end": 15538,
"ctxt": 0
},
"operator": "&",
"left": {
"type": "MemberExpression",
"span": {
"start": 15500,
"end": 15517,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15500,
"end": 15508,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15509,
"end": 15517,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15520,
"end": 15538,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15520,
"end": 15528,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15529,
"end": 15538,
"ctxt": 0
},
"value": "Signature",
"optional": false
}
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15543,
"end": 15556,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15543,
"end": 15551,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15552,
"end": 15556,
"ctxt": 0
},
"value": "None",
"optional": false
}
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15561,
"end": 15574,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15561,
"end": 15569,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15570,
"end": 15574,
"ctxt": 0
},
"value": "vars",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 15576,
"end": 15907,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 15594,
"end": 15730,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 15594,
"end": 15729,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 15594,
"end": 15629,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15594,
"end": 15610,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15594,
"end": 15601,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15602,
"end": 15610,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15611,
"end": 15629,
"ctxt": 0
},
"value": "addLocalsFromScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15630,
"end": 15636,
"ctxt": 0
},
"value": "locals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15638,
"end": 15643,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 15645,
"end": 15658,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15645,
"end": 15653,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15654,
"end": 15658,
"ctxt": 0
},
"value": "vars",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15712,
"end": 15721,
"ctxt": 0
},
"value": "funcTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 15723,
"end": 15728,
"ctxt": 0
},
"value": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15747,
"end": 15893,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 15747,
"end": 15892,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 15747,
"end": 15782,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15747,
"end": 15763,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15747,
"end": 15754,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15755,
"end": 15763,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15764,
"end": 15782,
"ctxt": 0
},
"value": "addLocalsFromScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15783,
"end": 15790,
"ctxt": 0
},
"value": "statics",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15792,
"end": 15797,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 15799,
"end": 15815,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15799,
"end": 15807,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15808,
"end": 15815,
"ctxt": 0
},
"value": "statics",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15869,
"end": 15884,
"ctxt": 0
},
"value": "funcStaticTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 15886,
"end": 15891,
"ctxt": 0
},
"value": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
},
{
"type": "IfStatement",
"span": {
"start": 15920,
"end": 16328,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 15924,
"end": 15944,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15924,
"end": 15933,
"ctxt": 0
},
"value": "signature",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15934,
"end": 15944,
"ctxt": 0
},
"value": "parameters",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 15946,
"end": 16328,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 15964,
"end": 16002,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 15968,
"end": 16001,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 15968,
"end": 15971,
"ctxt": 0
},
"value": "len",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 15974,
"end": 16001,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15974,
"end": 15994,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15974,
"end": 15983,
"ctxt": 0
},
"value": "signature",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15984,
"end": 15994,
"ctxt": 0
},
"value": "parameters",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15995,
"end": 16001,
"ctxt": 0
},
"value": "length",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ForStatement",
"span": {
"start": 16019,
"end": 16314,
"ctxt": 0
},
"init": {
"type": "VariableDeclaration",
"span": {
"start": 16024,
"end": 16033,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16028,
"end": 16033,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16028,
"end": 16029,
"ctxt": 0
},
"value": "i",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NumericLiteral",
"span": {
"start": 16032,
"end": 16033,
"ctxt": 0
},
"value": 0.0,
"raw": "0"
},
"definite": false
}
]
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 16035,
"end": 16042,
"ctxt": 0
},
"operator": "<",
"left": {
"type": "Identifier",
"span": {
"start": 16035,
"end": 16036,
"ctxt": 0
},
"value": "i",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 16039,
"end": 16042,
"ctxt": 0
},
"value": "len",
"optional": false
}
},
"update": {
"type": "UpdateExpression",
"span": {
"start": 16044,
"end": 16047,
"ctxt": 0
},
"operator": "++",
"prefix": false,
"argument": {
"type": "Identifier",
"span": {
"start": 16044,
"end": 16045,
"ctxt": 0
},
"value": "i",
"optional": false
}
},
"body": {
"type": "BlockStatement",
"span": {
"start": 16049,
"end": 16314,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16071,
"end": 16127,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16075,
"end": 16126,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16075,
"end": 16083,
"ctxt": 0
},
"value": "paramSym",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16083,
"end": 16100,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16085,
"end": 16100,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16085,
"end": 16100,
"ctxt": 0
},
"value": "ParameterSymbol",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 16103,
"end": 16126,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16103,
"end": 16123,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16103,
"end": 16112,
"ctxt": 0
},
"value": "signature",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16113,
"end": 16123,
"ctxt": 0
},
"value": "parameters",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 16123,
"end": 16126,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 16124,
"end": 16125,
"ctxt": 0
},
"value": "i",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 16148,
"end": 16296,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 16148,
"end": 16295,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 16148,
"end": 16188,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16148,
"end": 16172,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16148,
"end": 16164,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16148,
"end": 16155,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16156,
"end": 16164,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16165,
"end": 16172,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16173,
"end": 16188,
"ctxt": 0
},
"value": "resolveTypeLink",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16189,
"end": 16195,
"ctxt": 0
},
"value": "locals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16261,
"end": 16288,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16261,
"end": 16279,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16261,
"end": 16269,
"ctxt": 0
},
"value": "paramSym",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16270,
"end": 16279,
"ctxt": 0
},
"value": "parameter",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16280,
"end": 16288,
"ctxt": 0
},
"value": "typeLink",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 16290,
"end": 16294,
"ctxt": 0
},
"value": true
}
}
],
"typeArguments": null
}
}
]
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 16341,
"end": 16492,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 16341,
"end": 16491,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 16341,
"end": 16381,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16341,
"end": 16365,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16341,
"end": 16357,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16341,
"end": 16348,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16349,
"end": 16357,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16358,
"end": 16365,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16366,
"end": 16381,
"ctxt": 0
},
"value": "resolveTypeLink",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16382,
"end": 16388,
"ctxt": 0
},
"value": "locals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16390,
"end": 16410,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16390,
"end": 16399,
"ctxt": 0
},
"value": "signature",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16400,
"end": 16410,
"ctxt": 0
},
"value": "returnType",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "CallExpression",
"span": {
"start": 16468,
"end": 16490,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 16468,
"end": 16488,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16468,
"end": 16476,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16477,
"end": 16488,
"ctxt": 0
},
"value": "isSignature",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
},
{
"type": "IfStatement",
"span": {
"start": 16512,
"end": 16818,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 16516,
"end": 16591,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 16516,
"end": 16539,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 16517,
"end": 16539,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16517,
"end": 16525,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16526,
"end": 16539,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 16543,
"end": 16591,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 16543,
"end": 16550,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16551,
"end": 16568,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16551,
"end": 16559,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16560,
"end": 16568,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16570,
"end": 16590,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16570,
"end": 16578,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16579,
"end": 16590,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 16593,
"end": 16818,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16607,
"end": 16736,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16611,
"end": 16735,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16611,
"end": 16619,
"ctxt": 0
},
"value": "thisType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ConditionalExpression",
"span": {
"start": 16622,
"end": 16735,
"ctxt": 0
},
"test": {
"type": "ParenthesisExpression",
"span": {
"start": 16622,
"end": 16698,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 16623,
"end": 16697,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 16623,
"end": 16645,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16623,
"end": 16631,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16632,
"end": 16645,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 16649,
"end": 16697,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 16649,
"end": 16656,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16657,
"end": 16674,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16657,
"end": 16665,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16666,
"end": 16674,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16676,
"end": 16696,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16676,
"end": 16684,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16685,
"end": 16696,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
"consequent": {
"type": "MemberExpression",
"span": {
"start": 16701,
"end": 16728,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16701,
"end": 16719,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16701,
"end": 16708,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16709,
"end": 16719,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16720,
"end": 16728,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"alternate": {
"type": "NullLiteral",
"span": {
"start": 16731,
"end": 16735,
"ctxt": 0
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 16749,
"end": 16808,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 16749,
"end": 16807,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 16749,
"end": 16764,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16765,
"end": 16771,
"ctxt": 0
},
"value": "locals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16773,
"end": 16780,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16782,
"end": 16790,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 16792,
"end": 16796,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16798,
"end": 16806,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 16830,
"end": 17571,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16846,
"end": 16866,
"ctxt": 0
},
"value": "preAssignCatchScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 16867,
"end": 16875,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16867,
"end": 16875,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16870,
"end": 16875,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16872,
"end": 16875,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16872,
"end": 16875,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 16877,
"end": 16904,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16877,
"end": 16904,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16884,
"end": 16904,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16886,
"end": 16904,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16886,
"end": 16904,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 16837,
"end": 17571,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 16906,
"end": 17571,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16916,
"end": 16944,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16920,
"end": 16943,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16920,
"end": 16930,
"ctxt": 0
},
"value": "catchBlock",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 16933,
"end": 16943,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 16940,
"end": 16943,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16934,
"end": 16939,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16934,
"end": 16939,
"ctxt": 0
},
"value": "Catch",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 16953,
"end": 17565,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 16957,
"end": 16973,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16957,
"end": 16967,
"ctxt": 0
},
"value": "catchBlock",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16968,
"end": 16973,
"ctxt": 0
},
"value": "param",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 16975,
"end": 17565,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16989,
"end": 17095,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16993,
"end": 17094,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16993,
"end": 17003,
"ctxt": 0
},
"value": "catchTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 17006,
"end": 17094,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17010,
"end": 17023,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 17024,
"end": 17093,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17028,
"end": 17047,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 17048,
"end": 17069,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17052,
"end": 17067,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 17071,
"end": 17092,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17075,
"end": 17090,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 17184,
"end": 17368,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17188,
"end": 17367,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17188,
"end": 17199,
"ctxt": 0
},
"value": "catchLocals",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 17202,
"end": 17367,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17206,
"end": 17224,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 17225,
"end": 17235,
"ctxt": 0
},
"value": "catchTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 17237,
"end": 17241,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 17243,
"end": 17247,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 17249,
"end": 17253,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17255,
"end": 17279,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17255,
"end": 17273,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17255,
"end": 17262,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17263,
"end": 17273,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17274,
"end": 17279,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17332,
"end": 17366,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17332,
"end": 17356,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17332,
"end": 17350,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17332,
"end": 17339,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17340,
"end": 17350,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17351,
"end": 17356,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17357,
"end": 17366,
"ctxt": 0
},
"value": "container",
"optional": false
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 17381,
"end": 17421,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 17381,
"end": 17420,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 17381,
"end": 17406,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17381,
"end": 17391,
"ctxt": 0
},
"value": "catchBlock",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17392,
"end": 17406,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 17409,
"end": 17420,
"ctxt": 0
},
"value": "catchLocals",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 17434,
"end": 17555,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 17434,
"end": 17554,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17434,
"end": 17449,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 17450,
"end": 17461,
"ctxt": 0
},
"value": "catchLocals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 17463,
"end": 17470,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17472,
"end": 17499,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17472,
"end": 17490,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17472,
"end": 17479,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17480,
"end": 17490,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17491,
"end": 17499,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17501,
"end": 17529,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17501,
"end": 17519,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17501,
"end": 17508,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17509,
"end": 17519,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17520,
"end": 17529,
"ctxt": 0
},
"value": "classType",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17531,
"end": 17553,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17531,
"end": 17549,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17531,
"end": 17538,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17539,
"end": 17549,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17550,
"end": 17553,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 17577,
"end": 18867,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 17593,
"end": 17608,
"ctxt": 0
},
"value": "preAssignScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 17609,
"end": 17617,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17609,
"end": 17617,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17612,
"end": 17617,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17614,
"end": 17617,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17614,
"end": 17617,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 17619,
"end": 17630,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17619,
"end": 17630,
"ctxt": 0
},
"value": "parent",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17625,
"end": 17630,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17627,
"end": 17630,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17627,
"end": 17630,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 17632,
"end": 17650,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17632,
"end": 17650,
"ctxt": 0
},
"value": "walker",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17638,
"end": 17650,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17640,
"end": 17650,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17640,
"end": 17650,
"ctxt": 0
},
"value": "IAstWalker",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 17584,
"end": 18867,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 17652,
"end": 18867,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 17662,
"end": 17708,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17666,
"end": 17707,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17666,
"end": 17673,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17673,
"end": 17692,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17674,
"end": 17692,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17674,
"end": 17692,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 17695,
"end": 17707,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17695,
"end": 17701,
"ctxt": 0
},
"value": "walker",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17702,
"end": 17707,
"ctxt": 0
},
"value": "state",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 17717,
"end": 17731,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17721,
"end": 17730,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17721,
"end": 17723,
"ctxt": 0
},
"value": "go",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BooleanLiteral",
"span": {
"start": 17726,
"end": 17730,
"ctxt": 0
},
"value": true
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 17741,
"end": 18801,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 17745,
"end": 17748,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 17750,
"end": 18801,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 17764,
"end": 18791,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 17768,
"end": 17797,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 17768,
"end": 17780,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17768,
"end": 17771,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17772,
"end": 17780,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 17784,
"end": 17797,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17784,
"end": 17792,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17793,
"end": 17797,
"ctxt": 0
},
"value": "List",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 17799,
"end": 17919,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 17817,
"end": 17841,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17821,
"end": 17840,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17821,
"end": 17825,
"ctxt": 0
},
"value": "list",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 17828,
"end": 17840,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 17837,
"end": 17840,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17829,
"end": 17836,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17829,
"end": 17836,
"ctxt": 0
},
"value": "ASTList",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 17858,
"end": 17905,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 17858,
"end": 17904,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 17858,
"end": 17877,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17858,
"end": 17862,
"ctxt": 0
},
"value": "list",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17863,
"end": 17877,
"ctxt": 0
},
"value": "enclosingScope",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 17880,
"end": 17904,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17880,
"end": 17898,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17880,
"end": 17887,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17888,
"end": 17898,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17899,
"end": 17904,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 17937,
"end": 18791,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 17941,
"end": 17983,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 17941,
"end": 17953,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17941,
"end": 17944,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17945,
"end": 17953,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 17957,
"end": 17983,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17957,
"end": 17965,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17966,
"end": 17983,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 17985,
"end": 18053,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18003,
"end": 18039,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18003,
"end": 18038,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18003,
"end": 18024,
"ctxt": 0
},
"value": "preAssignModuleScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18025,
"end": 18028,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18030,
"end": 18037,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18071,
"end": 18791,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18075,
"end": 18116,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18075,
"end": 18087,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18075,
"end": 18078,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18079,
"end": 18087,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18091,
"end": 18116,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18091,
"end": 18099,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18100,
"end": 18116,
"ctxt": 0
},
"value": "ClassDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18118,
"end": 18185,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18136,
"end": 18171,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18136,
"end": 18170,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18136,
"end": 18156,
"ctxt": 0
},
"value": "preAssignClassScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18157,
"end": 18160,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18162,
"end": 18169,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18203,
"end": 18791,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18207,
"end": 18252,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18207,
"end": 18219,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18207,
"end": 18210,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18211,
"end": 18219,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18223,
"end": 18252,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18223,
"end": 18231,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18232,
"end": 18252,
"ctxt": 0
},
"value": "InterfaceDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18254,
"end": 18325,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18272,
"end": 18311,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18272,
"end": 18310,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18272,
"end": 18296,
"ctxt": 0
},
"value": "preAssignInterfaceScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18297,
"end": 18300,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18302,
"end": 18309,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18343,
"end": 18791,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18347,
"end": 18376,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18347,
"end": 18359,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18347,
"end": 18350,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18351,
"end": 18359,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18363,
"end": 18376,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18363,
"end": 18371,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18372,
"end": 18376,
"ctxt": 0
},
"value": "With",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18378,
"end": 18444,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18396,
"end": 18430,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18396,
"end": 18429,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18396,
"end": 18415,
"ctxt": 0
},
"value": "preAssignWithScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18416,
"end": 18419,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18421,
"end": 18428,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18462,
"end": 18791,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18466,
"end": 18499,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18466,
"end": 18478,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18466,
"end": 18469,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18470,
"end": 18478,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18482,
"end": 18499,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18482,
"end": 18490,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18491,
"end": 18499,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18501,
"end": 18571,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18519,
"end": 18557,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18519,
"end": 18556,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18519,
"end": 18542,
"ctxt": 0
},
"value": "preAssignFuncDeclScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18543,
"end": 18546,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18548,
"end": 18555,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18589,
"end": 18791,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18593,
"end": 18623,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18593,
"end": 18605,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18593,
"end": 18596,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18597,
"end": 18605,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18609,
"end": 18623,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18609,
"end": 18617,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18618,
"end": 18623,
"ctxt": 0
},
"value": "Catch",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18625,
"end": 18692,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18643,
"end": 18678,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18643,
"end": 18677,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18643,
"end": 18663,
"ctxt": 0
},
"value": "preAssignCatchScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18664,
"end": 18667,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18669,
"end": 18676,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18710,
"end": 18791,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18714,
"end": 18746,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18714,
"end": 18726,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18714,
"end": 18717,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18718,
"end": 18726,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18730,
"end": 18746,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18730,
"end": 18738,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18739,
"end": 18746,
"ctxt": 0
},
"value": "TypeRef",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18748,
"end": 18791,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18766,
"end": 18777,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 18766,
"end": 18776,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 18766,
"end": 18768,
"ctxt": 0
},
"value": "go",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "BooleanLiteral",
"span": {
"start": 18771,
"end": 18776,
"ctxt": 0
},
"value": false
}
}
}
]
},
"alternate": null
}
}
}
}
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 18810,
"end": 18841,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 18810,
"end": 18840,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 18810,
"end": 18835,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 18810,
"end": 18824,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18810,
"end": 18816,
"ctxt": 0
},
"value": "walker",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18817,
"end": 18824,
"ctxt": 0
},
"value": "options",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 18825,
"end": 18835,
"ctxt": 0
},
"value": "goChildren",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 18838,
"end": 18840,
"ctxt": 0
},
"value": "go",
"optional": false
}
}
},
{
"type": "ReturnStatement",
"span": {
"start": 18850,
"end": 18861,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 18857,
"end": 18860,
"ctxt": 0
},
"value": "ast",
"optional": false
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 18873,
"end": 20474,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 18889,
"end": 18905,
"ctxt": 0
},
"value": "postAssignScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 18906,
"end": 18914,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 18906,
"end": 18914,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 18909,
"end": 18914,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 18911,
"end": 18914,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 18911,
"end": 18914,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 18916,
"end": 18927,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 18916,
"end": 18927,
"ctxt": 0
},
"value": "parent",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 18922,
"end": 18927,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 18924,
"end": 18927,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 18924,
"end": 18927,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 18929,
"end": 18947,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 18929,
"end": 18947,
"ctxt": 0
},
"value": "walker",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 18935,
"end": 18947,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 18937,
"end": 18947,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 18937,
"end": 18947,
"ctxt": 0
},
"value": "IAstWalker",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 18880,
"end": 20474,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 18949,
"end": 20474,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 18959,
"end": 19005,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 18963,
"end": 19004,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 18963,
"end": 18970,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 18970,
"end": 18989,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 18971,
"end": 18989,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 18971,
"end": 18989,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 18992,
"end": 19004,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18992,
"end": 18998,
"ctxt": 0
},
"value": "walker",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18999,
"end": 19004,
"ctxt": 0
},
"value": "state",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 19014,
"end": 19028,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 19018,
"end": 19027,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 19018,
"end": 19020,
"ctxt": 0
},
"value": "go",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BooleanLiteral",
"span": {
"start": 19023,
"end": 19027,
"ctxt": 0
},
"value": true
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 19037,
"end": 20408,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 19041,
"end": 19044,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19046,
"end": 20408,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 19060,
"end": 20398,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19064,
"end": 19106,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19064,
"end": 19076,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19064,
"end": 19067,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19068,
"end": 19076,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19080,
"end": 19106,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19080,
"end": 19088,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19089,
"end": 19106,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19108,
"end": 19459,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 19126,
"end": 19167,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 19130,
"end": 19166,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 19130,
"end": 19141,
"ctxt": 0
},
"value": "prevModDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 19144,
"end": 19166,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 19163,
"end": 19166,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 19145,
"end": 19162,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 19145,
"end": 19162,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 19185,
"end": 19209,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19185,
"end": 19208,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19185,
"end": 19199,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 19200,
"end": 19207,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 19227,
"end": 19254,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19227,
"end": 19253,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 19227,
"end": 19251,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19227,
"end": 19247,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19227,
"end": 19234,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19235,
"end": 19247,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19248,
"end": 19251,
"ctxt": 0
},
"value": "pop",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
{
"type": "IfStatement",
"span": {
"start": 19271,
"end": 19445,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19275,
"end": 19307,
"ctxt": 0
},
"operator": ">=",
"left": {
"type": "MemberExpression",
"span": {
"start": 19275,
"end": 19302,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19275,
"end": 19295,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19275,
"end": 19282,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19283,
"end": 19295,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19296,
"end": 19302,
"ctxt": 0
},
"value": "length",
"optional": false
}
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 19306,
"end": 19307,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19309,
"end": 19445,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 19331,
"end": 19427,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 19331,
"end": 19426,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 19331,
"end": 19370,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19331,
"end": 19355,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19331,
"end": 19347,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19331,
"end": 19338,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19339,
"end": 19347,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19348,
"end": 19355,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19356,
"end": 19370,
"ctxt": 0
},
"value": "currentModDecl",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19373,
"end": 19426,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19373,
"end": 19393,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19373,
"end": 19380,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19381,
"end": 19393,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 19393,
"end": 19426,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 19394,
"end": 19425,
"ctxt": 0
},
"operator": "-",
"left": {
"type": "MemberExpression",
"span": {
"start": 19394,
"end": 19421,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19394,
"end": 19414,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19394,
"end": 19401,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19402,
"end": 19414,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19415,
"end": 19421,
"ctxt": 0
},
"value": "length",
"optional": false
}
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 19424,
"end": 19425,
"ctxt": 0
},
"value": 1.0,
"raw": "1"
}
}
}
}
}
}
]
},
"alternate": null
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 19477,
"end": 20398,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19481,
"end": 19522,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19481,
"end": 19493,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19481,
"end": 19484,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19485,
"end": 19493,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19497,
"end": 19522,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19497,
"end": 19505,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19506,
"end": 19522,
"ctxt": 0
},
"value": "ClassDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19524,
"end": 19580,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 19542,
"end": 19566,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19542,
"end": 19565,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19542,
"end": 19556,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 19557,
"end": 19564,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 19598,
"end": 20398,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19602,
"end": 19647,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19602,
"end": 19614,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19602,
"end": 19605,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19606,
"end": 19614,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19618,
"end": 19647,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19618,
"end": 19626,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19627,
"end": 19647,
"ctxt": 0
},
"value": "InterfaceDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19649,
"end": 19705,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 19667,
"end": 19691,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19667,
"end": 19690,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19667,
"end": 19681,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 19682,
"end": 19689,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 19723,
"end": 20398,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19727,
"end": 19756,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19727,
"end": 19739,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19727,
"end": 19730,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19731,
"end": 19739,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19743,
"end": 19756,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19743,
"end": 19751,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19752,
"end": 19756,
"ctxt": 0
},
"value": "With",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19758,
"end": 19814,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 19776,
"end": 19800,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19776,
"end": 19799,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19776,
"end": 19790,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 19791,
"end": 19798,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 19832,
"end": 20398,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19836,
"end": 19869,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19836,
"end": 19848,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19836,
"end": 19839,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19840,
"end": 19848,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19852,
"end": 19869,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19852,
"end": 19860,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19861,
"end": 19869,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19871,
"end": 20120,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 19889,
"end": 19918,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 19893,
"end": 19917,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 19893,
"end": 19901,
"ctxt": 0
},
"value": "funcDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 19904,
"end": 19917,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 19914,
"end": 19917,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 19905,
"end": 19913,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 19905,
"end": 19913,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 19935,
"end": 20106,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19939,
"end": 20040,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 19939,
"end": 20016,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 19940,
"end": 20015,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 19940,
"end": 19963,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 19941,
"end": 19963,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19941,
"end": 19949,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19950,
"end": 19963,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 19967,
"end": 20015,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19967,
"end": 19974,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 19975,
"end": 19992,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19975,
"end": 19983,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19984,
"end": 19992,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 19994,
"end": 20014,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19994,
"end": 20002,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20003,
"end": 20014,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
"right": {
"type": "UnaryExpression",
"span": {
"start": 20020,
"end": 20040,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 20021,
"end": 20040,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20021,
"end": 20029,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20030,
"end": 20040,
"ctxt": 0
},
"value": "isOverload",
"optional": false
}
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 20042,
"end": 20106,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 20064,
"end": 20088,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 20064,
"end": 20087,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 20064,
"end": 20078,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 20079,
"end": 20086,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 20138,
"end": 20398,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 20142,
"end": 20172,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 20142,
"end": 20154,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20142,
"end": 20145,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20146,
"end": 20154,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 20158,
"end": 20172,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20158,
"end": 20166,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20167,
"end": 20172,
"ctxt": 0
},
"value": "Catch",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 20174,
"end": 20337,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 20192,
"end": 20220,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 20196,
"end": 20219,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 20196,
"end": 20206,
"ctxt": 0
},
"value": "catchBlock",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 20209,
"end": 20219,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 20216,
"end": 20219,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 20210,
"end": 20215,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 20210,
"end": 20215,
"ctxt": 0
},
"value": "Catch",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 20237,
"end": 20323,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 20241,
"end": 20257,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20241,
"end": 20251,
"ctxt": 0
},
"value": "catchBlock",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20252,
"end": 20257,
"ctxt": 0
},
"value": "param",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 20259,
"end": 20323,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 20281,
"end": 20305,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 20281,
"end": 20304,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 20281,
"end": 20295,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 20296,
"end": 20303,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 20355,
"end": 20398,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 20373,
"end": 20384,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 20373,
"end": 20383,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 20373,
"end": 20375,
"ctxt": 0
},
"value": "go",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "BooleanLiteral",
"span": {
"start": 20378,
"end": 20383,
"ctxt": 0
},
"value": false
}
}
}
]
}
}
}
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 20417,
"end": 20448,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 20417,
"end": 20447,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 20417,
"end": 20442,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 20417,
"end": 20431,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20417,
"end": 20423,
"ctxt": 0
},
"value": "walker",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20424,
"end": 20431,
"ctxt": 0
},
"value": "options",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 20432,
"end": 20442,
"ctxt": 0
},
"value": "goChildren",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 20445,
"end": 20447,
"ctxt": 0
},
"value": "go",
"optional": false
}
}
},
{
"type": "ReturnStatement",
"span": {
"start": 20457,
"end": 20468,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 20464,
"end": 20467,
"ctxt": 0
},
"value": "ast",
"optional": false
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
}
]
}
}
],
"interpreter": null
}