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

22983 lines
996 KiB
JSON
Raw Normal View History

{
"type": "Script",
"span": {
"start": 211,
"end": 20475,
"ctxt": 0
},
"body": [
{
"type": "TsModuleDeclaration",
"span": {
"start": 211,
"end": 20475,
"ctxt": 0
},
"declare": false,
"global": false,
"id": {
"type": "Identifier",
"span": {
"start": 218,
"end": 228,
"ctxt": 0
},
"value": "TypeScript",
"optional": false
},
"body": {
"type": "TsModuleBlock",
"span": {
"start": 229,
"end": 20475,
"ctxt": 0
},
"body": [
{
"type": "ExportDeclaration",
"span": {
"start": 236,
"end": 450,
"ctxt": 0
},
"declaration": {
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 249,
"end": 267,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"declare": false,
"span": {
"start": 243,
"end": 450,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 278,
"end": 444,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 278,
"end": 289,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "TsParameterProperty",
"span": {
"start": 291,
"end": 320,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 298,
"end": 320,
"ctxt": 0
},
"value": "scopeChain",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 308,
"end": 320,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 310,
"end": 320,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 310,
"end": 320,
"ctxt": 0
},
"value": "ScopeChain",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "TsParameterProperty",
"span": {
"start": 343,
"end": 368,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 350,
"end": 368,
"ctxt": 0
},
"value": "typeFlow",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 358,
"end": 368,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 360,
"end": 368,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 360,
"end": 368,
"ctxt": 0
},
"value": "TypeFlow",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "TsParameterProperty",
"span": {
"start": 391,
"end": 431,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 398,
"end": 431,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 410,
"end": 431,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsArrayType",
"span": {
"start": 412,
"end": 431,
"ctxt": 0
},
"elemType": {
"type": "TsTypeReference",
"span": {
"start": 412,
"end": 429,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 412,
"end": 429,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
},
"typeParams": null
}
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 433,
"end": 444,
"ctxt": 0
},
"stmts": []
},
"accessibility": null,
"isOptional": false
}
],
"superClass": null,
"isAbstract": false,
"typeParams": null,
"superTypeParams": null,
"implements": []
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 456,
"end": 819,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 472,
"end": 487,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 488,
"end": 506,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 488,
"end": 506,
"ctxt": 0
},
"value": "scope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 493,
"end": 506,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 495,
"end": 506,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 495,
"end": 506,
"ctxt": 0
},
"value": "SymbolScope",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 516,
"end": 543,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 516,
"end": 543,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 523,
"end": 543,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 525,
"end": 543,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 525,
"end": 543,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 553,
"end": 563,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 553,
"end": 563,
"ctxt": 0
},
"value": "type",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 557,
"end": 563,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 559,
"end": 563,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 559,
"end": 563,
"ctxt": 0
},
"value": "Type",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 573,
"end": 588,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 573,
"end": 588,
"ctxt": 0
},
"value": "classType",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 582,
"end": 588,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 584,
"end": 588,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 584,
"end": 588,
"ctxt": 0
},
"value": "Type",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 598,
"end": 611,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 598,
"end": 611,
"ctxt": 0
},
"value": "fnc",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 601,
"end": 611,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 603,
"end": 611,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 603,
"end": 611,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 463,
"end": 819,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 613,
"end": 819,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 624,
"end": 684,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 628,
"end": 683,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 628,
"end": 633,
"ctxt": 0
},
"value": "chain",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 636,
"end": 683,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 640,
"end": 650,
"ctxt": 0
},
"value": "ScopeChain",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 651,
"end": 655,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 657,
"end": 675,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 657,
"end": 664,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 665,
"end": 675,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 677,
"end": 682,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 693,
"end": 715,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 693,
"end": 714,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 693,
"end": 707,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 693,
"end": 698,
"ctxt": 0
},
"value": "chain",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 699,
"end": 707,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 710,
"end": 714,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 724,
"end": 752,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 724,
"end": 751,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 724,
"end": 739,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 724,
"end": 729,
"ctxt": 0
},
"value": "chain",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 730,
"end": 739,
"ctxt": 0
},
"value": "classType",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 742,
"end": 751,
"ctxt": 0
},
"value": "classType",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 761,
"end": 777,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 761,
"end": 776,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 761,
"end": 770,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 761,
"end": 766,
"ctxt": 0
},
"value": "chain",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 767,
"end": 770,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 773,
"end": 776,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 786,
"end": 813,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 786,
"end": 812,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 786,
"end": 804,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 786,
"end": 793,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 794,
"end": 804,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 807,
"end": 812,
"ctxt": 0
},
"value": "chain",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 825,
"end": 950,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 841,
"end": 855,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 856,
"end": 883,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 856,
"end": 883,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 863,
"end": 883,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 865,
"end": 883,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 865,
"end": 883,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 832,
"end": 950,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 885,
"end": 950,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 895,
"end": 944,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 895,
"end": 943,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 895,
"end": 913,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 895,
"end": 902,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 903,
"end": 913,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 916,
"end": 943,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 916,
"end": 934,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 916,
"end": 923,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 924,
"end": 934,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 935,
"end": 943,
"ctxt": 0
},
"value": "previous",
"optional": false
}
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 956,
"end": 1154,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 972,
"end": 987,
"ctxt": 0
},
"value": "instanceCompare",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 988,
"end": 997,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 988,
"end": 997,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 989,
"end": 997,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 991,
"end": 997,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 991,
"end": 997,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 999,
"end": 1008,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 999,
"end": 1008,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1000,
"end": 1008,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1002,
"end": 1008,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1002,
"end": 1008,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 963,
"end": 1154,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1010,
"end": 1154,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 1020,
"end": 1148,
"ctxt": 0
},
"test": {
"type": "ParenthesisExpression",
"span": {
"start": 1024,
"end": 1066,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 1025,
"end": 1065,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 1025,
"end": 1036,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 1026,
"end": 1035,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "Identifier",
"span": {
"start": 1026,
"end": 1027,
"ctxt": 0
},
"value": "a",
"optional": false
},
"right": {
"type": "NullLiteral",
"span": {
"start": 1031,
"end": 1035,
"ctxt": 0
}
}
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 1040,
"end": 1065,
"ctxt": 0
},
"expression": {
"type": "UnaryExpression",
"span": {
"start": 1041,
"end": 1064,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 1042,
"end": 1064,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 1042,
"end": 1062,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1042,
"end": 1043,
"ctxt": 0
},
"value": "a",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1044,
"end": 1062,
"ctxt": 0
},
"value": "isInstanceProperty",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 1068,
"end": 1101,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1082,
"end": 1091,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 1089,
"end": 1090,
"ctxt": 0
},
"value": "b",
"optional": false
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 1115,
"end": 1148,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1129,
"end": 1138,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 1136,
"end": 1137,
"ctxt": 0
},
"value": "a",
"optional": false
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 1160,
"end": 1252,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1176,
"end": 1194,
"ctxt": 0
},
"value": "instanceFilterStop",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1195,
"end": 1204,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1195,
"end": 1204,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1196,
"end": 1204,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1198,
"end": 1204,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1198,
"end": 1204,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1167,
"end": 1252,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1206,
"end": 1252,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1216,
"end": 1246,
"ctxt": 0
},
"argument": {
"type": "CallExpression",
"span": {
"start": 1223,
"end": 1245,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 1223,
"end": 1243,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 1223,
"end": 1224,
"ctxt": 0
},
"value": "s",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 1225,
"end": 1243,
"ctxt": 0
},
"value": "isInstanceProperty",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 1258,
"end": 1806,
"ctxt": 0
},
"declaration": {
"type": "ClassDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1271,
"end": 1288,
"ctxt": 0
},
"value": "ScopeSearchFilter",
"optional": false
},
"declare": false,
"span": {
"start": 1265,
"end": 1806,
"ctxt": 0
},
"decorators": [],
"body": [
{
"type": "Constructor",
"span": {
"start": 1300,
"end": 1428,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 1300,
"end": 1311,
"ctxt": 0
},
"value": "constructor",
"optional": false
},
"params": [
{
"type": "TsParameterProperty",
"span": {
"start": 1313,
"end": 1359,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 1320,
"end": 1359,
"ctxt": 0
},
"value": "select",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1326,
"end": 1359,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1328,
"end": 1359,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1329,
"end": 1338,
"ctxt": 0
},
"value": "a",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1330,
"end": 1338,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1332,
"end": 1338,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1332,
"end": 1338,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
},
{
"type": "Identifier",
"span": {
"start": 1340,
"end": 1349,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1341,
"end": 1349,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1343,
"end": 1349,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1343,
"end": 1349,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1351,
"end": 1359,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1353,
"end": 1359,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1353,
"end": 1359,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
}
}
},
{
"type": "TsParameterProperty",
"span": {
"start": 1389,
"end": 1423,
"ctxt": 0
},
"decorators": [],
"accessibility": "public",
"override": false,
"readonly": false,
"param": {
"type": "Identifier",
"span": {
"start": 1396,
"end": 1423,
"ctxt": 0
},
"value": "stop",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1400,
"end": 1423,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsFunctionType",
"span": {
"start": 1402,
"end": 1423,
"ctxt": 0
},
"params": [
{
"type": "Identifier",
"span": {
"start": 1403,
"end": 1412,
"ctxt": 0
},
"value": "s",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1404,
"end": 1412,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1406,
"end": 1412,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1406,
"end": 1412,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
],
"typeParams": null,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1414,
"end": 1423,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1416,
"end": 1423,
"ctxt": 0
},
"kind": "boolean"
}
}
}
}
}
}
],
"body": {
"type": "BlockStatement",
"span": {
"start": 1425,
"end": 1428,
"ctxt": 0
},
"stmts": []
},
"accessibility": null,
"isOptional": false
},
{
"type": "ClassProperty",
"span": {
"start": 1438,
"end": 1467,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 1445,
"end": 1451,
"ctxt": 0
},
"value": "result",
"optional": false
},
"value": {
"type": "NullLiteral",
"span": {
"start": 1462,
"end": 1466,
"ctxt": 0
}
},
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1451,
"end": 1459,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1453,
"end": 1459,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1453,
"end": 1459,
"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": 1477,
"end": 1535,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 1484,
"end": 1489,
"ctxt": 0
},
"value": "reset",
"optional": false
},
"function": {
"params": [],
"decorators": [],
"span": {
"start": 1477,
"end": 1535,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1492,
"end": 1535,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 1506,
"end": 1525,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1506,
"end": 1524,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 1506,
"end": 1517,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1506,
"end": 1510,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1511,
"end": 1517,
"ctxt": 0
},
"value": "result",
"optional": false
}
},
"right": {
"type": "NullLiteral",
"span": {
"start": 1520,
"end": 1524,
"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": 1545,
"end": 1800,
"ctxt": 0
},
"key": {
"type": "Identifier",
"span": {
"start": 1552,
"end": 1558,
"ctxt": 0
},
"value": "update",
"optional": false
},
"function": {
"params": [
{
"type": "Parameter",
"span": {
"start": 1559,
"end": 1568,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1559,
"end": 1568,
"ctxt": 0
},
"value": "b",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1560,
"end": 1568,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1562,
"end": 1568,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1562,
"end": 1568,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1545,
"end": 1800,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1579,
"end": 1800,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 1593,
"end": 1635,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 1593,
"end": 1634,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 1593,
"end": 1604,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1593,
"end": 1597,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1598,
"end": 1604,
"ctxt": 0
},
"value": "result",
"optional": false
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 1607,
"end": 1634,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 1607,
"end": 1618,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1607,
"end": 1611,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1612,
"end": 1618,
"ctxt": 0
},
"value": "select",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 1619,
"end": 1630,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1619,
"end": 1623,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1624,
"end": 1630,
"ctxt": 0
},
"value": "result",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1632,
"end": 1633,
"ctxt": 0
},
"value": "b",
"optional": false
}
}
],
"typeArguments": null
}
}
},
{
"type": "IfStatement",
"span": {
"start": 1648,
"end": 1790,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 1652,
"end": 1663,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1652,
"end": 1656,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1657,
"end": 1663,
"ctxt": 0
},
"value": "result",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 1665,
"end": 1727,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1683,
"end": 1713,
"ctxt": 0
},
"argument": {
"type": "CallExpression",
"span": {
"start": 1690,
"end": 1712,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 1690,
"end": 1699,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1690,
"end": 1694,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1695,
"end": 1699,
"ctxt": 0
},
"value": "stop",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 1700,
"end": 1711,
"ctxt": 0
},
"object": {
"type": "ThisExpression",
"span": {
"start": 1700,
"end": 1704,
"ctxt": 0
}
},
"property": {
"type": "Identifier",
"span": {
"start": 1705,
"end": 1711,
"ctxt": 0
},
"value": "result",
"optional": false
}
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 1745,
"end": 1790,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 1763,
"end": 1776,
"ctxt": 0
},
"argument": {
"type": "BooleanLiteral",
"span": {
"start": 1770,
"end": 1775,
"ctxt": 0
},
"value": false
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": {
"type": "TsTypeAnnotation",
"span": {
"start": 1569,
"end": 1578,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsKeywordType",
"span": {
"start": 1571,
"end": 1578,
"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": 1812,
"end": 1899,
"ctxt": 0
},
"declaration": {
"type": "VariableDeclaration",
"span": {
"start": 1819,
"end": 1899,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1823,
"end": 1898,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1823,
"end": 1837,
"ctxt": 0
},
"value": "instanceFilter",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 1840,
"end": 1898,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 1844,
"end": 1861,
"ctxt": 0
},
"value": "ScopeSearchFilter",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1862,
"end": 1877,
"ctxt": 0
},
"value": "instanceCompare",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 1879,
"end": 1897,
"ctxt": 0
},
"value": "instanceFilterStop",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 1905,
"end": 3111,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 1921,
"end": 1942,
"ctxt": 0
},
"value": "preAssignModuleScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 1943,
"end": 1951,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1943,
"end": 1951,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1946,
"end": 1951,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1948,
"end": 1951,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1948,
"end": 1951,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 1953,
"end": 1980,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 1953,
"end": 1980,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 1960,
"end": 1980,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 1962,
"end": 1980,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 1962,
"end": 1980,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 1912,
"end": 3111,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 1982,
"end": 3111,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 1992,
"end": 2032,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 1996,
"end": 2031,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 1996,
"end": 2006,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 2009,
"end": 2031,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 2028,
"end": 2031,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2010,
"end": 2027,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2010,
"end": 2027,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2041,
"end": 2082,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2045,
"end": 2081,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2045,
"end": 2056,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2056,
"end": 2074,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2058,
"end": 2074,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2058,
"end": 2074,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 2077,
"end": 2081,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 2091,
"end": 2133,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2095,
"end": 2132,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2095,
"end": 2103,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 2103,
"end": 2125,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 2105,
"end": 2125,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 2105,
"end": 2125,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 2128,
"end": 2132,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 2143,
"end": 2250,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 2147,
"end": 2180,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 2147,
"end": 2162,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2147,
"end": 2157,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2158,
"end": 2162,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 2166,
"end": 2180,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2166,
"end": 2176,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2177,
"end": 2180,
"ctxt": 0
},
"value": "mod",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2182,
"end": 2250,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2196,
"end": 2240,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2196,
"end": 2239,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2196,
"end": 2215,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2196,
"end": 2211,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2196,
"end": 2206,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2207,
"end": 2211,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2212,
"end": 2215,
"ctxt": 0
},
"value": "sym",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 2218,
"end": 2239,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2218,
"end": 2232,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2218,
"end": 2228,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2229,
"end": 2232,
"ctxt": 0
},
"value": "mod",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2233,
"end": 2239,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 2260,
"end": 2285,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 2264,
"end": 2284,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 2264,
"end": 2267,
"ctxt": 0
},
"value": "mod",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 2270,
"end": 2284,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2270,
"end": 2280,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2281,
"end": 2284,
"ctxt": 0
},
"value": "mod",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 2350,
"end": 2391,
"ctxt": 0
},
"test": {
"type": "UnaryExpression",
"span": {
"start": 2354,
"end": 2358,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "Identifier",
"span": {
"start": 2355,
"end": 2358,
"ctxt": 0
},
"value": "mod",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2360,
"end": 2391,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 2374,
"end": 2381,
"ctxt": 0
},
"argument": null
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 2401,
"end": 2526,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2401,
"end": 2525,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2401,
"end": 2412,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 2415,
"end": 2525,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2419,
"end": 2435,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2436,
"end": 2447,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2436,
"end": 2439,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2440,
"end": 2447,
"ctxt": 0
},
"value": "members",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2449,
"end": 2467,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2449,
"end": 2452,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2453,
"end": 2467,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2469,
"end": 2486,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2469,
"end": 2472,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2473,
"end": 2486,
"ctxt": 0
},
"value": "enclosedTypes",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2488,
"end": 2512,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2488,
"end": 2491,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2492,
"end": 2512,
"ctxt": 0
},
"value": "ambientEnclosedTypes",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2514,
"end": 2524,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2514,
"end": 2517,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2518,
"end": 2524,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2535,
"end": 2565,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2535,
"end": 2564,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2535,
"end": 2550,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2535,
"end": 2538,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2539,
"end": 2550,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 2553,
"end": 2564,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2574,
"end": 2612,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2574,
"end": 2611,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 2574,
"end": 2599,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2574,
"end": 2594,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2574,
"end": 2581,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2582,
"end": 2594,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2595,
"end": 2599,
"ctxt": 0
},
"value": "push",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2600,
"end": 2610,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2621,
"end": 2674,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2621,
"end": 2673,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2621,
"end": 2660,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2621,
"end": 2645,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2621,
"end": 2637,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2621,
"end": 2628,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2629,
"end": 2637,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2638,
"end": 2645,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2646,
"end": 2660,
"ctxt": 0
},
"value": "currentModDecl",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 2663,
"end": 2673,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2683,
"end": 2731,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2683,
"end": 2730,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 2683,
"end": 2691,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 2694,
"end": 2730,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2698,
"end": 2718,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2719,
"end": 2729,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2719,
"end": 2722,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2723,
"end": 2729,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2740,
"end": 2777,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2740,
"end": 2776,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 2740,
"end": 2763,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2740,
"end": 2748,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2749,
"end": 2763,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2764,
"end": 2775,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2786,
"end": 2836,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2786,
"end": 2835,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 2786,
"end": 2809,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2786,
"end": 2794,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2795,
"end": 2809,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 2810,
"end": 2834,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2810,
"end": 2828,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2810,
"end": 2817,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2818,
"end": 2828,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2829,
"end": 2834,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2845,
"end": 2898,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2845,
"end": 2897,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 2845,
"end": 2860,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2861,
"end": 2869,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 2871,
"end": 2878,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2880,
"end": 2884,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2886,
"end": 2890,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 2892,
"end": 2896,
"ctxt": 0
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 2907,
"end": 2937,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 2907,
"end": 2936,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 2907,
"end": 2925,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2907,
"end": 2910,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2911,
"end": 2925,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 2928,
"end": 2936,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
}
},
{
"type": "IfStatement",
"span": {
"start": 2946,
"end": 3105,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 2950,
"end": 2960,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2950,
"end": 2953,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2954,
"end": 2960,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 2962,
"end": 3105,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 2976,
"end": 3095,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 2976,
"end": 3094,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 2976,
"end": 3011,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 2976,
"end": 2992,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 2976,
"end": 2983,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 2984,
"end": 2992,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 2993,
"end": 3011,
"ctxt": 0
},
"value": "addLocalsFromScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3012,
"end": 3030,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3012,
"end": 3015,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3016,
"end": 3030,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3032,
"end": 3042,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3032,
"end": 3035,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3036,
"end": 3042,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3044,
"end": 3059,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3044,
"end": 3054,
"ctxt": 0
},
"value": "moduleDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3055,
"end": 3059,
"ctxt": 0
},
"value": "vars",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3061,
"end": 3087,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3061,
"end": 3072,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3061,
"end": 3064,
"ctxt": 0
},
"value": "mod",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3065,
"end": 3072,
"ctxt": 0
},
"value": "members",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3073,
"end": 3087,
"ctxt": 0
},
"value": "privateMembers",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 3089,
"end": 3093,
"ctxt": 0
},
"value": true
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 3117,
"end": 4492,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 3133,
"end": 3153,
"ctxt": 0
},
"value": "preAssignClassScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 3154,
"end": 3162,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3154,
"end": 3162,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3157,
"end": 3162,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3159,
"end": 3162,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3159,
"end": 3162,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 3164,
"end": 3191,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 3164,
"end": 3191,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3171,
"end": 3191,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3173,
"end": 3191,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3173,
"end": 3191,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 3124,
"end": 4492,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 3193,
"end": 4492,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3203,
"end": 3245,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3207,
"end": 3244,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3207,
"end": 3216,
"ctxt": 0
},
"value": "classDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 3219,
"end": 3244,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 3241,
"end": 3244,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3220,
"end": 3240,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3220,
"end": 3240,
"ctxt": 0
},
"value": "InterfaceDeclaration",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3254,
"end": 3295,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3258,
"end": 3294,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3258,
"end": 3269,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3269,
"end": 3287,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3271,
"end": 3287,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3271,
"end": 3287,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 3290,
"end": 3294,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 3304,
"end": 3346,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3308,
"end": 3345,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3308,
"end": 3316,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 3316,
"end": 3338,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3318,
"end": 3338,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3318,
"end": 3338,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 3341,
"end": 3345,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 3356,
"end": 3461,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 3360,
"end": 3392,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 3360,
"end": 3374,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3360,
"end": 3369,
"ctxt": 0
},
"value": "classDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3370,
"end": 3374,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 3378,
"end": 3392,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3378,
"end": 3387,
"ctxt": 0
},
"value": "classDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3388,
"end": 3392,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3394,
"end": 3461,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 3408,
"end": 3451,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3408,
"end": 3450,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3408,
"end": 3426,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3408,
"end": 3422,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3408,
"end": 3417,
"ctxt": 0
},
"value": "classDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3418,
"end": 3422,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3423,
"end": 3426,
"ctxt": 0
},
"value": "sym",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 3429,
"end": 3450,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3429,
"end": 3443,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3429,
"end": 3438,
"ctxt": 0
},
"value": "classDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3439,
"end": 3443,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3444,
"end": 3450,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 3471,
"end": 3496,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3475,
"end": 3495,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3475,
"end": 3484,
"ctxt": 0
},
"value": "classType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 3487,
"end": 3495,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3487,
"end": 3490,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3491,
"end": 3495,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 3506,
"end": 4486,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 3510,
"end": 3519,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 3521,
"end": 4412,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 3535,
"end": 3567,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3539,
"end": 3566,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3539,
"end": 3547,
"ctxt": 0
},
"value": "classSym",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 3550,
"end": 3566,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3550,
"end": 3559,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3560,
"end": 3566,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 3580,
"end": 3656,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3580,
"end": 3655,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3580,
"end": 3591,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "TsTypeAssertion",
"span": {
"start": 3594,
"end": 3655,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3612,
"end": 3655,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 3612,
"end": 3644,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3612,
"end": 3636,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3612,
"end": 3628,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3612,
"end": 3619,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3620,
"end": 3628,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3629,
"end": 3636,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3637,
"end": 3644,
"ctxt": 0
},
"value": "scopeOf",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3645,
"end": 3654,
"ctxt": 0
},
"value": "classType",
"optional": false
}
}
],
"typeArguments": null
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 3595,
"end": 3611,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 3595,
"end": 3611,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3670,
"end": 3724,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3670,
"end": 3723,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 3670,
"end": 3678,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 3681,
"end": 3723,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 3685,
"end": 3705,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3706,
"end": 3722,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3706,
"end": 3715,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3716,
"end": 3722,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3737,
"end": 3774,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3737,
"end": 3773,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 3737,
"end": 3760,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3737,
"end": 3745,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3746,
"end": 3760,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 3761,
"end": 3772,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3787,
"end": 3837,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 3787,
"end": 3836,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 3787,
"end": 3810,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3787,
"end": 3795,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3796,
"end": 3810,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 3811,
"end": 3835,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 3811,
"end": 3829,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3811,
"end": 3818,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3819,
"end": 3829,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 3830,
"end": 3835,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3851,
"end": 3887,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3851,
"end": 3886,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3851,
"end": 3875,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3851,
"end": 3860,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3861,
"end": 3875,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 3878,
"end": 3886,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 3900,
"end": 3936,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 3900,
"end": 3935,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 3900,
"end": 3921,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3900,
"end": 3909,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3910,
"end": 3921,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 3924,
"end": 3935,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 3950,
"end": 3992,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 3954,
"end": 3991,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 3954,
"end": 3966,
"ctxt": 0
},
"value": "instanceType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 3969,
"end": 3991,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 3969,
"end": 3978,
"ctxt": 0
},
"value": "classType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 3979,
"end": 3991,
"ctxt": 0
},
"value": "instanceType",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 4005,
"end": 4084,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4005,
"end": 4083,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 4005,
"end": 4016,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "TsTypeAssertion",
"span": {
"start": 4019,
"end": 4083,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4037,
"end": 4083,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4037,
"end": 4069,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4037,
"end": 4061,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4037,
"end": 4053,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4037,
"end": 4044,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4045,
"end": 4053,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4054,
"end": 4061,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4062,
"end": 4069,
"ctxt": 0
},
"value": "scopeOf",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4070,
"end": 4082,
"ctxt": 0
},
"value": "instanceType",
"optional": false
}
}
],
"typeArguments": null
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4020,
"end": 4036,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4020,
"end": 4036,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4097,
"end": 4136,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4097,
"end": 4135,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 4097,
"end": 4121,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4097,
"end": 4109,
"ctxt": 0
},
"value": "instanceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4110,
"end": 4121,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 4124,
"end": 4135,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4150,
"end": 4207,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4150,
"end": 4206,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 4150,
"end": 4158,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 4161,
"end": 4206,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4165,
"end": 4185,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 4186,
"end": 4205,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4186,
"end": 4198,
"ctxt": 0
},
"value": "instanceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4199,
"end": 4205,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4220,
"end": 4270,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4220,
"end": 4269,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4220,
"end": 4243,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4220,
"end": 4228,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4229,
"end": 4243,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 4244,
"end": 4268,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4244,
"end": 4262,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4244,
"end": 4251,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4252,
"end": 4262,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4263,
"end": 4268,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4284,
"end": 4350,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4284,
"end": 4349,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 4284,
"end": 4299,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4300,
"end": 4308,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4310,
"end": 4317,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4319,
"end": 4331,
"ctxt": 0
},
"value": "instanceType",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4333,
"end": 4342,
"ctxt": 0
},
"value": "classType",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 4344,
"end": 4348,
"ctxt": 0
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 4363,
"end": 4402,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4363,
"end": 4401,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 4363,
"end": 4390,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4363,
"end": 4375,
"ctxt": 0
},
"value": "instanceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4376,
"end": 4390,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 4393,
"end": 4401,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 4426,
"end": 4486,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4440,
"end": 4476,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4440,
"end": 4475,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 4440,
"end": 4448,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4440,
"end": 4443,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4444,
"end": 4448,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 4451,
"end": 4475,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4451,
"end": 4467,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4451,
"end": 4458,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4459,
"end": 4467,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4468,
"end": 4475,
"ctxt": 0
},
"value": "anyType",
"optional": false
}
}
}
}
]
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 4498,
"end": 5332,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 4514,
"end": 4538,
"ctxt": 0
},
"value": "preAssignInterfaceScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 4539,
"end": 4547,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4539,
"end": 4547,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4542,
"end": 4547,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4544,
"end": 4547,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4544,
"end": 4547,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 4549,
"end": 4576,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 4549,
"end": 4576,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4556,
"end": 4576,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4558,
"end": 4576,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4558,
"end": 4576,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 4505,
"end": 5332,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 4578,
"end": 5332,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 4588,
"end": 4634,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4592,
"end": 4633,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4592,
"end": 4605,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 4608,
"end": 4633,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 4630,
"end": 4633,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4609,
"end": 4629,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4609,
"end": 4629,
"ctxt": 0
},
"value": "InterfaceDeclaration",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4643,
"end": 4684,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4647,
"end": 4683,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4647,
"end": 4658,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4658,
"end": 4676,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4660,
"end": 4676,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4660,
"end": 4676,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 4679,
"end": 4683,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 4693,
"end": 4735,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4697,
"end": 4734,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4697,
"end": 4705,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 4705,
"end": 4727,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4707,
"end": 4727,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4707,
"end": 4727,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 4730,
"end": 4734,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 4745,
"end": 4866,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 4749,
"end": 4789,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 4749,
"end": 4767,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4749,
"end": 4762,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4763,
"end": 4767,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 4771,
"end": 4789,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4771,
"end": 4784,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4785,
"end": 4789,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 4791,
"end": 4866,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 4805,
"end": 4856,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4805,
"end": 4855,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 4805,
"end": 4827,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4805,
"end": 4823,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4805,
"end": 4818,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4819,
"end": 4823,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4824,
"end": 4827,
"ctxt": 0
},
"value": "sym",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 4830,
"end": 4855,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4830,
"end": 4848,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4830,
"end": 4843,
"ctxt": 0
},
"value": "interfaceDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4844,
"end": 4848,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4849,
"end": 4855,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 4876,
"end": 4905,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 4880,
"end": 4904,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 4880,
"end": 4893,
"ctxt": 0
},
"value": "interfaceType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 4896,
"end": 4904,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4896,
"end": 4899,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4900,
"end": 4904,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 4914,
"end": 4994,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 4914,
"end": 4993,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 4914,
"end": 4925,
"ctxt": 0
},
"value": "memberScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "TsTypeAssertion",
"span": {
"start": 4928,
"end": 4993,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 4946,
"end": 4993,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 4946,
"end": 4978,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4946,
"end": 4970,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 4946,
"end": 4962,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 4946,
"end": 4953,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 4954,
"end": 4962,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4963,
"end": 4970,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 4971,
"end": 4978,
"ctxt": 0
},
"value": "scopeOf",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 4979,
"end": 4992,
"ctxt": 0
},
"value": "interfaceType",
"optional": false
}
}
],
"typeArguments": null
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 4929,
"end": 4945,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 4929,
"end": 4945,
"ctxt": 0
},
"value": "SymbolTableScope",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5003,
"end": 5043,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5003,
"end": 5042,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5003,
"end": 5028,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5003,
"end": 5016,
"ctxt": 0
},
"value": "interfaceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5017,
"end": 5028,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5031,
"end": 5042,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5052,
"end": 5110,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5052,
"end": 5109,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 5052,
"end": 5060,
"ctxt": 0
},
"value": "aggScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "NewExpression",
"span": {
"start": 5063,
"end": 5109,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5067,
"end": 5087,
"ctxt": 0
},
"value": "SymbolAggregateScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 5088,
"end": 5108,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5088,
"end": 5101,
"ctxt": 0
},
"value": "interfaceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5102,
"end": 5108,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5119,
"end": 5156,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 5119,
"end": 5155,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 5119,
"end": 5142,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5119,
"end": 5127,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5128,
"end": 5142,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5143,
"end": 5154,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5165,
"end": 5215,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 5165,
"end": 5214,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 5165,
"end": 5188,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5165,
"end": 5173,
"ctxt": 0
},
"value": "aggScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5174,
"end": 5188,
"ctxt": 0
},
"value": "addParentScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 5189,
"end": 5213,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 5189,
"end": 5207,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5189,
"end": 5196,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5197,
"end": 5207,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5208,
"end": 5213,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5224,
"end": 5277,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 5224,
"end": 5276,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5224,
"end": 5239,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5240,
"end": 5248,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5250,
"end": 5257,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 5259,
"end": 5263,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 5265,
"end": 5269,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 5271,
"end": 5275,
"ctxt": 0
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5286,
"end": 5326,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5286,
"end": 5325,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5286,
"end": 5314,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5286,
"end": 5299,
"ctxt": 0
},
"value": "interfaceType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5300,
"end": 5314,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5317,
"end": 5325,
"ctxt": 0
},
"value": "aggScope",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 5338,
"end": 6353,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 5354,
"end": 5373,
"ctxt": 0
},
"value": "preAssignWithScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 5374,
"end": 5382,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5374,
"end": 5382,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5377,
"end": 5382,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5379,
"end": 5382,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5379,
"end": 5382,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 5384,
"end": 5411,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 5384,
"end": 5411,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 5391,
"end": 5411,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5393,
"end": 5411,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5393,
"end": 5411,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 5345,
"end": 6353,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 5413,
"end": 6353,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 5423,
"end": 5457,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5427,
"end": 5456,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5427,
"end": 5435,
"ctxt": 0
},
"value": "withStmt",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 5438,
"end": 5456,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 5453,
"end": 5456,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 5439,
"end": 5452,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 5439,
"end": 5452,
"ctxt": 0
},
"value": "WithStatement",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5466,
"end": 5495,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5470,
"end": 5494,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5470,
"end": 5478,
"ctxt": 0
},
"value": "withType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 5481,
"end": 5494,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5481,
"end": 5489,
"ctxt": 0
},
"value": "withStmt",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5490,
"end": 5494,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5505,
"end": 5608,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5509,
"end": 5607,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5509,
"end": 5516,
"ctxt": 0
},
"value": "members",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 5519,
"end": 5607,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5523,
"end": 5536,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5537,
"end": 5606,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5541,
"end": 5560,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5561,
"end": 5582,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5565,
"end": 5580,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5584,
"end": 5605,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5588,
"end": 5603,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5617,
"end": 5727,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5621,
"end": 5726,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5621,
"end": 5635,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 5638,
"end": 5726,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5642,
"end": 5655,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5656,
"end": 5725,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5660,
"end": 5679,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5680,
"end": 5701,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5684,
"end": 5699,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 5703,
"end": 5724,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5707,
"end": 5722,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5737,
"end": 5763,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5741,
"end": 5762,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5741,
"end": 5749,
"ctxt": 0
},
"value": "withType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 5752,
"end": 5762,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5756,
"end": 5760,
"ctxt": 0
},
"value": "Type",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 5772,
"end": 5881,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 5776,
"end": 5880,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 5776,
"end": 5786,
"ctxt": 0
},
"value": "withSymbol",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 5789,
"end": 5880,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 5793,
"end": 5803,
"ctxt": 0
},
"value": "WithSymbol",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 5804,
"end": 5820,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5804,
"end": 5812,
"ctxt": 0
},
"value": "withStmt",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5813,
"end": 5820,
"ctxt": 0
},
"value": "minChar",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 5822,
"end": 5869,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 5822,
"end": 5859,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 5822,
"end": 5846,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 5822,
"end": 5838,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5822,
"end": 5829,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5830,
"end": 5838,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5839,
"end": 5846,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5847,
"end": 5859,
"ctxt": 0
},
"value": "locationInfo",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 5860,
"end": 5869,
"ctxt": 0
},
"value": "unitIndex",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 5871,
"end": 5879,
"ctxt": 0
},
"value": "withType",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 5890,
"end": 5917,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5890,
"end": 5916,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5890,
"end": 5906,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5890,
"end": 5898,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5899,
"end": 5906,
"ctxt": 0
},
"value": "members",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5909,
"end": 5916,
"ctxt": 0
},
"value": "members",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5926,
"end": 5967,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5926,
"end": 5966,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5926,
"end": 5949,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5926,
"end": 5934,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5935,
"end": 5949,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5952,
"end": 5966,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 5976,
"end": 6005,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 5976,
"end": 6004,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 5976,
"end": 5991,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 5976,
"end": 5984,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 5985,
"end": 5991,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 5994,
"end": 6004,
"ctxt": 0
},
"value": "withSymbol",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6014,
"end": 6046,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 6014,
"end": 6045,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 6014,
"end": 6043,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6014,
"end": 6022,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6023,
"end": 6043,
"ctxt": 0
},
"value": "setHasImplementation",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6055,
"end": 6080,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 6055,
"end": 6079,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 6055,
"end": 6068,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6055,
"end": 6063,
"ctxt": 0
},
"value": "withStmt",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6064,
"end": 6068,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 6071,
"end": 6079,
"ctxt": 0
},
"value": "withType",
"optional": false
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 6090,
"end": 6238,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6094,
"end": 6237,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6094,
"end": 6103,
"ctxt": 0
},
"value": "withScope",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 6106,
"end": 6237,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 6110,
"end": 6139,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6110,
"end": 6120,
"ctxt": 0
},
"value": "TypeScript",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6121,
"end": 6139,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6140,
"end": 6156,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6140,
"end": 6148,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6149,
"end": 6156,
"ctxt": 0
},
"value": "members",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6158,
"end": 6181,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6158,
"end": 6166,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6167,
"end": 6181,
"ctxt": 0
},
"value": "ambientMembers",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6183,
"end": 6187,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6189,
"end": 6193,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6195,
"end": 6219,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6195,
"end": 6213,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6195,
"end": 6202,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6203,
"end": 6213,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6214,
"end": 6219,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6221,
"end": 6236,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6221,
"end": 6229,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6230,
"end": 6236,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 6248,
"end": 6302,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 6248,
"end": 6301,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 6248,
"end": 6263,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 6264,
"end": 6273,
"ctxt": 0
},
"value": "withScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 6275,
"end": 6282,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6284,
"end": 6288,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6290,
"end": 6294,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 6296,
"end": 6300,
"ctxt": 0
}
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 6311,
"end": 6347,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 6311,
"end": 6346,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 6311,
"end": 6334,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6311,
"end": 6319,
"ctxt": 0
},
"value": "withType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6320,
"end": 6334,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 6337,
"end": 6346,
"ctxt": 0
},
"value": "withScope",
"optional": false
}
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 6359,
"end": 16823,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 6375,
"end": 6398,
"ctxt": 0
},
"value": "preAssignFuncDeclScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 6399,
"end": 6407,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6399,
"end": 6407,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6402,
"end": 6407,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6404,
"end": 6407,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6404,
"end": 6407,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 6409,
"end": 6436,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 6409,
"end": 6436,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6416,
"end": 6436,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6418,
"end": 6436,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6418,
"end": 6436,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 6366,
"end": 16823,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 6438,
"end": 16823,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 6448,
"end": 6477,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6452,
"end": 6476,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6452,
"end": 6460,
"ctxt": 0
},
"value": "funcDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 6463,
"end": 6476,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 6473,
"end": 6476,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6464,
"end": 6472,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6464,
"end": 6472,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6487,
"end": 6516,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6491,
"end": 6515,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6491,
"end": 6500,
"ctxt": 0
},
"value": "container",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6500,
"end": 6508,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6502,
"end": 6508,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6502,
"end": 6508,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 6511,
"end": 6515,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6525,
"end": 6559,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6529,
"end": 6558,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6529,
"end": 6543,
"ctxt": 0
},
"value": "localContainer",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 6543,
"end": 6551,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 6545,
"end": 6551,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 6545,
"end": 6551,
"ctxt": 0
},
"value": "Symbol",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 6554,
"end": 6558,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 6568,
"end": 6644,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 6572,
"end": 6585,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6572,
"end": 6580,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6581,
"end": 6585,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 6587,
"end": 6644,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 6601,
"end": 6634,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 6601,
"end": 6633,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 6601,
"end": 6615,
"ctxt": 0
},
"value": "localContainer",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 6618,
"end": 6633,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6618,
"end": 6626,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6618,
"end": 6621,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6622,
"end": 6626,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6627,
"end": 6633,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 6654,
"end": 6713,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6658,
"end": 6712,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6658,
"end": 6666,
"ctxt": 0
},
"value": "isStatic",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "CallExpression",
"span": {
"start": 6669,
"end": 6712,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 6669,
"end": 6676,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6677,
"end": 6694,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6677,
"end": 6685,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6686,
"end": 6694,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 6696,
"end": 6711,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6696,
"end": 6704,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6705,
"end": 6711,
"ctxt": 0
},
"value": "Static",
"optional": false
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6722,
"end": 6785,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6726,
"end": 6784,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6726,
"end": 6739,
"ctxt": 0
},
"value": "isInnerStatic",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BinaryExpression",
"span": {
"start": 6742,
"end": 6784,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 6742,
"end": 6750,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 6754,
"end": 6784,
"ctxt": 0
},
"operator": "!=",
"left": {
"type": "MemberExpression",
"span": {
"start": 6754,
"end": 6776,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6754,
"end": 6772,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6754,
"end": 6761,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6762,
"end": 6772,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6773,
"end": 6776,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"right": {
"type": "NullLiteral",
"span": {
"start": 6780,
"end": 6784,
"ctxt": 0
}
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 6897,
"end": 6998,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 6901,
"end": 6997,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 6901,
"end": 6912,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ConditionalExpression",
"span": {
"start": 6915,
"end": 6997,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 6915,
"end": 6928,
"ctxt": 0
},
"value": "isInnerStatic",
"optional": false
},
"consequent": {
"type": "MemberExpression",
"span": {
"start": 6931,
"end": 6970,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6931,
"end": 6958,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6931,
"end": 6953,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6931,
"end": 6949,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6931,
"end": 6938,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6939,
"end": 6949,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6950,
"end": 6953,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6954,
"end": 6958,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6959,
"end": 6970,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"alternate": {
"type": "MemberExpression",
"span": {
"start": 6973,
"end": 6997,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 6973,
"end": 6991,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 6973,
"end": 6980,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 6981,
"end": 6991,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 6992,
"end": 6997,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 7334,
"end": 9114,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 7338,
"end": 7458,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 7338,
"end": 7365,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7338,
"end": 7356,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7338,
"end": 7345,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7346,
"end": 7356,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 7357,
"end": 7365,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 7381,
"end": 7458,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 7382,
"end": 7457,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 7382,
"end": 7405,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 7383,
"end": 7405,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7383,
"end": 7391,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7392,
"end": 7405,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 7409,
"end": 7457,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7409,
"end": 7416,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 7417,
"end": 7434,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7417,
"end": 7425,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7426,
"end": 7434,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 7436,
"end": 7456,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7436,
"end": 7444,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7445,
"end": 7456,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 7460,
"end": 8870,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 7474,
"end": 7517,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 7478,
"end": 7516,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 7478,
"end": 7486,
"ctxt": 0
},
"value": "instType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 7489,
"end": 7516,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7489,
"end": 7507,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7489,
"end": 7496,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7497,
"end": 7507,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 7508,
"end": 7516,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 7531,
"end": 8819,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 7535,
"end": 7629,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "UnaryExpression",
"span": {
"start": 7535,
"end": 7576,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "ParenthesisExpression",
"span": {
"start": 7536,
"end": 7576,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 7537,
"end": 7575,
"ctxt": 0
},
"operator": "&",
"left": {
"type": "MemberExpression",
"span": {
"start": 7537,
"end": 7555,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7537,
"end": 7545,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7546,
"end": 7555,
"ctxt": 0
},
"value": "typeFlags",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 7558,
"end": 7575,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7558,
"end": 7567,
"ctxt": 0
},
"value": "TypeFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7568,
"end": 7575,
"ctxt": 0
},
"value": "IsClass",
"optional": false
}
}
}
}
},
"right": {
"type": "UnaryExpression",
"span": {
"start": 7580,
"end": 7629,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 7581,
"end": 7629,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 7581,
"end": 7588,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 7589,
"end": 7606,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7589,
"end": 7597,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7598,
"end": 7606,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 7608,
"end": 7628,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7608,
"end": 7616,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7617,
"end": 7628,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 7631,
"end": 7946,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 7649,
"end": 7932,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 7653,
"end": 7685,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 7653,
"end": 7673,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 7654,
"end": 7673,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 7654,
"end": 7671,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7654,
"end": 7662,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7663,
"end": 7671,
"ctxt": 0
},
"value": "isMethod",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
"right": {
"type": "Identifier",
"span": {
"start": 7677,
"end": 7685,
"ctxt": 0
},
"value": "isStatic",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 7687,
"end": 7767,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 7709,
"end": 7749,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 7709,
"end": 7748,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 7709,
"end": 7720,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 7723,
"end": 7748,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7723,
"end": 7731,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7732,
"end": 7748,
"ctxt": 0
},
"value": "constructorScope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 7789,
"end": 7932,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 7876,
"end": 7914,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 7876,
"end": 7913,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 7876,
"end": 7887,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 7890,
"end": 7913,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7890,
"end": 7898,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7899,
"end": 7913,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
}
}
}
]
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 7964,
"end": 8819,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 7982,
"end": 8805,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 7986,
"end": 8310,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 7986,
"end": 8209,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 7986,
"end": 8104,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 7986,
"end": 8029,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7986,
"end": 8019,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7986,
"end": 8013,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 7986,
"end": 8004,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 7986,
"end": 7993,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 7994,
"end": 8004,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8005,
"end": 8013,
"ctxt": 0
},
"value": "previous",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8014,
"end": 8019,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8020,
"end": 8029,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8053,
"end": 8104,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8053,
"end": 8096,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8053,
"end": 8086,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8053,
"end": 8080,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8053,
"end": 8071,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8053,
"end": 8060,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8061,
"end": 8071,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8072,
"end": 8080,
"ctxt": 0
},
"value": "previous",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8081,
"end": 8086,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8087,
"end": 8096,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8097,
"end": 8104,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
}
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 8128,
"end": 8209,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 8128,
"end": 8188,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8128,
"end": 8179,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8128,
"end": 8171,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8128,
"end": 8161,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8128,
"end": 8155,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8128,
"end": 8146,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8128,
"end": 8135,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8136,
"end": 8146,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8147,
"end": 8155,
"ctxt": 0
},
"value": "previous",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8156,
"end": 8161,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8162,
"end": 8171,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8172,
"end": 8179,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8180,
"end": 8188,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8192,
"end": 8209,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8192,
"end": 8200,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8201,
"end": 8209,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8233,
"end": 8310,
"ctxt": 0
},
"object": {
"type": "ParenthesisExpression",
"span": {
"start": 8233,
"end": 8296,
"ctxt": 0
},
"expression": {
"type": "TsTypeAssertion",
"span": {
"start": 8234,
"end": 8295,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 8244,
"end": 8295,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8244,
"end": 8287,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8244,
"end": 8277,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8244,
"end": 8271,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8244,
"end": 8262,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8244,
"end": 8251,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8252,
"end": 8262,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8263,
"end": 8271,
"ctxt": 0
},
"value": "previous",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8272,
"end": 8277,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8278,
"end": 8287,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8288,
"end": 8295,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 8235,
"end": 8243,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 8235,
"end": 8243,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8297,
"end": 8310,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 8312,
"end": 8486,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 8428,
"end": 8468,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8428,
"end": 8467,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 8428,
"end": 8439,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8442,
"end": 8467,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8442,
"end": 8450,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8451,
"end": 8467,
"ctxt": 0
},
"value": "constructorScope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 8508,
"end": 8805,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 8512,
"end": 8552,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 8512,
"end": 8520,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8524,
"end": 8552,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8524,
"end": 8542,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8524,
"end": 8531,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8532,
"end": 8542,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8543,
"end": 8552,
"ctxt": 0
},
"value": "classType",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 8554,
"end": 8652,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 8576,
"end": 8634,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8576,
"end": 8633,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 8576,
"end": 8587,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8590,
"end": 8633,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8590,
"end": 8618,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8590,
"end": 8608,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8590,
"end": 8597,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8598,
"end": 8608,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8609,
"end": 8618,
"ctxt": 0
},
"value": "classType",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8619,
"end": 8633,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 8674,
"end": 8805,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 8749,
"end": 8787,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8749,
"end": 8786,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 8749,
"end": 8760,
"ctxt": 0
},
"value": "parentScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8763,
"end": 8786,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8763,
"end": 8771,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8772,
"end": 8786,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
}
}
}
]
}
}
}
]
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 8832,
"end": 8860,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 8832,
"end": 8859,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 8832,
"end": 8841,
"ctxt": 0
},
"value": "container",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8844,
"end": 8859,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8844,
"end": 8852,
"ctxt": 0
},
"value": "instType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8853,
"end": 8859,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 8884,
"end": 9114,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 8888,
"end": 8941,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 8888,
"end": 8910,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8888,
"end": 8896,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8897,
"end": 8910,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 8914,
"end": 8941,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 8914,
"end": 8932,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 8914,
"end": 8921,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 8922,
"end": 8932,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 8933,
"end": 8941,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 8943,
"end": 9114,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 9057,
"end": 9104,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9057,
"end": 9103,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9057,
"end": 9066,
"ctxt": 0
},
"value": "container",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 9069,
"end": 9103,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9069,
"end": 9096,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9069,
"end": 9087,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9069,
"end": 9076,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9077,
"end": 9087,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9088,
"end": 9096,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9097,
"end": 9103,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
}
},
{
"type": "IfStatement",
"span": {
"start": 9124,
"end": 12425,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 9128,
"end": 9230,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "BinaryExpression",
"span": {
"start": 9128,
"end": 9149,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 9128,
"end": 9141,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9128,
"end": 9136,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9137,
"end": 9141,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"right": {
"type": "NullLiteral",
"span": {
"start": 9145,
"end": 9149,
"ctxt": 0
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 9153,
"end": 9230,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 9153,
"end": 9160,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 9161,
"end": 9187,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9161,
"end": 9181,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9161,
"end": 9174,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9161,
"end": 9169,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9170,
"end": 9174,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9175,
"end": 9181,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9182,
"end": 9187,
"ctxt": 0
},
"value": "flags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 9189,
"end": 9229,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9189,
"end": 9200,
"ctxt": 0
},
"value": "SymbolFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9201,
"end": 9229,
"ctxt": 0
},
"value": "TypeSetDuringScopeAssignment",
"optional": false
}
}
}
],
"typeArguments": null
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 9232,
"end": 12425,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 9246,
"end": 9384,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 9250,
"end": 9303,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 9250,
"end": 9272,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9250,
"end": 9268,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9250,
"end": 9257,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9258,
"end": 9268,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9269,
"end": 9272,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 9276,
"end": 9303,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9276,
"end": 9298,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9276,
"end": 9294,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9276,
"end": 9283,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9284,
"end": 9294,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9295,
"end": 9298,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9299,
"end": 9303,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 9305,
"end": 9384,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 9323,
"end": 9370,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 9323,
"end": 9369,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 9323,
"end": 9332,
"ctxt": 0
},
"value": "container",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 9335,
"end": 9369,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9335,
"end": 9362,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9335,
"end": 9357,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9335,
"end": 9353,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9335,
"end": 9342,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9343,
"end": 9353,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9354,
"end": 9357,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9358,
"end": 9362,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9363,
"end": 9369,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 9398,
"end": 9419,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9402,
"end": 9418,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9402,
"end": 9411,
"ctxt": 0
},
"value": "funcScope",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NullLiteral",
"span": {
"start": 9414,
"end": 9418,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 9432,
"end": 9480,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9436,
"end": 9479,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9436,
"end": 9444,
"ctxt": 0
},
"value": "outerFnc",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9444,
"end": 9454,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9446,
"end": 9454,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9446,
"end": 9454,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 9457,
"end": 9479,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9457,
"end": 9475,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9457,
"end": 9464,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9465,
"end": 9475,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9476,
"end": 9479,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 9493,
"end": 9556,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9497,
"end": 9555,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9497,
"end": 9505,
"ctxt": 0
},
"value": "nameText",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ConditionalExpression",
"span": {
"start": 9508,
"end": 9555,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 9508,
"end": 9521,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9508,
"end": 9516,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9517,
"end": 9521,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"consequent": {
"type": "MemberExpression",
"span": {
"start": 9524,
"end": 9548,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9524,
"end": 9537,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9524,
"end": 9532,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9533,
"end": 9537,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9538,
"end": 9548,
"ctxt": 0
},
"value": "actualText",
"optional": false
}
},
"alternate": {
"type": "NullLiteral",
"span": {
"start": 9551,
"end": 9555,
"ctxt": 0
}
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 9569,
"end": 9598,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 9573,
"end": 9597,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 9573,
"end": 9578,
"ctxt": 0
},
"value": "fgSym",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 9578,
"end": 9590,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 9580,
"end": 9590,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 9580,
"end": 9590,
"ctxt": 0
},
"value": "TypeSymbol",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "NullLiteral",
"span": {
"start": 9593,
"end": 9597,
"ctxt": 0
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 9612,
"end": 10864,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 9616,
"end": 9624,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 9626,
"end": 10323,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 9942,
"end": 10152,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 9946,
"end": 10010,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 9946,
"end": 9975,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 9946,
"end": 9967,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 9946,
"end": 9959,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9946,
"end": 9954,
"ctxt": 0
},
"value": "outerFnc",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9955,
"end": 9959,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 9960,
"end": 9967,
"ctxt": 0
},
"value": "members",
"optional": false
}
},
"right": {
"type": "NullLiteral",
"span": {
"start": 9971,
"end": 9975,
"ctxt": 0
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 9979,
"end": 10010,
"ctxt": 0
},
"object": {
"type": "CallExpression",
"span": {
"start": 9979,
"end": 9998,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 9979,
"end": 9996,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 9979,
"end": 9988,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 9989,
"end": 9996,
"ctxt": 0
},
"value": "getType",
"optional": false
}
},
"arguments": [],
"typeArguments": null
},
"property": {
"type": "Identifier",
"span": {
"start": 9999,
"end": 10010,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 10012,
"end": 10152,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 10034,
"end": 10134,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10034,
"end": 10133,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 10034,
"end": 10055,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10034,
"end": 10047,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10034,
"end": 10042,
"ctxt": 0
},
"value": "outerFnc",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10043,
"end": 10047,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10048,
"end": 10055,
"ctxt": 0
},
"value": "members",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10058,
"end": 10133,
"ctxt": 0
},
"object": {
"type": "ParenthesisExpression",
"span": {
"start": 10058,
"end": 10120,
"ctxt": 0
},
"expression": {
"type": "TsTypeAssertion",
"span": {
"start": 10059,
"end": 10119,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 10079,
"end": 10119,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10079,
"end": 10107,
"ctxt": 0
},
"object": {
"type": "ParenthesisExpression",
"span": {
"start": 10079,
"end": 10102,
"ctxt": 0
},
"expression": {
"type": "TsTypeAssertion",
"span": {
"start": 10080,
"end": 10101,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 10092,
"end": 10101,
"ctxt": 0
},
"value": "container",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10081,
"end": 10091,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10081,
"end": 10091,
"ctxt": 0
},
"value": "TypeSymbol",
"optional": false
},
"typeParams": null
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10103,
"end": 10107,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10108,
"end": 10119,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10060,
"end": 10078,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10060,
"end": 10078,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
},
"typeParams": null
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10121,
"end": 10133,
"ctxt": 0
},
"value": "valueMembers",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 10169,
"end": 10221,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10169,
"end": 10220,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 10169,
"end": 10178,
"ctxt": 0
},
"value": "funcScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10181,
"end": 10220,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10181,
"end": 10208,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10181,
"end": 10203,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10181,
"end": 10199,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10181,
"end": 10188,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10189,
"end": 10199,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10200,
"end": 10203,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10204,
"end": 10208,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10209,
"end": 10220,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 10238,
"end": 10309,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10238,
"end": 10308,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 10238,
"end": 10297,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10238,
"end": 10263,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10238,
"end": 10246,
"ctxt": 0
},
"value": "outerFnc",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10247,
"end": 10263,
"ctxt": 0
},
"value": "innerStaticFuncs",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 10263,
"end": 10297,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 10264,
"end": 10296,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10264,
"end": 10289,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10264,
"end": 10272,
"ctxt": 0
},
"value": "outerFnc",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10273,
"end": 10289,
"ctxt": 0
},
"value": "innerStaticFuncs",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10290,
"end": 10296,
"ctxt": 0
},
"value": "length",
"optional": false
}
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 10300,
"end": 10308,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 10341,
"end": 10864,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 10360,
"end": 10850,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 10364,
"end": 10643,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 10364,
"end": 10599,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 10364,
"end": 10532,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 10364,
"end": 10461,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 10364,
"end": 10420,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "UnaryExpression",
"span": {
"start": 10364,
"end": 10387,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 10365,
"end": 10387,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10365,
"end": 10373,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10374,
"end": 10387,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 10411,
"end": 10420,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10444,
"end": 10461,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10444,
"end": 10453,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10454,
"end": 10461,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
}
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 10485,
"end": 10532,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 10485,
"end": 10511,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10485,
"end": 10502,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10485,
"end": 10494,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10495,
"end": 10502,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10503,
"end": 10511,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10515,
"end": 10532,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10515,
"end": 10523,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10524,
"end": 10532,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10556,
"end": 10599,
"ctxt": 0
},
"object": {
"type": "ParenthesisExpression",
"span": {
"start": 10556,
"end": 10585,
"ctxt": 0
},
"expression": {
"type": "TsTypeAssertion",
"span": {
"start": 10557,
"end": 10584,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 10567,
"end": 10584,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10567,
"end": 10576,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10577,
"end": 10584,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 10558,
"end": 10566,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 10558,
"end": 10566,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10586,
"end": 10599,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "UnaryExpression",
"span": {
"start": 10623,
"end": 10643,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 10624,
"end": 10643,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 10624,
"end": 10641,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10624,
"end": 10632,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10633,
"end": 10641,
"ctxt": 0
},
"value": "isMethod",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 10645,
"end": 10751,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 10667,
"end": 10724,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10667,
"end": 10723,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 10667,
"end": 10676,
"ctxt": 0
},
"value": "funcScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10679,
"end": 10723,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10679,
"end": 10706,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10679,
"end": 10697,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10679,
"end": 10686,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10687,
"end": 10697,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10698,
"end": 10706,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10707,
"end": 10723,
"ctxt": 0
},
"value": "constructorScope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 10773,
"end": 10850,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 10795,
"end": 10832,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 10795,
"end": 10831,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 10795,
"end": 10804,
"ctxt": 0
},
"value": "funcScope",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "MemberExpression",
"span": {
"start": 10807,
"end": 10831,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 10807,
"end": 10825,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 10807,
"end": 10814,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 10815,
"end": 10825,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 10826,
"end": 10831,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
}
]
}
}
]
}
},
{
"type": "IfStatement",
"span": {
"start": 11154,
"end": 11561,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 11158,
"end": 11219,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 11158,
"end": 11193,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 11158,
"end": 11166,
"ctxt": 0
},
"value": "nameText",
"optional": false
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 11170,
"end": 11193,
"ctxt": 0
},
"operator": "!=",
"left": {
"type": "Identifier",
"span": {
"start": 11170,
"end": 11178,
"ctxt": 0
},
"value": "nameText",
"optional": false
},
"right": {
"type": "StringLiteral",
"span": {
"start": 11182,
"end": 11193,
"ctxt": 0
},
"value": "__missing",
"raw": "\"__missing\""
}
}
},
"right": {
"type": "UnaryExpression",
"span": {
"start": 11197,
"end": 11219,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 11198,
"end": 11219,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 11198,
"end": 11217,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11198,
"end": 11206,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11207,
"end": 11217,
"ctxt": 0
},
"value": "isAccessor",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 11221,
"end": 11561,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 11239,
"end": 11547,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 11243,
"end": 11251,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 11253,
"end": 11345,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 11275,
"end": 11327,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 11275,
"end": 11326,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 11275,
"end": 11280,
"ctxt": 0
},
"value": "fgSym",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "CallExpression",
"span": {
"start": 11283,
"end": 11326,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 11283,
"end": 11302,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11283,
"end": 11292,
"ctxt": 0
},
"value": "funcScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11293,
"end": 11302,
"ctxt": 0
},
"value": "findLocal",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11303,
"end": 11311,
"ctxt": 0
},
"value": "nameText",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 11313,
"end": 11318,
"ctxt": 0
},
"value": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 11320,
"end": 11325,
"ctxt": 0
},
"value": false
}
}
],
"typeArguments": null
}
}
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 11367,
"end": 11547,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 11477,
"end": 11529,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 11477,
"end": 11528,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 11477,
"end": 11482,
"ctxt": 0
},
"value": "fgSym",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "CallExpression",
"span": {
"start": 11485,
"end": 11528,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 11485,
"end": 11504,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11485,
"end": 11494,
"ctxt": 0
},
"value": "funcScope",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11495,
"end": 11504,
"ctxt": 0
},
"value": "findLocal",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11505,
"end": 11513,
"ctxt": 0
},
"value": "nameText",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 11515,
"end": 11520,
"ctxt": 0
},
"value": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 11522,
"end": 11527,
"ctxt": 0
},
"value": false
}
}
],
"typeArguments": null
}
}
}
]
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 11575,
"end": 11738,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 11575,
"end": 11737,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 11575,
"end": 11623,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 11575,
"end": 11599,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 11575,
"end": 11591,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11575,
"end": 11582,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11583,
"end": 11591,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 11592,
"end": 11599,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 11600,
"end": 11623,
"ctxt": 0
},
"value": "createFunctionSignature",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11624,
"end": 11632,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11634,
"end": 11643,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11705,
"end": 11714,
"ctxt": 0
},
"value": "funcScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 11716,
"end": 11721,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BinaryExpression",
"span": {
"start": 11723,
"end": 11736,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "Identifier",
"span": {
"start": 11723,
"end": 11728,
"ctxt": 0
},
"value": "fgSym",
"optional": false
},
"right": {
"type": "NullLiteral",
"span": {
"start": 11732,
"end": 11736,
"ctxt": 0
}
}
}
}
],
"typeArguments": null
}
},
{
"type": "IfStatement",
"span": {
"start": 11833,
"end": 12330,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 11837,
"end": 12110,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "BinaryExpression",
"span": {
"start": 11837,
"end": 12056,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 11837,
"end": 11953,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "BinaryExpression",
"span": {
"start": 11837,
"end": 11924,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "UnaryExpression",
"span": {
"start": 11837,
"end": 11861,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 11838,
"end": 11861,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11838,
"end": 11846,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11847,
"end": 11861,
"ctxt": 0
},
"value": "accessorSymbol",
"optional": false
}
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 11882,
"end": 11924,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 11883,
"end": 11923,
"ctxt": 0
},
"operator": "&",
"left": {
"type": "MemberExpression",
"span": {
"start": 11883,
"end": 11900,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11883,
"end": 11891,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11892,
"end": 11900,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 11903,
"end": 11923,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11903,
"end": 11911,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11912,
"end": 11923,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
}
},
"right": {
"type": "Identifier",
"span": {
"start": 11944,
"end": 11953,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 11974,
"end": 12056,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 11975,
"end": 12055,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 11975,
"end": 12030,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 11976,
"end": 12029,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 11976,
"end": 11982,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "Identifier",
"span": {
"start": 11977,
"end": 11982,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
"right": {
"type": "BinaryExpression",
"span": {
"start": 11986,
"end": 12029,
"ctxt": 0
},
"operator": "!=",
"left": {
"type": "MemberExpression",
"span": {
"start": 11986,
"end": 12008,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 11986,
"end": 11999,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 11986,
"end": 11991,
"ctxt": 0
},
"value": "fgSym",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 11992,
"end": 11999,
"ctxt": 0
},
"value": "declAST",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12000,
"end": 12008,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12012,
"end": 12029,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12012,
"end": 12020,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12021,
"end": 12029,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 12034,
"end": 12055,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12034,
"end": 12053,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12034,
"end": 12042,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12043,
"end": 12053,
"ctxt": 0
},
"value": "isAccessor",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
}
},
"right": {
"type": "ParenthesisExpression",
"span": {
"start": 12081,
"end": 12110,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 12082,
"end": 12109,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "Identifier",
"span": {
"start": 12082,
"end": 12087,
"ctxt": 0
},
"value": "fgSym",
"optional": false
},
"right": {
"type": "CallExpression",
"span": {
"start": 12091,
"end": 12109,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12091,
"end": 12107,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12091,
"end": 12096,
"ctxt": 0
},
"value": "fgSym",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12097,
"end": 12107,
"ctxt": 0
},
"value": "isAccessor",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 12125,
"end": 12330,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 12143,
"end": 12316,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 12143,
"end": 12315,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 12143,
"end": 12166,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12143,
"end": 12151,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12152,
"end": 12166,
"ctxt": 0
},
"value": "accessorSymbol",
"optional": false
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 12169,
"end": 12315,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12169,
"end": 12214,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12169,
"end": 12193,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12169,
"end": 12185,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12169,
"end": 12176,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12177,
"end": 12185,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12186,
"end": 12193,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12194,
"end": 12214,
"ctxt": 0
},
"value": "createAccessorSymbol",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 12215,
"end": 12223,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 12225,
"end": 12230,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "CallExpression",
"span": {
"start": 12232,
"end": 12251,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12232,
"end": 12249,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12232,
"end": 12241,
"ctxt": 0
},
"value": "container",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12242,
"end": 12249,
"ctxt": 0
},
"value": "getType",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
{
"spread": null,
"expression": {
"type": "ParenthesisExpression",
"span": {
"start": 12253,
"end": 12286,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 12254,
"end": 12285,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "CallExpression",
"span": {
"start": 12254,
"end": 12273,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 12254,
"end": 12271,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12254,
"end": 12262,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12263,
"end": 12271,
"ctxt": 0
},
"value": "isMethod",
"optional": false
}
},
"arguments": [],
"typeArguments": null
},
"right": {
"type": "Identifier",
"span": {
"start": 12277,
"end": 12285,
"ctxt": 0
},
"value": "isStatic",
"optional": false
}
}
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 12288,
"end": 12292,
"ctxt": 0
},
"value": true
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 12294,
"end": 12303,
"ctxt": 0
},
"value": "funcScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 12305,
"end": 12314,
"ctxt": 0
},
"value": "container",
"optional": false
}
}
],
"typeArguments": null
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 12344,
"end": 12415,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 12344,
"end": 12414,
"ctxt": 0
},
"operator": "|=",
"left": {
"type": "MemberExpression",
"span": {
"start": 12344,
"end": 12370,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12344,
"end": 12364,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12344,
"end": 12357,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12344,
"end": 12352,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12353,
"end": 12357,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12358,
"end": 12364,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12365,
"end": 12370,
"ctxt": 0
},
"value": "flags",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12374,
"end": 12414,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12374,
"end": 12385,
"ctxt": 0
},
"value": "SymbolFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12386,
"end": 12414,
"ctxt": 0
},
"value": "TypeSetDuringScopeAssignment",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "IfStatement",
"span": {
"start": 12495,
"end": 12596,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 12499,
"end": 12529,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 12499,
"end": 12512,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12499,
"end": 12507,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12508,
"end": 12512,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12516,
"end": 12529,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12516,
"end": 12524,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12525,
"end": 12529,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 12531,
"end": 12596,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 12545,
"end": 12586,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 12545,
"end": 12585,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 12545,
"end": 12562,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12545,
"end": 12558,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12545,
"end": 12553,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12554,
"end": 12558,
"ctxt": 0
},
"value": "name",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12559,
"end": 12562,
"ctxt": 0
},
"value": "sym",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12565,
"end": 12585,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 12565,
"end": 12578,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12565,
"end": 12573,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12574,
"end": 12578,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 12579,
"end": 12585,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 12783,
"end": 12818,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 12783,
"end": 12817,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 12783,
"end": 12801,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12783,
"end": 12791,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12792,
"end": 12801,
"ctxt": 0
},
"value": "scopeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 12804,
"end": 12817,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12804,
"end": 12812,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12813,
"end": 12817,
"ctxt": 0
},
"value": "type",
"optional": false
}
}
}
},
{
"type": "IfStatement",
"span": {
"start": 12877,
"end": 12933,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 12881,
"end": 12900,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 12881,
"end": 12889,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 12890,
"end": 12900,
"ctxt": 0
},
"value": "isOverload",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 12902,
"end": 12933,
"ctxt": 0
},
"stmts": [
{
"type": "ReturnStatement",
"span": {
"start": 12916,
"end": 12923,
"ctxt": 0
},
"argument": null
}
]
},
"alternate": null
},
{
"type": "VariableDeclaration",
"span": {
"start": 12943,
"end": 12981,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 12947,
"end": 12980,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12947,
"end": 12956,
"ctxt": 0
},
"value": "funcTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 12959,
"end": 12980,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 12963,
"end": 12978,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 12990,
"end": 13085,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 12994,
"end": 13084,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 12994,
"end": 13005,
"ctxt": 0
},
"value": "funcMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13008,
"end": 13084,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13012,
"end": 13025,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13026,
"end": 13083,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13030,
"end": 13049,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13050,
"end": 13059,
"ctxt": 0
},
"value": "funcTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13061,
"end": 13082,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13065,
"end": 13080,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13094,
"end": 13139,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13098,
"end": 13138,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13098,
"end": 13114,
"ctxt": 0
},
"value": "ambientFuncTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13117,
"end": 13138,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13121,
"end": 13136,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13148,
"end": 13257,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13152,
"end": 13256,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13152,
"end": 13170,
"ctxt": 0
},
"value": "ambientFuncMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13173,
"end": 13256,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13177,
"end": 13190,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13191,
"end": 13255,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13195,
"end": 13214,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13215,
"end": 13231,
"ctxt": 0
},
"value": "ambientFuncTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13233,
"end": 13254,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13237,
"end": 13252,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13266,
"end": 13310,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13270,
"end": 13309,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13270,
"end": 13285,
"ctxt": 0
},
"value": "funcStaticTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13288,
"end": 13309,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13292,
"end": 13307,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13319,
"end": 13426,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13323,
"end": 13425,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13323,
"end": 13340,
"ctxt": 0
},
"value": "funcStaticMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13343,
"end": 13425,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13347,
"end": 13360,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13361,
"end": 13424,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13365,
"end": 13384,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13385,
"end": 13400,
"ctxt": 0
},
"value": "funcStaticTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13402,
"end": 13423,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13406,
"end": 13421,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13435,
"end": 13486,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13439,
"end": 13485,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13439,
"end": 13461,
"ctxt": 0
},
"value": "ambientFuncStaticTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13464,
"end": 13485,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13468,
"end": 13483,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13495,
"end": 13616,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13499,
"end": 13615,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13499,
"end": 13523,
"ctxt": 0
},
"value": "ambientFuncStaticMembers",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13526,
"end": 13615,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13530,
"end": 13543,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13544,
"end": 13614,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13548,
"end": 13567,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13568,
"end": 13590,
"ctxt": 0
},
"value": "ambientFuncStaticTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 13592,
"end": 13613,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13596,
"end": 13611,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 13723,
"end": 13792,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 13723,
"end": 13791,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 13723,
"end": 13741,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13723,
"end": 13731,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 13732,
"end": 13741,
"ctxt": 0
},
"value": "unitIndex",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 13744,
"end": 13791,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 13744,
"end": 13781,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 13744,
"end": 13768,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 13744,
"end": 13760,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 13744,
"end": 13751,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 13752,
"end": 13760,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 13761,
"end": 13768,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 13769,
"end": 13781,
"ctxt": 0
},
"value": "locationInfo",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 13782,
"end": 13791,
"ctxt": 0
},
"value": "unitIndex",
"optional": false
}
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 13802,
"end": 13912,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13806,
"end": 13911,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13806,
"end": 13812,
"ctxt": 0
},
"value": "locals",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13815,
"end": 13911,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13819,
"end": 13837,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13838,
"end": 13849,
"ctxt": 0
},
"value": "funcMembers",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13851,
"end": 13869,
"ctxt": 0
},
"value": "ambientFuncMembers",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 13871,
"end": 13875,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 13877,
"end": 13881,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13883,
"end": 13894,
"ctxt": 0
},
"value": "parentScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13896,
"end": 13910,
"ctxt": 0
},
"value": "localContainer",
"optional": false
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 13921,
"end": 14034,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 13925,
"end": 14033,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 13925,
"end": 13932,
"ctxt": 0
},
"value": "statics",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 13935,
"end": 14033,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 13939,
"end": 13957,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13958,
"end": 13975,
"ctxt": 0
},
"value": "funcStaticMembers",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 13977,
"end": 14001,
"ctxt": 0
},
"value": "ambientFuncStaticMembers",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 14003,
"end": 14007,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 14009,
"end": 14013,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 14015,
"end": 14026,
"ctxt": 0
},
"value": "parentScope",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 14028,
"end": 14032,
"ctxt": 0
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 14044,
"end": 14181,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 14048,
"end": 14101,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 14048,
"end": 14070,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14048,
"end": 14056,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14057,
"end": 14070,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 14074,
"end": 14101,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14074,
"end": 14092,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14074,
"end": 14081,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14082,
"end": 14092,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14093,
"end": 14101,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 14103,
"end": 14181,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 14117,
"end": 14171,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 14117,
"end": 14170,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 14117,
"end": 14161,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14117,
"end": 14144,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 14117,
"end": 14135,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14117,
"end": 14124,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14125,
"end": 14135,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14136,
"end": 14144,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 14145,
"end": 14161,
"ctxt": 0
},
"value": "constructorScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 14164,
"end": 14170,
"ctxt": 0
},
"value": "locals",
"optional": false
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 14810,
"end": 14839,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 14810,
"end": 14838,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 14810,
"end": 14826,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14810,
"end": 14818,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14819,
"end": 14826,
"ctxt": 0
},
"value": "symbols",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 14829,
"end": 14838,
"ctxt": 0
},
"value": "funcTable",
"optional": false
}
}
},
{
"type": "IfStatement",
"span": {
"start": 14849,
"end": 16501,
"ctxt": 0
},
"test": {
"type": "UnaryExpression",
"span": {
"start": 14853,
"end": 14876,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "CallExpression",
"span": {
"start": 14854,
"end": 14876,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 14854,
"end": 14874,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14854,
"end": 14862,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14863,
"end": 14874,
"ctxt": 0
},
"value": "isSpecialFn",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 14878,
"end": 16501,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 14892,
"end": 14918,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 14896,
"end": 14917,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 14896,
"end": 14901,
"ctxt": 0
},
"value": "group",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 14904,
"end": 14917,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14904,
"end": 14912,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14913,
"end": 14917,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 14931,
"end": 14966,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 14935,
"end": 14965,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 14935,
"end": 14944,
"ctxt": 0
},
"value": "signature",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 14947,
"end": 14965,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14947,
"end": 14955,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14956,
"end": 14965,
"ctxt": 0
},
"value": "signature",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 14980,
"end": 15216,
"ctxt": 0
},
"test": {
"type": "UnaryExpression",
"span": {
"start": 14984,
"end": 15007,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 14985,
"end": 15007,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 14985,
"end": 14993,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 14994,
"end": 15007,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 15009,
"end": 15216,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 15027,
"end": 15057,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15027,
"end": 15056,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15027,
"end": 15047,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15027,
"end": 15032,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15033,
"end": 15047,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 15050,
"end": 15056,
"ctxt": 0
},
"value": "locals",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15074,
"end": 15106,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15074,
"end": 15105,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15074,
"end": 15090,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15074,
"end": 15080,
"ctxt": 0
},
"value": "locals",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15081,
"end": 15090,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15093,
"end": 15105,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15093,
"end": 15098,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15099,
"end": 15105,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15124,
"end": 15152,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15124,
"end": 15151,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15124,
"end": 15141,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15124,
"end": 15129,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15130,
"end": 15141,
"ctxt": 0
},
"value": "memberScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 15144,
"end": 15151,
"ctxt": 0
},
"value": "statics",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15169,
"end": 15202,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15169,
"end": 15201,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15169,
"end": 15186,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15169,
"end": 15176,
"ctxt": 0
},
"value": "statics",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15177,
"end": 15186,
"ctxt": 0
},
"value": "container",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15189,
"end": 15201,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15189,
"end": 15194,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15195,
"end": 15201,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 15229,
"end": 15276,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15229,
"end": 15275,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15229,
"end": 15250,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15229,
"end": 15237,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15238,
"end": 15250,
"ctxt": 0
},
"value": "enclosingFnc",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15253,
"end": 15275,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15253,
"end": 15271,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15253,
"end": 15260,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15261,
"end": 15271,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15272,
"end": 15275,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15289,
"end": 15381,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 15289,
"end": 15380,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 15289,
"end": 15308,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15289,
"end": 15294,
"ctxt": 0
},
"value": "group",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15295,
"end": 15308,
"ctxt": 0
},
"value": "enclosingType",
"optional": false
}
},
"right": {
"type": "ConditionalExpression",
"span": {
"start": 15311,
"end": 15380,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 15311,
"end": 15319,
"ctxt": 0
},
"value": "isStatic",
"optional": false
},
"consequent": {
"type": "MemberExpression",
"span": {
"start": 15322,
"end": 15350,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15322,
"end": 15340,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15322,
"end": 15329,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15330,
"end": 15340,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15341,
"end": 15350,
"ctxt": 0
},
"value": "classType",
"optional": false
}
},
"alternate": {
"type": "MemberExpression",
"span": {
"start": 15353,
"end": 15380,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15353,
"end": 15371,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15353,
"end": 15360,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15361,
"end": 15371,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15372,
"end": 15380,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
}
}
}
},
{
"type": "VariableDeclaration",
"span": {
"start": 15440,
"end": 15480,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 15444,
"end": 15479,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 15444,
"end": 15449,
"ctxt": 0
},
"value": "fgSym",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 15452,
"end": 15479,
"ctxt": 0
},
"expression": {
"type": "MemberExpression",
"span": {
"start": 15464,
"end": 15479,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15464,
"end": 15472,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15464,
"end": 15467,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15468,
"end": 15472,
"ctxt": 0
},
"value": "type",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15473,
"end": 15479,
"ctxt": 0
},
"value": "symbol",
"optional": false
}
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 15453,
"end": 15463,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 15453,
"end": 15463,
"ctxt": 0
},
"value": "TypeSymbol",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 15493,
"end": 15906,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 15497,
"end": 15573,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 15497,
"end": 15556,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 15498,
"end": 15555,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 15498,
"end": 15538,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 15499,
"end": 15537,
"ctxt": 0
},
"operator": "&",
"left": {
"type": "MemberExpression",
"span": {
"start": 15499,
"end": 15516,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15499,
"end": 15507,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15508,
"end": 15516,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15519,
"end": 15537,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15519,
"end": 15527,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15528,
"end": 15537,
"ctxt": 0
},
"value": "Signature",
"optional": false
}
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15542,
"end": 15555,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15542,
"end": 15550,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15551,
"end": 15555,
"ctxt": 0
},
"value": "None",
"optional": false
}
}
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 15560,
"end": 15573,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15560,
"end": 15568,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15569,
"end": 15573,
"ctxt": 0
},
"value": "vars",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 15575,
"end": 15906,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 15593,
"end": 15729,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 15593,
"end": 15728,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 15593,
"end": 15628,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15593,
"end": 15609,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15593,
"end": 15600,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15601,
"end": 15609,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15610,
"end": 15628,
"ctxt": 0
},
"value": "addLocalsFromScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15629,
"end": 15635,
"ctxt": 0
},
"value": "locals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15637,
"end": 15642,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 15644,
"end": 15657,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15644,
"end": 15652,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15653,
"end": 15657,
"ctxt": 0
},
"value": "vars",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15711,
"end": 15720,
"ctxt": 0
},
"value": "funcTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 15722,
"end": 15727,
"ctxt": 0
},
"value": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 15746,
"end": 15892,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 15746,
"end": 15891,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 15746,
"end": 15781,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15746,
"end": 15762,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15746,
"end": 15753,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15754,
"end": 15762,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15763,
"end": 15781,
"ctxt": 0
},
"value": "addLocalsFromScope",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15782,
"end": 15789,
"ctxt": 0
},
"value": "statics",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15791,
"end": 15796,
"ctxt": 0
},
"value": "fgSym",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 15798,
"end": 15814,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15798,
"end": 15806,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15807,
"end": 15814,
"ctxt": 0
},
"value": "statics",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 15868,
"end": 15883,
"ctxt": 0
},
"value": "funcStaticTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 15885,
"end": 15890,
"ctxt": 0
},
"value": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
},
{
"type": "IfStatement",
"span": {
"start": 15919,
"end": 16327,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 15923,
"end": 15943,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15923,
"end": 15932,
"ctxt": 0
},
"value": "signature",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15933,
"end": 15943,
"ctxt": 0
},
"value": "parameters",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 15945,
"end": 16327,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 15963,
"end": 16001,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 15967,
"end": 16000,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 15967,
"end": 15970,
"ctxt": 0
},
"value": "len",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "MemberExpression",
"span": {
"start": 15973,
"end": 16000,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 15973,
"end": 15993,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 15973,
"end": 15982,
"ctxt": 0
},
"value": "signature",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 15983,
"end": 15993,
"ctxt": 0
},
"value": "parameters",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 15994,
"end": 16000,
"ctxt": 0
},
"value": "length",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "ForStatement",
"span": {
"start": 16018,
"end": 16313,
"ctxt": 0
},
"init": {
"type": "VariableDeclaration",
"span": {
"start": 16023,
"end": 16032,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16027,
"end": 16032,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16027,
"end": 16028,
"ctxt": 0
},
"value": "i",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NumericLiteral",
"span": {
"start": 16031,
"end": 16032,
"ctxt": 0
},
"value": 0.0
},
"definite": false
}
]
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 16034,
"end": 16041,
"ctxt": 0
},
"operator": "<",
"left": {
"type": "Identifier",
"span": {
"start": 16034,
"end": 16035,
"ctxt": 0
},
"value": "i",
"optional": false
},
"right": {
"type": "Identifier",
"span": {
"start": 16038,
"end": 16041,
"ctxt": 0
},
"value": "len",
"optional": false
}
},
"update": {
"type": "UpdateExpression",
"span": {
"start": 16043,
"end": 16046,
"ctxt": 0
},
"operator": "++",
"prefix": false,
"argument": {
"type": "Identifier",
"span": {
"start": 16043,
"end": 16044,
"ctxt": 0
},
"value": "i",
"optional": false
}
},
"body": {
"type": "BlockStatement",
"span": {
"start": 16048,
"end": 16313,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16070,
"end": 16126,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16074,
"end": 16125,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16074,
"end": 16082,
"ctxt": 0
},
"value": "paramSym",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16082,
"end": 16099,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16084,
"end": 16099,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16084,
"end": 16099,
"ctxt": 0
},
"value": "ParameterSymbol",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 16102,
"end": 16125,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16102,
"end": 16122,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16102,
"end": 16111,
"ctxt": 0
},
"value": "signature",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16112,
"end": 16122,
"ctxt": 0
},
"value": "parameters",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 16122,
"end": 16125,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 16123,
"end": 16124,
"ctxt": 0
},
"value": "i",
"optional": false
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 16147,
"end": 16295,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 16147,
"end": 16294,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 16147,
"end": 16187,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16147,
"end": 16171,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16147,
"end": 16163,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16147,
"end": 16154,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16155,
"end": 16163,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16164,
"end": 16171,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16172,
"end": 16187,
"ctxt": 0
},
"value": "resolveTypeLink",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16188,
"end": 16194,
"ctxt": 0
},
"value": "locals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16260,
"end": 16287,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16260,
"end": 16278,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16260,
"end": 16268,
"ctxt": 0
},
"value": "paramSym",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16269,
"end": 16278,
"ctxt": 0
},
"value": "parameter",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16279,
"end": 16287,
"ctxt": 0
},
"value": "typeLink",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "BooleanLiteral",
"span": {
"start": 16289,
"end": 16293,
"ctxt": 0
},
"value": true
}
}
],
"typeArguments": null
}
}
]
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 16340,
"end": 16491,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 16340,
"end": 16490,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 16340,
"end": 16380,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16340,
"end": 16364,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16340,
"end": 16356,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16340,
"end": 16347,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16348,
"end": 16356,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16357,
"end": 16364,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16365,
"end": 16380,
"ctxt": 0
},
"value": "resolveTypeLink",
"optional": false
}
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16381,
"end": 16387,
"ctxt": 0
},
"value": "locals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16389,
"end": 16409,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16389,
"end": 16398,
"ctxt": 0
},
"value": "signature",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16399,
"end": 16409,
"ctxt": 0
},
"value": "returnType",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "CallExpression",
"span": {
"start": 16467,
"end": 16489,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 16467,
"end": 16487,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16467,
"end": 16475,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16476,
"end": 16487,
"ctxt": 0
},
"value": "isSignature",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
},
{
"type": "IfStatement",
"span": {
"start": 16511,
"end": 16817,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 16515,
"end": 16590,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 16515,
"end": 16538,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 16516,
"end": 16538,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16516,
"end": 16524,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16525,
"end": 16538,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 16542,
"end": 16590,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 16542,
"end": 16549,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16550,
"end": 16567,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16550,
"end": 16558,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16559,
"end": 16567,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16569,
"end": 16589,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16569,
"end": 16577,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16578,
"end": 16589,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 16592,
"end": 16817,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16606,
"end": 16735,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16610,
"end": 16734,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16610,
"end": 16618,
"ctxt": 0
},
"value": "thisType",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "ConditionalExpression",
"span": {
"start": 16621,
"end": 16734,
"ctxt": 0
},
"test": {
"type": "ParenthesisExpression",
"span": {
"start": 16621,
"end": 16697,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 16622,
"end": 16696,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "MemberExpression",
"span": {
"start": 16622,
"end": 16644,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16622,
"end": 16630,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16631,
"end": 16644,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 16648,
"end": 16696,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 16648,
"end": 16655,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16656,
"end": 16673,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16656,
"end": 16664,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16665,
"end": 16673,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 16675,
"end": 16695,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16675,
"end": 16683,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16684,
"end": 16695,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
"consequent": {
"type": "MemberExpression",
"span": {
"start": 16700,
"end": 16727,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 16700,
"end": 16718,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16700,
"end": 16707,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16708,
"end": 16718,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 16719,
"end": 16727,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
"alternate": {
"type": "NullLiteral",
"span": {
"start": 16730,
"end": 16734,
"ctxt": 0
}
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 16748,
"end": 16807,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 16748,
"end": 16806,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 16748,
"end": 16763,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16764,
"end": 16770,
"ctxt": 0
},
"value": "locals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16772,
"end": 16779,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16781,
"end": 16789,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 16791,
"end": 16795,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 16797,
"end": 16805,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 16829,
"end": 17570,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 16845,
"end": 16865,
"ctxt": 0
},
"value": "preAssignCatchScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 16866,
"end": 16874,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16866,
"end": 16874,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16869,
"end": 16874,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16871,
"end": 16874,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16871,
"end": 16874,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 16876,
"end": 16903,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 16876,
"end": 16903,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 16883,
"end": 16903,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16885,
"end": 16903,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16885,
"end": 16903,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 16836,
"end": 17570,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 16905,
"end": 17570,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16915,
"end": 16943,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16919,
"end": 16942,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16919,
"end": 16929,
"ctxt": 0
},
"value": "catchBlock",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 16932,
"end": 16942,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 16939,
"end": 16942,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 16933,
"end": 16938,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 16933,
"end": 16938,
"ctxt": 0
},
"value": "Catch",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 16952,
"end": 17564,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 16956,
"end": 16972,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 16956,
"end": 16966,
"ctxt": 0
},
"value": "catchBlock",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 16967,
"end": 16972,
"ctxt": 0
},
"value": "param",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 16974,
"end": 17564,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 16988,
"end": 17094,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 16992,
"end": 17093,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 16992,
"end": 17002,
"ctxt": 0
},
"value": "catchTable",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 17005,
"end": 17093,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17009,
"end": 17022,
"ctxt": 0
},
"value": "ScopedMembers",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 17023,
"end": 17092,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17027,
"end": 17046,
"ctxt": 0
},
"value": "DualStringHashTable",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 17047,
"end": 17068,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17051,
"end": 17066,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
},
{
"spread": null,
"expression": {
"type": "NewExpression",
"span": {
"start": 17070,
"end": 17091,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17074,
"end": 17089,
"ctxt": 0
},
"value": "StringHashTable",
"optional": false
},
"arguments": [],
"typeArguments": null
}
}
],
"typeArguments": null
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 17183,
"end": 17367,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17187,
"end": 17366,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17187,
"end": 17198,
"ctxt": 0
},
"value": "catchLocals",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "NewExpression",
"span": {
"start": 17201,
"end": 17366,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17205,
"end": 17223,
"ctxt": 0
},
"value": "SymbolScopeBuilder",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 17224,
"end": 17234,
"ctxt": 0
},
"value": "catchTable",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 17236,
"end": 17240,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 17242,
"end": 17246,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "NullLiteral",
"span": {
"start": 17248,
"end": 17252,
"ctxt": 0
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17254,
"end": 17278,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17254,
"end": 17272,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17254,
"end": 17261,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17262,
"end": 17272,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17273,
"end": 17278,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17331,
"end": 17365,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17331,
"end": 17355,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17331,
"end": 17349,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17331,
"end": 17338,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17339,
"end": 17349,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17350,
"end": 17355,
"ctxt": 0
},
"value": "scope",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17356,
"end": 17365,
"ctxt": 0
},
"value": "container",
"optional": false
}
}
}
],
"typeArguments": null
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 17380,
"end": 17420,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 17380,
"end": 17419,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 17380,
"end": 17405,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17380,
"end": 17390,
"ctxt": 0
},
"value": "catchBlock",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17391,
"end": 17405,
"ctxt": 0
},
"value": "containedScope",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 17408,
"end": 17419,
"ctxt": 0
},
"value": "catchLocals",
"optional": false
}
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 17433,
"end": 17554,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 17433,
"end": 17553,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 17433,
"end": 17448,
"ctxt": 0
},
"value": "pushAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 17449,
"end": 17460,
"ctxt": 0
},
"value": "catchLocals",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 17462,
"end": 17469,
"ctxt": 0
},
"value": "context",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17471,
"end": 17498,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17471,
"end": 17489,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17471,
"end": 17478,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17479,
"end": 17489,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17490,
"end": 17498,
"ctxt": 0
},
"value": "thisType",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17500,
"end": 17528,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17500,
"end": 17518,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17500,
"end": 17507,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17508,
"end": 17518,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17519,
"end": 17528,
"ctxt": 0
},
"value": "classType",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 17530,
"end": 17552,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17530,
"end": 17548,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17530,
"end": 17537,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17538,
"end": 17548,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17549,
"end": 17552,
"ctxt": 0
},
"value": "fnc",
"optional": false
}
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 17576,
"end": 18866,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 17592,
"end": 17607,
"ctxt": 0
},
"value": "preAssignScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 17608,
"end": 17616,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17608,
"end": 17616,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17611,
"end": 17616,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17613,
"end": 17616,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17613,
"end": 17616,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 17618,
"end": 17629,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17618,
"end": 17629,
"ctxt": 0
},
"value": "parent",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17624,
"end": 17629,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17626,
"end": 17629,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17626,
"end": 17629,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 17631,
"end": 17649,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 17631,
"end": 17649,
"ctxt": 0
},
"value": "walker",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17637,
"end": 17649,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17639,
"end": 17649,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17639,
"end": 17649,
"ctxt": 0
},
"value": "IAstWalker",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 17583,
"end": 18866,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 17651,
"end": 18866,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 17661,
"end": 17707,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17665,
"end": 17706,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17665,
"end": 17672,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 17672,
"end": 17691,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17673,
"end": 17691,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17673,
"end": 17691,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 17694,
"end": 17706,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17694,
"end": 17700,
"ctxt": 0
},
"value": "walker",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17701,
"end": 17706,
"ctxt": 0
},
"value": "state",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 17716,
"end": 17730,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17720,
"end": 17729,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17720,
"end": 17722,
"ctxt": 0
},
"value": "go",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BooleanLiteral",
"span": {
"start": 17725,
"end": 17729,
"ctxt": 0
},
"value": true
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 17740,
"end": 18800,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 17744,
"end": 17747,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 17749,
"end": 18800,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 17763,
"end": 18790,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 17767,
"end": 17796,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 17767,
"end": 17779,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17767,
"end": 17770,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17771,
"end": 17779,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 17783,
"end": 17796,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17783,
"end": 17791,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17792,
"end": 17796,
"ctxt": 0
},
"value": "List",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 17798,
"end": 17918,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 17816,
"end": 17840,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 17820,
"end": 17839,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 17820,
"end": 17824,
"ctxt": 0
},
"value": "list",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 17827,
"end": 17839,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 17836,
"end": 17839,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 17828,
"end": 17835,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 17828,
"end": 17835,
"ctxt": 0
},
"value": "ASTList",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 17857,
"end": 17904,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 17857,
"end": 17903,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 17857,
"end": 17876,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17857,
"end": 17861,
"ctxt": 0
},
"value": "list",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17862,
"end": 17876,
"ctxt": 0
},
"value": "enclosingScope",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 17879,
"end": 17903,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 17879,
"end": 17897,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17879,
"end": 17886,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17887,
"end": 17897,
"ctxt": 0
},
"value": "scopeChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 17898,
"end": 17903,
"ctxt": 0
},
"value": "scope",
"optional": false
}
}
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 17936,
"end": 18790,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 17940,
"end": 17982,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 17940,
"end": 17952,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17940,
"end": 17943,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17944,
"end": 17952,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 17956,
"end": 17982,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 17956,
"end": 17964,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 17965,
"end": 17982,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 17984,
"end": 18052,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18002,
"end": 18038,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18002,
"end": 18037,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18002,
"end": 18023,
"ctxt": 0
},
"value": "preAssignModuleScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18024,
"end": 18027,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18029,
"end": 18036,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18070,
"end": 18790,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18074,
"end": 18115,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18074,
"end": 18086,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18074,
"end": 18077,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18078,
"end": 18086,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18090,
"end": 18115,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18090,
"end": 18098,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18099,
"end": 18115,
"ctxt": 0
},
"value": "ClassDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18117,
"end": 18184,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18135,
"end": 18170,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18135,
"end": 18169,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18135,
"end": 18155,
"ctxt": 0
},
"value": "preAssignClassScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18156,
"end": 18159,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18161,
"end": 18168,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18202,
"end": 18790,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18206,
"end": 18251,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18206,
"end": 18218,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18206,
"end": 18209,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18210,
"end": 18218,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18222,
"end": 18251,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18222,
"end": 18230,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18231,
"end": 18251,
"ctxt": 0
},
"value": "InterfaceDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18253,
"end": 18324,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18271,
"end": 18310,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18271,
"end": 18309,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18271,
"end": 18295,
"ctxt": 0
},
"value": "preAssignInterfaceScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18296,
"end": 18299,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18301,
"end": 18308,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18342,
"end": 18790,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18346,
"end": 18375,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18346,
"end": 18358,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18346,
"end": 18349,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18350,
"end": 18358,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18362,
"end": 18375,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18362,
"end": 18370,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18371,
"end": 18375,
"ctxt": 0
},
"value": "With",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18377,
"end": 18443,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18395,
"end": 18429,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18395,
"end": 18428,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18395,
"end": 18414,
"ctxt": 0
},
"value": "preAssignWithScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18415,
"end": 18418,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18420,
"end": 18427,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18461,
"end": 18790,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18465,
"end": 18498,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18465,
"end": 18477,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18465,
"end": 18468,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18469,
"end": 18477,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18481,
"end": 18498,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18481,
"end": 18489,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18490,
"end": 18498,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18500,
"end": 18570,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18518,
"end": 18556,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18518,
"end": 18555,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18518,
"end": 18541,
"ctxt": 0
},
"value": "preAssignFuncDeclScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18542,
"end": 18545,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18547,
"end": 18554,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18588,
"end": 18790,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18592,
"end": 18622,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18592,
"end": 18604,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18592,
"end": 18595,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18596,
"end": 18604,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18608,
"end": 18622,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18608,
"end": 18616,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18617,
"end": 18622,
"ctxt": 0
},
"value": "Catch",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18624,
"end": 18691,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18642,
"end": 18677,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 18642,
"end": 18676,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 18642,
"end": 18662,
"ctxt": 0
},
"value": "preAssignCatchScopes",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18663,
"end": 18666,
"ctxt": 0
},
"value": "ast",
"optional": false
}
},
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 18668,
"end": 18675,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 18709,
"end": 18790,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 18713,
"end": 18745,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 18713,
"end": 18725,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18713,
"end": 18716,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18717,
"end": 18725,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 18729,
"end": 18745,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18729,
"end": 18737,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18738,
"end": 18745,
"ctxt": 0
},
"value": "TypeRef",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 18747,
"end": 18790,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 18765,
"end": 18776,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 18765,
"end": 18775,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 18765,
"end": 18767,
"ctxt": 0
},
"value": "go",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "BooleanLiteral",
"span": {
"start": 18770,
"end": 18775,
"ctxt": 0
},
"value": false
}
}
}
]
},
"alternate": null
}
}
}
}
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 18809,
"end": 18840,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 18809,
"end": 18839,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 18809,
"end": 18834,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 18809,
"end": 18823,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18809,
"end": 18815,
"ctxt": 0
},
"value": "walker",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18816,
"end": 18823,
"ctxt": 0
},
"value": "options",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 18824,
"end": 18834,
"ctxt": 0
},
"value": "goChildren",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 18837,
"end": 18839,
"ctxt": 0
},
"value": "go",
"optional": false
}
}
},
{
"type": "ReturnStatement",
"span": {
"start": 18849,
"end": 18860,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 18856,
"end": 18859,
"ctxt": 0
},
"value": "ast",
"optional": false
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
},
{
"type": "ExportDeclaration",
"span": {
"start": 18872,
"end": 20473,
"ctxt": 0
},
"declaration": {
"type": "FunctionDeclaration",
"identifier": {
"type": "Identifier",
"span": {
"start": 18888,
"end": 18904,
"ctxt": 0
},
"value": "postAssignScopes",
"optional": false
},
"declare": false,
"params": [
{
"type": "Parameter",
"span": {
"start": 18905,
"end": 18913,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 18905,
"end": 18913,
"ctxt": 0
},
"value": "ast",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 18908,
"end": 18913,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 18910,
"end": 18913,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 18910,
"end": 18913,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 18915,
"end": 18926,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 18915,
"end": 18926,
"ctxt": 0
},
"value": "parent",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 18921,
"end": 18926,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 18923,
"end": 18926,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 18923,
"end": 18926,
"ctxt": 0
},
"value": "AST",
"optional": false
},
"typeParams": null
}
}
}
},
{
"type": "Parameter",
"span": {
"start": 18928,
"end": 18946,
"ctxt": 0
},
"decorators": [],
"pat": {
"type": "Identifier",
"span": {
"start": 18928,
"end": 18946,
"ctxt": 0
},
"value": "walker",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 18934,
"end": 18946,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 18936,
"end": 18946,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 18936,
"end": 18946,
"ctxt": 0
},
"value": "IAstWalker",
"optional": false
},
"typeParams": null
}
}
}
}
],
"decorators": [],
"span": {
"start": 18879,
"end": 20473,
"ctxt": 0
},
"body": {
"type": "BlockStatement",
"span": {
"start": 18948,
"end": 20473,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 18958,
"end": 19004,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 18962,
"end": 19003,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 18962,
"end": 18969,
"ctxt": 0
},
"value": "context",
"optional": false,
"typeAnnotation": {
"type": "TsTypeAnnotation",
"span": {
"start": 18969,
"end": 18988,
"ctxt": 0
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 18970,
"end": 18988,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 18970,
"end": 18988,
"ctxt": 0
},
"value": "AssignScopeContext",
"optional": false
},
"typeParams": null
}
}
},
"init": {
"type": "MemberExpression",
"span": {
"start": 18991,
"end": 19003,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 18991,
"end": 18997,
"ctxt": 0
},
"value": "walker",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 18998,
"end": 19003,
"ctxt": 0
},
"value": "state",
"optional": false
}
},
"definite": false
}
]
},
{
"type": "VariableDeclaration",
"span": {
"start": 19013,
"end": 19027,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 19017,
"end": 19026,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 19017,
"end": 19019,
"ctxt": 0
},
"value": "go",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "BooleanLiteral",
"span": {
"start": 19022,
"end": 19026,
"ctxt": 0
},
"value": true
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 19036,
"end": 20407,
"ctxt": 0
},
"test": {
"type": "Identifier",
"span": {
"start": 19040,
"end": 19043,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19045,
"end": 20407,
"ctxt": 0
},
"stmts": [
{
"type": "IfStatement",
"span": {
"start": 19059,
"end": 20397,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19063,
"end": 19105,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19063,
"end": 19075,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19063,
"end": 19066,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19067,
"end": 19075,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19079,
"end": 19105,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19079,
"end": 19087,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19088,
"end": 19105,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19107,
"end": 19458,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 19125,
"end": 19166,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 19129,
"end": 19165,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 19129,
"end": 19140,
"ctxt": 0
},
"value": "prevModDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 19143,
"end": 19165,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 19162,
"end": 19165,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 19144,
"end": 19161,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 19144,
"end": 19161,
"ctxt": 0
},
"value": "ModuleDeclaration",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "ExpressionStatement",
"span": {
"start": 19184,
"end": 19208,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19184,
"end": 19207,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19184,
"end": 19198,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 19199,
"end": 19206,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
},
{
"type": "ExpressionStatement",
"span": {
"start": 19226,
"end": 19253,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19226,
"end": 19252,
"ctxt": 0
},
"callee": {
"type": "MemberExpression",
"span": {
"start": 19226,
"end": 19250,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19226,
"end": 19246,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19226,
"end": 19233,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19234,
"end": 19246,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19247,
"end": 19250,
"ctxt": 0
},
"value": "pop",
"optional": false
}
},
"arguments": [],
"typeArguments": null
}
},
{
"type": "IfStatement",
"span": {
"start": 19270,
"end": 19444,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19274,
"end": 19306,
"ctxt": 0
},
"operator": ">=",
"left": {
"type": "MemberExpression",
"span": {
"start": 19274,
"end": 19301,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19274,
"end": 19294,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19274,
"end": 19281,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19282,
"end": 19294,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19295,
"end": 19301,
"ctxt": 0
},
"value": "length",
"optional": false
}
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 19305,
"end": 19306,
"ctxt": 0
},
"value": 1.0
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19308,
"end": 19444,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 19330,
"end": 19426,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 19330,
"end": 19425,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 19330,
"end": 19369,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19330,
"end": 19354,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19330,
"end": 19346,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19330,
"end": 19337,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19338,
"end": 19346,
"ctxt": 0
},
"value": "typeFlow",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19347,
"end": 19354,
"ctxt": 0
},
"value": "checker",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19355,
"end": 19369,
"ctxt": 0
},
"value": "currentModDecl",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19372,
"end": 19425,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19372,
"end": 19392,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19372,
"end": 19379,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19380,
"end": 19392,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Computed",
"span": {
"start": 19392,
"end": 19425,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 19393,
"end": 19424,
"ctxt": 0
},
"operator": "-",
"left": {
"type": "MemberExpression",
"span": {
"start": 19393,
"end": 19420,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 19393,
"end": 19413,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19393,
"end": 19400,
"ctxt": 0
},
"value": "context",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19401,
"end": 19413,
"ctxt": 0
},
"value": "modDeclChain",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 19414,
"end": 19420,
"ctxt": 0
},
"value": "length",
"optional": false
}
},
"right": {
"type": "NumericLiteral",
"span": {
"start": 19423,
"end": 19424,
"ctxt": 0
},
"value": 1.0
}
}
}
}
}
}
]
},
"alternate": null
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 19476,
"end": 20397,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19480,
"end": 19521,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19480,
"end": 19492,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19480,
"end": 19483,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19484,
"end": 19492,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19496,
"end": 19521,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19496,
"end": 19504,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19505,
"end": 19521,
"ctxt": 0
},
"value": "ClassDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19523,
"end": 19579,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 19541,
"end": 19565,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19541,
"end": 19564,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19541,
"end": 19555,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 19556,
"end": 19563,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 19597,
"end": 20397,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19601,
"end": 19646,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19601,
"end": 19613,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19601,
"end": 19604,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19605,
"end": 19613,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19617,
"end": 19646,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19617,
"end": 19625,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19626,
"end": 19646,
"ctxt": 0
},
"value": "InterfaceDeclaration",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19648,
"end": 19704,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 19666,
"end": 19690,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19666,
"end": 19689,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19666,
"end": 19680,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 19681,
"end": 19688,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 19722,
"end": 20397,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19726,
"end": 19755,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19726,
"end": 19738,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19726,
"end": 19729,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19730,
"end": 19738,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19742,
"end": 19755,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19742,
"end": 19750,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19751,
"end": 19755,
"ctxt": 0
},
"value": "With",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19757,
"end": 19813,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 19775,
"end": 19799,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 19775,
"end": 19798,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19775,
"end": 19789,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 19790,
"end": 19797,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 19831,
"end": 20397,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19835,
"end": 19868,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 19835,
"end": 19847,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19835,
"end": 19838,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19839,
"end": 19847,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 19851,
"end": 19868,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19851,
"end": 19859,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19860,
"end": 19868,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 19870,
"end": 20119,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 19888,
"end": 19917,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 19892,
"end": 19916,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 19892,
"end": 19900,
"ctxt": 0
},
"value": "funcDecl",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 19903,
"end": 19916,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 19913,
"end": 19916,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 19904,
"end": 19912,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 19904,
"end": 19912,
"ctxt": 0
},
"value": "FuncDecl",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 19934,
"end": 20105,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 19938,
"end": 20039,
"ctxt": 0
},
"operator": "&&",
"left": {
"type": "ParenthesisExpression",
"span": {
"start": 19938,
"end": 20015,
"ctxt": 0
},
"expression": {
"type": "BinaryExpression",
"span": {
"start": 19939,
"end": 20014,
"ctxt": 0
},
"operator": "||",
"left": {
"type": "UnaryExpression",
"span": {
"start": 19939,
"end": 19962,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 19940,
"end": 19962,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19940,
"end": 19948,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19949,
"end": 19962,
"ctxt": 0
},
"value": "isConstructor",
"optional": false
}
}
},
"right": {
"type": "CallExpression",
"span": {
"start": 19966,
"end": 20014,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 19966,
"end": 19973,
"ctxt": 0
},
"value": "hasFlag",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 19974,
"end": 19991,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19974,
"end": 19982,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 19983,
"end": 19991,
"ctxt": 0
},
"value": "fncFlags",
"optional": false
}
}
},
{
"spread": null,
"expression": {
"type": "MemberExpression",
"span": {
"start": 19993,
"end": 20013,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 19993,
"end": 20001,
"ctxt": 0
},
"value": "FncFlags",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20002,
"end": 20013,
"ctxt": 0
},
"value": "ClassMethod",
"optional": false
}
}
}
],
"typeArguments": null
}
}
},
"right": {
"type": "UnaryExpression",
"span": {
"start": 20019,
"end": 20039,
"ctxt": 0
},
"operator": "!",
"argument": {
"type": "MemberExpression",
"span": {
"start": 20020,
"end": 20039,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20020,
"end": 20028,
"ctxt": 0
},
"value": "funcDecl",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20029,
"end": 20039,
"ctxt": 0
},
"value": "isOverload",
"optional": false
}
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 20041,
"end": 20105,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 20063,
"end": 20087,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 20063,
"end": 20086,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 20063,
"end": 20077,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 20078,
"end": 20085,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"alternate": {
"type": "IfStatement",
"span": {
"start": 20137,
"end": 20397,
"ctxt": 0
},
"test": {
"type": "BinaryExpression",
"span": {
"start": 20141,
"end": 20171,
"ctxt": 0
},
"operator": "==",
"left": {
"type": "MemberExpression",
"span": {
"start": 20141,
"end": 20153,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20141,
"end": 20144,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20145,
"end": 20153,
"ctxt": 0
},
"value": "nodeType",
"optional": false
}
},
"right": {
"type": "MemberExpression",
"span": {
"start": 20157,
"end": 20171,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20157,
"end": 20165,
"ctxt": 0
},
"value": "NodeType",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20166,
"end": 20171,
"ctxt": 0
},
"value": "Catch",
"optional": false
}
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 20173,
"end": 20336,
"ctxt": 0
},
"stmts": [
{
"type": "VariableDeclaration",
"span": {
"start": 20191,
"end": 20219,
"ctxt": 0
},
"kind": "var",
"declare": false,
"declarations": [
{
"type": "VariableDeclarator",
"span": {
"start": 20195,
"end": 20218,
"ctxt": 0
},
"id": {
"type": "Identifier",
"span": {
"start": 20195,
"end": 20205,
"ctxt": 0
},
"value": "catchBlock",
"optional": false,
"typeAnnotation": null
},
"init": {
"type": "TsTypeAssertion",
"span": {
"start": 20208,
"end": 20218,
"ctxt": 0
},
"expression": {
"type": "Identifier",
"span": {
"start": 20215,
"end": 20218,
"ctxt": 0
},
"value": "ast",
"optional": false
},
"typeAnnotation": {
"type": "TsTypeReference",
"span": {
"start": 20209,
"end": 20214,
"ctxt": 0
},
"typeName": {
"type": "Identifier",
"span": {
"start": 20209,
"end": 20214,
"ctxt": 0
},
"value": "Catch",
"optional": false
},
"typeParams": null
}
},
"definite": false
}
]
},
{
"type": "IfStatement",
"span": {
"start": 20236,
"end": 20322,
"ctxt": 0
},
"test": {
"type": "MemberExpression",
"span": {
"start": 20240,
"end": 20256,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20240,
"end": 20250,
"ctxt": 0
},
"value": "catchBlock",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20251,
"end": 20256,
"ctxt": 0
},
"value": "param",
"optional": false
}
},
"consequent": {
"type": "BlockStatement",
"span": {
"start": 20258,
"end": 20322,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 20280,
"end": 20304,
"ctxt": 0
},
"expression": {
"type": "CallExpression",
"span": {
"start": 20280,
"end": 20303,
"ctxt": 0
},
"callee": {
"type": "Identifier",
"span": {
"start": 20280,
"end": 20294,
"ctxt": 0
},
"value": "popAssignScope",
"optional": false
},
"arguments": [
{
"spread": null,
"expression": {
"type": "Identifier",
"span": {
"start": 20295,
"end": 20302,
"ctxt": 0
},
"value": "context",
"optional": false
}
}
],
"typeArguments": null
}
}
]
},
"alternate": null
}
]
},
"alternate": {
"type": "BlockStatement",
"span": {
"start": 20354,
"end": 20397,
"ctxt": 0
},
"stmts": [
{
"type": "ExpressionStatement",
"span": {
"start": 20372,
"end": 20383,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 20372,
"end": 20382,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "Identifier",
"span": {
"start": 20372,
"end": 20374,
"ctxt": 0
},
"value": "go",
"optional": false,
"typeAnnotation": null
},
"right": {
"type": "BooleanLiteral",
"span": {
"start": 20377,
"end": 20382,
"ctxt": 0
},
"value": false
}
}
}
]
}
}
}
}
}
}
}
]
},
"alternate": null
},
{
"type": "ExpressionStatement",
"span": {
"start": 20416,
"end": 20447,
"ctxt": 0
},
"expression": {
"type": "AssignmentExpression",
"span": {
"start": 20416,
"end": 20446,
"ctxt": 0
},
"operator": "=",
"left": {
"type": "MemberExpression",
"span": {
"start": 20416,
"end": 20441,
"ctxt": 0
},
"object": {
"type": "MemberExpression",
"span": {
"start": 20416,
"end": 20430,
"ctxt": 0
},
"object": {
"type": "Identifier",
"span": {
"start": 20416,
"end": 20422,
"ctxt": 0
},
"value": "walker",
"optional": false
},
"property": {
"type": "Identifier",
"span": {
"start": 20423,
"end": 20430,
"ctxt": 0
},
"value": "options",
"optional": false
}
},
"property": {
"type": "Identifier",
"span": {
"start": 20431,
"end": 20441,
"ctxt": 0
},
"value": "goChildren",
"optional": false
}
},
"right": {
"type": "Identifier",
"span": {
"start": 20444,
"end": 20446,
"ctxt": 0
},
"value": "go",
"optional": false
}
}
},
{
"type": "ReturnStatement",
"span": {
"start": 20456,
"end": 20467,
"ctxt": 0
},
"argument": {
"type": "Identifier",
"span": {
"start": 20463,
"end": 20466,
"ctxt": 0
},
"value": "ast",
"optional": false
}
}
]
},
"generator": false,
"async": false,
"typeParameters": null,
"returnType": null
}
}
]
}
}
],
"interpreter": null
}