{ "type": "Script", "span": { "start": 51, "end": 641, "ctxt": 0 }, "body": [ { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 57, "end": 58, "ctxt": 0 }, "value": "B", "optional": false }, "declare": false, "span": { "start": 51, "end": 109, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 65, "end": 83, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 65, "end": 68, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 70, "end": 79, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 70, "end": 79, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 71, "end": 79, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 73, "end": 79, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 65, "end": 83, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 81, "end": 83, "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": 88, "end": 107, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 88, "end": 92, "ctxt": 0 }, "value": "fooo", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 94, "end": 103, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 94, "end": 103, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 95, "end": 103, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 97, "end": 103, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 88, "end": 107, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 105, "end": 107, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 117, "end": 118, "ctxt": 0 }, "value": "D", "optional": false }, "declare": false, "span": { "start": 111, "end": 221, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 135, "end": 162, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 144, "end": 147, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 149, "end": 158, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 149, "end": 158, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 150, "end": 158, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 152, "end": 158, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 135, "end": 162, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 160, "end": 162, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": true }, { "type": "ClassMethod", "span": { "start": 168, "end": 187, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 168, "end": 172, "ctxt": 0 }, "value": "fooo", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 174, "end": 183, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 174, "end": 183, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 175, "end": 183, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 177, "end": 183, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 168, "end": 187, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 185, "end": 187, "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": 193, "end": 219, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 202, "end": 205, "ctxt": 0 }, "value": "bar", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 206, "end": 215, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 206, "end": 215, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 207, "end": 215, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 209, "end": 215, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 193, "end": 219, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 217, "end": 219, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": true } ], "superClass": { "type": "Identifier", "span": { "start": 127, "end": 128, "ctxt": 0 }, "value": "B", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 229, "end": 230, "ctxt": 0 }, "value": "C", "optional": false }, "declare": false, "span": { "start": 223, "end": 265, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 237, "end": 263, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 246, "end": 249, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 250, "end": 259, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 250, "end": 259, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 251, "end": 259, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 253, "end": 259, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 237, "end": 263, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 261, "end": 263, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 276, "end": 277, "ctxt": 0 }, "value": "f", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 267, "end": 428, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 281, "end": 428, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 287, "end": 426, "ctxt": 0 }, "argument": { "type": "ClassExpression", "identifier": null, "span": { "start": 294, "end": 426, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 320, "end": 347, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 329, "end": 332, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 334, "end": 343, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 334, "end": 343, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 335, "end": 343, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 337, "end": 343, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 320, "end": 347, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 345, "end": 347, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": true }, { "type": "ClassMethod", "span": { "start": 361, "end": 380, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 361, "end": 365, "ctxt": 0 }, "value": "fooo", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 367, "end": 376, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 367, "end": 376, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 368, "end": 376, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 370, "end": 376, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 361, "end": 380, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 378, "end": 380, "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": 394, "end": 420, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 403, "end": 406, "ctxt": 0 }, "value": "bar", "optional": false }, "function": { "params": [ { "type": "Parameter", "span": { "start": 407, "end": 416, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 407, "end": 416, "ctxt": 0 }, "value": "v", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 408, "end": 416, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 410, "end": 416, "ctxt": 0 }, "kind": "string" } } } } ], "decorators": [], "span": { "start": 394, "end": 420, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 418, "end": 420, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": true } ], "superClass": { "type": "Identifier", "span": { "start": 308, "end": 309, "ctxt": 0 }, "value": "B", "optional": false }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "ClassDeclaration", "identifier": { "type": "Identifier", "span": { "start": 436, "end": 437, "ctxt": 0 }, "value": "E", "optional": false }, "declare": false, "span": { "start": 430, "end": 569, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 494, "end": 513, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 503, "end": 506, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 494, "end": 513, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 510, "end": 513, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": true }, { "type": "ClassMethod", "span": { "start": 518, "end": 528, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 518, "end": 521, "ctxt": 0 }, "value": "bar", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 518, "end": 528, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 525, "end": 528, "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": 534, "end": 542, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 534, "end": 537, "ctxt": 0 }, "value": "baz", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 534, "end": 542, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 540, "end": 542, "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": 548, "end": 567, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 557, "end": 561, "ctxt": 0 }, "value": "bazz", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 548, "end": 567, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 565, "end": 567, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": true } ], "superClass": { "type": "ParenthesisExpression", "span": { "start": 446, "end": 487, "ctxt": 0 }, "expression": { "type": "ClassExpression", "identifier": null, "span": { "start": 447, "end": 486, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 459, "end": 469, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 459, "end": 462, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 459, "end": 469, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 466, "end": 469, "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": 474, "end": 484, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 474, "end": 477, "ctxt": 0 }, "value": "bar", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 474, "end": 484, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 481, "end": 484, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] } }, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 580, "end": 582, "ctxt": 0 }, "value": "ff", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 571, "end": 641, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 586, "end": 641, "ctxt": 0 }, "stmts": [ { "type": "ReturnStatement", "span": { "start": 592, "end": 639, "ctxt": 0 }, "argument": { "type": "ClassExpression", "identifier": null, "span": { "start": 599, "end": 639, "ctxt": 0 }, "decorators": [], "body": [ { "type": "ClassMethod", "span": { "start": 615, "end": 633, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 624, "end": 627, "ctxt": 0 }, "value": "foo", "optional": false }, "function": { "params": [], "decorators": [], "span": { "start": 615, "end": 633, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 631, "end": 633, "ctxt": 0 }, "stmts": [] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, "kind": "method", "isStatic": false, "accessibility": null, "isAbstract": false, "isOptional": false, "isOverride": false } ], "superClass": null, "isAbstract": false, "typeParams": null, "superTypeParams": null, "implements": [] } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null } ], "interpreter": null }