{ "type": "Script", "span": { "start": 0, "end": 587, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 6, "end": 10, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 0, "end": 45, "ctxt": 0 }, "decorators": [], "body": [ { "type": "Constructor", "span": { "start": 17, "end": 43, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 17, "end": 28, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 29, "end": 38, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 29, "end": 38, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 30, "end": 38, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 32, "end": 38, "ctxt": 0 }, "kind": "number" } } } } ], "body": { "type": "BlockStatement", "span": { "start": 40, "end": 43, "ctxt": 0 }, "stmts": [] }, "accessibility": null, "isOptional": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 53, "end": 54, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "span": { "start": 47, "end": 88, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 74, "end": 86, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 74, "end": 77, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 77, "end": 85, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 79, "end": 85, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 63, "end": 67, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "VariableDeclaration", "span": { "start": 90, "end": 100, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 94, "end": 99, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 94, "end": 95, "ctxt": 0 }, "value": "r", "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 98, "end": 99, "ctxt": 0 }, "value": "C", "optional": false }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 101, "end": 117, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 105, "end": 116, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 105, "end": 106, "ctxt": 0 }, "value": "c", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 109, "end": 116, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 113, "end": 114, "ctxt": 0 }, "value": "C", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 127, "end": 145, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 131, "end": 144, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 131, "end": 133, "ctxt": 0 }, "value": "c2", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 136, "end": 144, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 140, "end": 141, "ctxt": 0 }, "value": "C", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 142, "end": 143, "ctxt": 0 }, "value": 1.0 } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 159, "end": 164, "ctxt": 0 }, "value": "Base2", "optional": false }, "declare": false, "span": { "start": 153, "end": 199, "ctxt": 0 }, "decorators": [], "body": [ { "type": "Constructor", "span": { "start": 176, "end": 197, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 176, "end": 187, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 188, "end": 192, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 188, "end": 192, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 189, "end": 192, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 191, "end": 192, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 191, "end": 192, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 194, "end": 197, "ctxt": 0 }, "stmts": [] }, "accessibility": null, "isOptional": false } ], "superClass": null, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 164, "end": 169, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 165, "end": 166, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 165, "end": 166, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 167, "end": 168, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 167, "end": 168, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 207, "end": 208, "ctxt": 0 }, "value": "D", "optional": false }, "declare": false, "span": { "start": 201, "end": 248, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 239, "end": 246, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 239, "end": 242, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 242, "end": 245, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 244, "end": 245, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 244, "end": 245, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 222, "end": 227, "ctxt": 0 }, "value": "Base2", "optional": false }, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 208, "end": 213, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 209, "end": 210, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 209, "end": 210, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 211, "end": 212, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 211, "end": 212, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 227, "end": 232, "ctxt": 0 }, "params": [ { "type": "TsTypeReference", "span": { "start": 228, "end": 229, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 228, "end": 229, "ctxt": 0 }, "value": "T", "optional": false }, "typeParams": null }, { "type": "TsTypeReference", "span": { "start": 230, "end": 231, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 230, "end": 231, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } ] }, "implements": [] }, { "type": "VariableDeclaration", "span": { "start": 250, "end": 261, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 254, "end": 260, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 254, "end": 256, "ctxt": 0 }, "value": "r2", "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 259, "end": 260, "ctxt": 0 }, "value": "D", "optional": false }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 262, "end": 278, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 266, "end": 277, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 266, "end": 267, "ctxt": 0 }, "value": "d", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 270, "end": 277, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 274, "end": 275, "ctxt": 0 }, "value": "D", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 288, "end": 306, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 292, "end": 305, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 292, "end": 294, "ctxt": 0 }, "value": "d2", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 297, "end": 305, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 301, "end": 302, "ctxt": 0 }, "value": "D", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 303, "end": 304, "ctxt": 0 }, "value": 1.0 } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 346, "end": 348, "ctxt": 0 }, "value": "D2", "optional": false }, "declare": false, "span": { "start": 340, "end": 400, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 391, "end": 398, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 391, "end": 394, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 394, "end": 397, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 396, "end": 397, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 396, "end": 397, "ctxt": 0 }, "value": "U", "optional": false }, "typeParams": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 363, "end": 368, "ctxt": 0 }, "value": "Base2", "optional": false }, "isAbstract": false, "typeParams": { "type": "TsTypeParameterDeclaration", "span": { "start": 348, "end": 354, "ctxt": 0 }, "parameters": [ { "type": "TsTypeParameter", "span": { "start": 349, "end": 350, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 349, "end": 350, "ctxt": 0 }, "value": "T", "optional": false }, "constraint": null, "default": null }, { "type": "TsTypeParameter", "span": { "start": 352, "end": 353, "ctxt": 0 }, "name": { "type": "Identifier", "span": { "start": 352, "end": 353, "ctxt": 0 }, "value": "U", "optional": false }, "constraint": null, "default": null } ] }, "superTypeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 368, "end": 384, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 369, "end": 375, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 377, "end": 383, "ctxt": 0 }, "kind": "number" } ] }, "implements": [] }, { "type": "VariableDeclaration", "span": { "start": 402, "end": 414, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 406, "end": 413, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 406, "end": 408, "ctxt": 0 }, "value": "r3", "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 411, "end": 413, "ctxt": 0 }, "value": "D2", "optional": false }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 415, "end": 432, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 419, "end": 431, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 419, "end": 421, "ctxt": 0 }, "value": "d3", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 424, "end": 431, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 428, "end": 429, "ctxt": 0 }, "value": "D", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 442, "end": 460, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 446, "end": 459, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 446, "end": 448, "ctxt": 0 }, "value": "d4", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 451, "end": 459, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 455, "end": 456, "ctxt": 0 }, "value": "D", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 457, "end": 458, "ctxt": 0 }, "value": 1.0 } } ], "typeArguments": null }, "definite": false } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 474, "end": 476, "ctxt": 0 }, "value": "D3", "optional": false }, "declare": false, "span": { "start": 468, "end": 527, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 513, "end": 525, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 513, "end": 516, "ctxt": 0 }, "value": "foo", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 516, "end": 524, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 518, "end": 524, "ctxt": 0 }, "kind": "string" } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false } ], "superClass": { "type": "Identifier", "span": { "start": 485, "end": 490, "ctxt": 0 }, "value": "Base2", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": { "type": "TsTypeParameterInstantiation", "span": { "start": 490, "end": 506, "ctxt": 0 }, "params": [ { "type": "TsKeywordType", "span": { "start": 491, "end": 497, "ctxt": 0 }, "kind": "string" }, { "type": "TsKeywordType", "span": { "start": 499, "end": 505, "ctxt": 0 }, "kind": "number" } ] }, "implements": [] }, { "type": "VariableDeclaration", "span": { "start": 529, "end": 541, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 533, "end": 540, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 533, "end": 535, "ctxt": 0 }, "value": "r4", "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 538, "end": 540, "ctxt": 0 }, "value": "D3", "optional": false }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 542, "end": 559, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 546, "end": 558, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 546, "end": 548, "ctxt": 0 }, "value": "d5", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 551, "end": 558, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 555, "end": 556, "ctxt": 0 }, "value": "D", "optional": false }, "arguments": [], "typeArguments": null }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 569, "end": 587, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 573, "end": 586, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 573, "end": 575, "ctxt": 0 }, "value": "d6", "optional": false, "typeAnnotation": null }, "init": { "type": "NewExpression", "span": { "start": 578, "end": 586, "ctxt": 0 }, "callee": { "type": "Identifier", "span": { "start": 582, "end": 583, "ctxt": 0 }, "value": "D", "optional": false }, "arguments": [ { "spread": null, "expression": { "type": "NumericLiteral", "span": { "start": 584, "end": 585, "ctxt": 0 }, "value": 1.0 } } ], "typeArguments": null }, "definite": false } ] } ], "interpreter": null }