{ "type": "Script", "span": { "start": 138, "end": 1663, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 138, "end": 192, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 142, "end": 191, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 142, "end": 144, "ctxt": 0 }, "value": "f1", "optional": false, "typeAnnotation": null }, "init": { "type": "FunctionExpression", "identifier": null, "params": [], "decorators": [], "span": { "start": 147, "end": 191, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 159, "end": 191, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 165, "end": 175, "ctxt": 0 }, "argument": { "type": "StringLiteral", "span": { "start": 172, "end": 174, "ctxt": 0 }, "value": "", "raw": "''" } }, { "type": "ReturnStatement", "span": { "start": 180, "end": 189, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 187, "end": 188, "ctxt": 0 }, "value": 3.0, "raw": "3" } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 193, "end": 248, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 197, "end": 247, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 197, "end": 199, "ctxt": 0 }, "value": "f2", "optional": false, "typeAnnotation": null }, "init": { "type": "FunctionExpression", "identifier": { "type": "Identifier", "span": { "start": 211, "end": 212, "ctxt": 0 }, "value": "x", "optional": false }, "params": [], "decorators": [], "span": { "start": 202, "end": 247, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 215, "end": 247, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 221, "end": 231, "ctxt": 0 }, "argument": { "type": "StringLiteral", "span": { "start": 228, "end": 230, "ctxt": 0 }, "value": "", "raw": "''" } }, { "type": "ReturnStatement", "span": { "start": 236, "end": 245, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 243, "end": 244, "ctxt": 0 }, "value": 3.0, "raw": "3" } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 249, "end": 297, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 253, "end": 296, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 253, "end": 255, "ctxt": 0 }, "value": "f3", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 258, "end": 296, "ctxt": 0 }, "params": [], "body": { "type": "BlockStatement", "span": { "start": 264, "end": 296, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 270, "end": 280, "ctxt": 0 }, "argument": { "type": "StringLiteral", "span": { "start": 277, "end": 279, "ctxt": 0 }, "value": "", "raw": "''" } }, { "type": "ReturnStatement", "span": { "start": 285, "end": 294, "ctxt": 0 }, "argument": { "type": "NumericLiteral", "span": { "start": 292, "end": 293, "ctxt": 0 }, "value": 3.0, "raw": "3" } } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 405, "end": 505, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 409, "end": 505, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 409, "end": 411, "ctxt": 0 }, "value": "f4", "optional": false, "typeAnnotation": null }, "init": { "type": "FunctionExpression", "identifier": null, "params": [], "decorators": [], "span": { "start": 414, "end": 505, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 426, "end": 505, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 432, "end": 503, "ctxt": 0 }, "test": { "type": "BooleanLiteral", "span": { "start": 436, "end": 440, "ctxt": 0 }, "value": true }, "consequent": { "type": "BlockStatement", "span": { "start": 442, "end": 470, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 452, "end": 464, "ctxt": 0 }, "argument": { "type": "ArrayExpression", "span": { "start": 459, "end": 463, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 460, "end": 462, "ctxt": 0 }, "value": "", "raw": "''" } } ] } } ] }, "alternate": { "type": "BlockStatement", "span": { "start": 476, "end": 503, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 486, "end": 497, "ctxt": 0 }, "argument": { "type": "ArrayExpression", "span": { "start": 493, "end": 496, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 494, "end": 495, "ctxt": 0 }, "value": 1.0, "raw": "1" } } ] } } ] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 596, "end": 598, "ctxt": 0 }, "value": "f5", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 587, "end": 612, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 609, "end": 612, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 600, "end": 608, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 602, "end": 608, "ctxt": 0 }, "kind": "number" } } }, { "type": "VariableDeclaration", "span": { "start": 614, "end": 620, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 618, "end": 619, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 618, "end": 619, "ctxt": 0 }, "value": "m", "optional": false, "typeAnnotation": null }, "init": null, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 715, "end": 717, "ctxt": 0 }, "value": "f6", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 718, "end": 723, "ctxt": 0 }, "decorators": [], "pat": { "type": "AssignmentPattern", "span": { "start": 718, "end": 723, "ctxt": 0 }, "left": { "type": "Identifier", "span": { "start": 718, "end": 719, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 722, "end": 723, "ctxt": 0 }, "value": "m", "optional": false }, "typeAnnotation": null } } ], "decorators": [], "span": { "start": 706, "end": 743, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 725, "end": 743, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 731, "end": 741, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 735, "end": 740, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 735, "end": 736, "ctxt": 0 }, "value": "m", "optional": false, "typeAnnotation": null }, "init": { "type": "NumericLiteral", "span": { "start": 739, "end": 740, "ctxt": 0 }, "value": 4.0, "raw": "4" }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 834, "end": 836, "ctxt": 0 }, "value": "f7", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 837, "end": 842, "ctxt": 0 }, "decorators": [], "pat": { "type": "AssignmentPattern", "span": { "start": 837, "end": 842, "ctxt": 0 }, "left": { "type": "Identifier", "span": { "start": 837, "end": 838, "ctxt": 0 }, "value": "n", "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 841, "end": 842, "ctxt": 0 }, "value": "m", "optional": false }, "typeAnnotation": null } }, { "type": "Parameter", "span": { "start": 844, "end": 846, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 844, "end": 845, "ctxt": 0 }, "value": "m", "optional": true, "typeAnnotation": null } } ], "decorators": [], "span": { "start": 825, "end": 851, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 848, "end": 851, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "ExpressionStatement", "span": { "start": 982, "end": 1056, "ctxt": 0 }, "expression": { "type": "BinaryExpression", "span": { "start": 982, "end": 1055, "ctxt": 0 }, "operator": "===", "left": { "type": "Identifier", "span": { "start": 982, "end": 991, "ctxt": 0 }, "value": "undefined", "optional": false }, "right": { "type": "FunctionExpression", "identifier": null, "params": [], "decorators": [], "span": { "start": 996, "end": 1055, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1016, "end": 1055, "ctxt": 0 }, "stmts": [ { "type": "ThrowStatement", "span": { "start": 1022, "end": 1038, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 1028, "end": 1037, "ctxt": 0 }, "value": "undefined", "optional": false } }, { "type": "VariableDeclaration", "span": { "start": 1043, "end": 1053, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1047, "end": 1052, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1047, "end": 1048, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null }, "init": { "type": "NumericLiteral", "span": { "start": 1051, "end": 1052, "ctxt": 0 }, "value": 4.0, "raw": "4" }, "definite": false } ] } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": { "type": "TsTypeAnnotation", "span": { "start": 1007, "end": 1015, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1009, "end": 1015, "ctxt": 0 }, "kind": "number" } } } } }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1064, "end": 1068, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 1058, "end": 1083, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1071, "end": 1081, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1079, "end": 1080, "ctxt": 0 }, "value": "x", "optional": false }, "value": null, "typeAnnotation": null, "isStatic": false, "decorators": [], "accessibility": "private", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1090, "end": 1102, "ctxt": 0 }, "value": "AnotherClass", "optional": false }, "declare": false, "span": { "start": 1084, "end": 1117, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1105, "end": 1115, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1113, "end": 1114, "ctxt": 0 }, "value": "y", "optional": false }, "value": null, "typeAnnotation": null, "isStatic": false, "decorators": [], "accessibility": "private", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1124, "end": 1132, "ctxt": 0 }, "value": "Derived1", "optional": false }, "declare": false, "span": { "start": 1118, "end": 1160, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1148, "end": 1158, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1156, "end": 1157, "ctxt": 0 }, "value": "m", "optional": false }, "value": null, "typeAnnotation": null, "isStatic": false, "decorators": [], "accessibility": "private", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 1141, "end": 1145, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1167, "end": 1175, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 1161, "end": 1203, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1191, "end": 1201, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1199, "end": 1200, "ctxt": 0 }, "value": "n", "optional": false }, "value": null, "typeAnnotation": null, "isStatic": false, "decorators": [], "accessibility": "private", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 1184, "end": 1188, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1213, "end": 1215, "ctxt": 0 }, "value": "f8", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 1204, "end": 1279, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1218, "end": 1279, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1224, "end": 1246, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1231, "end": 1245, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1235, "end": 1243, "ctxt": 0 }, "value": "Derived1", "optional": false }, "arguments": [], "typeArguments": null } }, { "type": "ReturnStatement", "span": { "start": 1251, "end": 1273, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1258, "end": 1272, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1262, "end": 1270, "ctxt": 0 }, "value": "Derived2", "optional": false }, "arguments": [], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "VariableDeclaration", "span": { "start": 1280, "end": 1359, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1284, "end": 1358, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1284, "end": 1286, "ctxt": 0 }, "value": "f9", "optional": false, "typeAnnotation": null }, "init": { "type": "FunctionExpression", "identifier": null, "params": [], "decorators": [], "span": { "start": 1289, "end": 1358, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1301, "end": 1358, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1307, "end": 1329, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1314, "end": 1328, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1318, "end": 1326, "ctxt": 0 }, "value": "Derived1", "optional": false }, "arguments": [], "typeArguments": null } }, { "type": "ReturnStatement", "span": { "start": 1334, "end": 1356, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1341, "end": 1355, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1345, "end": 1353, "ctxt": 0 }, "value": "Derived2", "optional": false }, "arguments": [], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1360, "end": 1434, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1364, "end": 1433, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1364, "end": 1367, "ctxt": 0 }, "value": "f10", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 1370, "end": 1433, "ctxt": 0 }, "params": [], "body": { "type": "BlockStatement", "span": { "start": 1376, "end": 1433, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1382, "end": 1404, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1389, "end": 1403, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1393, "end": 1401, "ctxt": 0 }, "value": "Derived1", "optional": false }, "arguments": [], "typeArguments": null } }, { "type": "ReturnStatement", "span": { "start": 1409, "end": 1431, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1416, "end": 1430, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1420, "end": 1428, "ctxt": 0 }, "value": "Derived2", "optional": false }, "arguments": [], "typeArguments": null } } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1444, "end": 1447, "ctxt": 0 }, "value": "f11", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 1435, "end": 1507, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1450, "end": 1507, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1456, "end": 1474, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1463, "end": 1473, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1467, "end": 1471, "ctxt": 0 }, "value": "Base", "optional": false }, "arguments": [], "typeArguments": null } }, { "type": "ReturnStatement", "span": { "start": 1479, "end": 1505, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1486, "end": 1504, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1490, "end": 1502, "ctxt": 0 }, "value": "AnotherClass", "optional": false }, "arguments": [], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "VariableDeclaration", "span": { "start": 1508, "end": 1588, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1512, "end": 1587, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1512, "end": 1515, "ctxt": 0 }, "value": "f12", "optional": false, "typeAnnotation": null }, "init": { "type": "FunctionExpression", "identifier": null, "params": [], "decorators": [], "span": { "start": 1518, "end": 1587, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1530, "end": 1587, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1536, "end": 1554, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1543, "end": 1553, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1547, "end": 1551, "ctxt": 0 }, "value": "Base", "optional": false }, "arguments": [], "typeArguments": null } }, { "type": "ReturnStatement", "span": { "start": 1559, "end": 1585, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1566, "end": 1584, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1570, "end": 1582, "ctxt": 0 }, "value": "AnotherClass", "optional": false }, "arguments": [], "typeArguments": null } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 1589, "end": 1663, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 1593, "end": 1662, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 1593, "end": 1596, "ctxt": 0 }, "value": "f13", "optional": false, "typeAnnotation": null }, "init": { "type": "ArrowFunctionExpression", "span": { "start": 1599, "end": 1662, "ctxt": 0 }, "params": [], "body": { "type": "BlockStatement", "span": { "start": 1605, "end": 1662, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1611, "end": 1629, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1618, "end": 1628, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1622, "end": 1626, "ctxt": 0 }, "value": "Base", "optional": false }, "arguments": [], "typeArguments": null } }, { "type": "ReturnStatement", "span": { "start": 1634, "end": 1660, "ctxt": 0 }, "argument": { "type": "NewExpression", "span": { "start": 1641, "end": 1659, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 1645, "end": 1657, "ctxt": 0 }, "value": "AnotherClass", "optional": false }, "arguments": [], "typeArguments": null } } ] }, "async": false, "generator": false, "typeParameters": null, "returnType": null }, "definite": false } ] } ], "interpreter": null }