{ "type": "Script", "span": { "start": 17, "end": 1620, "ctxt": 0 }, "body": [ { "type": "VariableDeclaration", "span": { "start": 17, "end": 40, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 21, "end": 40, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 21, "end": 22, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 22, "end": 40, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 24, "end": 40, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 26, "end": 38, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 26, "end": 29, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 29, "end": 37, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 31, "end": 37, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 41, "end": 77, "ctxt": 0 }, "kind": "var", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 45, "end": 77, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 45, "end": 46, "ctxt": 0 }, "value": "y", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 46, "end": 77, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 48, "end": 77, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 50, "end": 62, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 50, "end": 53, "ctxt": 0 }, "value": "foo", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 53, "end": 61, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 55, "end": 61, "ctxt": 0 }, "kind": "string" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 63, "end": 75, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 63, "end": 66, "ctxt": 0 }, "value": "bar", "optional": false }, "computed": false, "optional": false, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 66, "end": 74, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 68, "end": 74, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } }, "init": null, "definite": false } ] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 85, "end": 89, "ctxt": 0 }, "value": "Base", "optional": false }, "declare": false, "span": { "start": 79, "end": 408, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 96, "end": 108, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 96, "end": 97, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 97, "end": 107, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 99, "end": 107, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 106, "end": 107, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 113, "end": 131, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 113, "end": 114, "ctxt": 0 }, "value": "b", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 115, "end": 126, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 115, "end": 126, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 116, "end": 126, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 118, "end": 126, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 125, "end": 126, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 113, "end": 131, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 128, "end": 131, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 136, "end": 157, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 140, "end": 141, "ctxt": 0 }, "value": "c", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 136, "end": 157, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 144, "end": 157, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 146, "end": 155, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 153, "end": 154, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 162, "end": 184, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 166, "end": 167, "ctxt": 0 }, "value": "c", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 168, "end": 179, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 168, "end": 179, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 169, "end": 179, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 171, "end": 179, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 178, "end": 179, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 162, "end": 184, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 181, "end": 184, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassProperty", "span": { "start": 189, "end": 214, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 189, "end": 190, "ctxt": 0 }, "value": "d", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 190, "end": 213, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 192, "end": 213, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 193, "end": 204, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 194, "end": 204, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 196, "end": 204, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 203, "end": 204, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 206, "end": 213, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 209, "end": 213, "ctxt": 0 }, "kind": "void" } } } }, "isStatic": false, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassProperty", "span": { "start": 220, "end": 239, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 227, "end": 228, "ctxt": 0 }, "value": "r", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 228, "end": 238, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 230, "end": 238, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 237, "end": 238, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } }, "isStatic": true, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "ClassMethod", "span": { "start": 244, "end": 269, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 251, "end": 252, "ctxt": 0 }, "value": "s", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 253, "end": 264, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 253, "end": 264, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 254, "end": 264, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 256, "end": 264, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 263, "end": 264, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 244, "end": 269, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 266, "end": 269, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": true, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 274, "end": 302, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 285, "end": 286, "ctxt": 0 }, "value": "t", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 274, "end": 302, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 289, "end": 302, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 291, "end": 300, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 298, "end": 299, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": true, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassMethod", "span": { "start": 307, "end": 336, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 318, "end": 319, "ctxt": 0 }, "value": "t", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 320, "end": 331, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 320, "end": 331, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 321, "end": 331, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 323, "end": 331, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 330, "end": 331, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 307, "end": 336, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 333, "end": 336, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": true, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "ClassProperty", "span": { "start": 341, "end": 373, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 348, "end": 349, "ctxt": 0 }, "value": "u", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 349, "end": 372, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 351, "end": 372, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 352, "end": 363, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 353, "end": 363, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 355, "end": 363, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 362, "end": 363, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 365, "end": 372, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 368, "end": 372, "ctxt": 0 }, "kind": "void" } } } }, "isStatic": true, "decorators": [], "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 379, "end": 406, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 379, "end": 390, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 391, "end": 402, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 391, "end": 402, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 392, "end": 402, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 394, "end": 402, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 401, "end": 402, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 404, "end": 406, "ctxt": 0 }, "stmts": [] }, "accessibility": null, "isOptional": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 484, "end": 492, "ctxt": 0 }, "value": "Derived1", "optional": false }, "declare": false, "span": { "start": 478, "end": 579, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 512, "end": 534, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 522, "end": 523, "ctxt": 0 }, "value": "a", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 523, "end": 533, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 525, "end": 533, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 532, "end": 533, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } }, "isStatic": false, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 539, "end": 577, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 539, "end": 550, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 551, "end": 562, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 551, "end": 562, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 552, "end": 562, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 554, "end": 562, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 561, "end": 562, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 564, "end": 577, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 566, "end": 575, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 566, "end": 574, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 566, "end": 571, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 572, "end": 573, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 501, "end": 505, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 587, "end": 595, "ctxt": 0 }, "value": "Derived2", "optional": false }, "declare": false, "span": { "start": 581, "end": 688, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 615, "end": 643, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 625, "end": 626, "ctxt": 0 }, "value": "b", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 627, "end": 638, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 627, "end": 638, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 628, "end": 638, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 630, "end": 638, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 637, "end": 638, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 615, "end": 643, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 640, "end": 643, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 648, "end": 686, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 648, "end": 659, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 660, "end": 671, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 660, "end": 671, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 661, "end": 671, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 663, "end": 671, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 670, "end": 671, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 673, "end": 686, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 675, "end": 684, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 675, "end": 683, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 675, "end": 680, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 681, "end": 682, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 604, "end": 608, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 696, "end": 704, "ctxt": 0 }, "value": "Derived3", "optional": false }, "declare": false, "span": { "start": 690, "end": 800, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 724, "end": 755, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 738, "end": 739, "ctxt": 0 }, "value": "c", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 724, "end": 755, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 742, "end": 755, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 744, "end": 753, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 751, "end": 752, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": false, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 760, "end": 798, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 760, "end": 771, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 772, "end": 783, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 772, "end": 783, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 773, "end": 783, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 775, "end": 783, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 782, "end": 783, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 785, "end": 798, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 787, "end": 796, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 787, "end": 795, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 787, "end": 792, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 793, "end": 794, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 713, "end": 717, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 808, "end": 816, "ctxt": 0 }, "value": "Derived4", "optional": false }, "declare": false, "span": { "start": 802, "end": 913, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 836, "end": 868, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 850, "end": 851, "ctxt": 0 }, "value": "c", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 852, "end": 863, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 852, "end": 863, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 853, "end": 863, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 855, "end": 863, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 862, "end": 863, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 836, "end": 868, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 865, "end": 868, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": false, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 873, "end": 911, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 873, "end": 884, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 885, "end": 896, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 885, "end": 896, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 886, "end": 896, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 888, "end": 896, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 895, "end": 896, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 898, "end": 911, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 900, "end": 909, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 900, "end": 908, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 900, "end": 905, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 906, "end": 907, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 825, "end": 829, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 921, "end": 929, "ctxt": 0 }, "value": "Derived5", "optional": false }, "declare": false, "span": { "start": 915, "end": 1030, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 949, "end": 985, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 959, "end": 960, "ctxt": 0 }, "value": "d", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 960, "end": 983, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 962, "end": 983, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 963, "end": 974, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 964, "end": 974, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 966, "end": 974, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 973, "end": 974, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 976, "end": 983, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 979, "end": 983, "ctxt": 0 }, "kind": "void" } } } }, "isStatic": false, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 990, "end": 1028, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 990, "end": 1001, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1002, "end": 1013, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1002, "end": 1013, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1003, "end": 1013, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1005, "end": 1013, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1012, "end": 1013, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1015, "end": 1028, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1017, "end": 1026, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1017, "end": 1025, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1017, "end": 1022, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1023, "end": 1024, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 938, "end": 942, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1038, "end": 1046, "ctxt": 0 }, "value": "Derived6", "optional": false }, "declare": false, "span": { "start": 1032, "end": 1140, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1066, "end": 1095, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1083, "end": 1084, "ctxt": 0 }, "value": "r", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1084, "end": 1094, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1086, "end": 1094, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1093, "end": 1094, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } }, "isStatic": true, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 1100, "end": 1138, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1100, "end": 1111, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1112, "end": 1123, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1112, "end": 1123, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1113, "end": 1123, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1115, "end": 1123, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1122, "end": 1123, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1125, "end": 1138, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1127, "end": 1136, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1127, "end": 1135, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1127, "end": 1132, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1133, "end": 1134, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1055, "end": 1059, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1148, "end": 1156, "ctxt": 0 }, "value": "Derived7", "optional": false }, "declare": false, "span": { "start": 1142, "end": 1256, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 1176, "end": 1211, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1193, "end": 1194, "ctxt": 0 }, "value": "s", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 1195, "end": 1206, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1195, "end": 1206, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1196, "end": 1206, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1198, "end": 1206, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1205, "end": 1206, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 1176, "end": 1211, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1208, "end": 1211, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": true, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 1216, "end": 1254, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1216, "end": 1227, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1228, "end": 1239, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1228, "end": 1239, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1229, "end": 1239, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1231, "end": 1239, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1238, "end": 1239, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1241, "end": 1254, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1243, "end": 1252, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1243, "end": 1251, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1243, "end": 1248, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1249, "end": 1250, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1165, "end": 1169, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1264, "end": 1272, "ctxt": 0 }, "value": "Derived8", "optional": false }, "declare": false, "span": { "start": 1258, "end": 1375, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 1292, "end": 1330, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1313, "end": 1314, "ctxt": 0 }, "value": "t", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 1292, "end": 1330, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1317, "end": 1330, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 1319, "end": 1328, "ctxt": 0 }, "argument": { "type": "Identifier", "span": { "start": 1326, "end": 1327, "ctxt": 0 }, "value": "x", "optional": false } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "getter", "isStatic": true, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 1335, "end": 1373, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1335, "end": 1346, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1347, "end": 1358, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1347, "end": 1358, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1348, "end": 1358, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1350, "end": 1358, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1357, "end": 1358, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1360, "end": 1373, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1362, "end": 1371, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1362, "end": 1370, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1362, "end": 1367, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1368, "end": 1369, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1281, "end": 1285, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1383, "end": 1391, "ctxt": 0 }, "value": "Derived9", "optional": false }, "declare": false, "span": { "start": 1377, "end": 1495, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 1411, "end": 1450, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1432, "end": 1433, "ctxt": 0 }, "value": "t", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 1434, "end": 1445, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1434, "end": 1445, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1435, "end": 1445, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1437, "end": 1445, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1444, "end": 1445, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "decorators": [], "span": { "start": 1411, "end": 1450, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 1447, "end": 1450, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "setter", "isStatic": true, "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false }, { "type": "Constructor", "span": { "start": 1455, "end": 1493, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1455, "end": 1466, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1467, "end": 1478, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1467, "end": 1478, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1468, "end": 1478, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1470, "end": 1478, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1477, "end": 1478, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1480, "end": 1493, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1482, "end": 1491, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1482, "end": 1490, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1482, "end": 1487, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1488, "end": 1489, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1400, "end": 1404, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 1503, "end": 1512, "ctxt": 0 }, "value": "Derived10", "optional": false }, "declare": false, "span": { "start": 1497, "end": 1620, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassProperty", "span": { "start": 1532, "end": 1575, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1549, "end": 1550, "ctxt": 0 }, "value": "u", "optional": false }, "value": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1550, "end": 1573, "ctxt": 0 }, "typeAnnotation": { "type": "TsFunctionType", "span": { "start": 1552, "end": 1573, "ctxt": 0 }, "params": [ { "type": "Identifier", "span": { "start": 1553, "end": 1564, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1554, "end": 1564, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1556, "end": 1564, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1563, "end": 1564, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } ], "typeParams": null, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1566, "end": 1573, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 1569, "end": 1573, "ctxt": 0 }, "kind": "void" } } } }, "isStatic": true, "decorators": [], "accessibility": "protected", "isAbstract": false, "isOptional": false, "isOverride": false, "readonly": false, "declare": false, "definite": false }, { "type": "Constructor", "span": { "start": 1580, "end": 1618, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 1580, "end": 1591, "ctxt": 0 }, "value": "constructor", "optional": false }, "params": [ { "type": "Parameter", "span": { "start": 1592, "end": 1603, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 1592, "end": 1603, "ctxt": 0 }, "value": "a", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 1593, "end": 1603, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeQuery", "span": { "start": 1595, "end": 1603, "ctxt": 0 }, "exprName": { "type": "Identifier", "span": { "start": 1602, "end": 1603, "ctxt": 0 }, "value": "x", "optional": false }, "typeArguments": null } } } } ], "body": { "type": "BlockStatement", "span": { "start": 1605, "end": 1618, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 1607, "end": 1616, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 1607, "end": 1615, "ctxt": 0 }, "callee": { "type": "Super", "span": { "start": 1607, "end": 1612, "ctxt": 0 } }, "arguments": [ { "spread": null, "expression": { "type": "Identifier", "span": { "start": 1613, "end": 1614, "ctxt": 0 }, "value": "a", "optional": false } } ], "typeArguments": null } } ] }, "accessibility": null, "isOptional": false } ], "superClass": { "type": "Identifier", "span": { "start": 1521, "end": 1525, "ctxt": 0 }, "value": "Base", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] } ], "interpreter": null }