1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "ClassDeclaration", 6 "definition": { 7 "id": { 8 "type": "Identifier", 9 "name": "A", 10 "decorators": [], 11 "loc": { 12 "start": { 13 "line": 16, 14 "column": 7 15 }, 16 "end": { 17 "line": 16, 18 "column": 8 19 } 20 } 21 }, 22 "typeParameters": { 23 "type": "TSTypeParameterDeclaration", 24 "params": [ 25 { 26 "type": "TSTypeParameter", 27 "name": { 28 "type": "Identifier", 29 "name": "T", 30 "decorators": [], 31 "loc": { 32 "start": { 33 "line": 16, 34 "column": 9 35 }, 36 "end": { 37 "line": 16, 38 "column": 10 39 } 40 } 41 }, 42 "loc": { 43 "start": { 44 "line": 16, 45 "column": 9 46 }, 47 "end": { 48 "line": 16, 49 "column": 11 50 } 51 } 52 } 53 ], 54 "loc": { 55 "start": { 56 "line": 16, 57 "column": 8 58 }, 59 "end": { 60 "line": 16, 61 "column": 11 62 } 63 } 64 }, 65 "superClass": null, 66 "implements": [], 67 "body": [ 68 { 69 "type": "MethodDefinition", 70 "key": { 71 "type": "Identifier", 72 "name": "fn", 73 "decorators": [], 74 "loc": { 75 "start": { 76 "line": 17, 77 "column": 3 78 }, 79 "end": { 80 "line": 17, 81 "column": 5 82 } 83 } 84 }, 85 "kind": "method", 86 "accessibility": "public", 87 "static": false, 88 "optional": false, 89 "computed": false, 90 "value": { 91 "type": "FunctionExpression", 92 "function": { 93 "type": "ScriptFunction", 94 "id": { 95 "type": "Identifier", 96 "name": "fn", 97 "decorators": [], 98 "loc": { 99 "start": { 100 "line": 17, 101 "column": 3 102 }, 103 "end": { 104 "line": 17, 105 "column": 5 106 } 107 } 108 }, 109 "generator": false, 110 "async": false, 111 "expression": false, 112 "params": [ 113 { 114 "type": "ETSParameterExpression", 115 "name": { 116 "type": "Identifier", 117 "name": "t", 118 "typeAnnotation": { 119 "type": "ETSPrimitiveType", 120 "loc": { 121 "start": { 122 "line": 17, 123 "column": 9 124 }, 125 "end": { 126 "line": 17, 127 "column": 12 128 } 129 } 130 }, 131 "decorators": [], 132 "loc": { 133 "start": { 134 "line": 17, 135 "column": 6 136 }, 137 "end": { 138 "line": 17, 139 "column": 12 140 } 141 } 142 }, 143 "loc": { 144 "start": { 145 "line": 17, 146 "column": 6 147 }, 148 "end": { 149 "line": 17, 150 "column": 12 151 } 152 } 153 } 154 ], 155 "returnType": { 156 "type": "ETSPrimitiveType", 157 "loc": { 158 "start": { 159 "line": 17, 160 "column": 15 161 }, 162 "end": { 163 "line": 17, 164 "column": 18 165 } 166 } 167 }, 168 "body": { 169 "type": "BlockStatement", 170 "statements": [ 171 { 172 "type": "ReturnStatement", 173 "argument": { 174 "type": "Identifier", 175 "name": "t", 176 "decorators": [], 177 "loc": { 178 "start": { 179 "line": 17, 180 "column": 28 181 }, 182 "end": { 183 "line": 17, 184 "column": 29 185 } 186 } 187 }, 188 "loc": { 189 "start": { 190 "line": 17, 191 "column": 21 192 }, 193 "end": { 194 "line": 17, 195 "column": 30 196 } 197 } 198 } 199 ], 200 "loc": { 201 "start": { 202 "line": 17, 203 "column": 19 204 }, 205 "end": { 206 "line": 17, 207 "column": 32 208 } 209 } 210 }, 211 "loc": { 212 "start": { 213 "line": 17, 214 "column": 5 215 }, 216 "end": { 217 "line": 17, 218 "column": 32 219 } 220 } 221 }, 222 "loc": { 223 "start": { 224 "line": 17, 225 "column": 5 226 }, 227 "end": { 228 "line": 17, 229 "column": 32 230 } 231 } 232 }, 233 "overloads": [], 234 "decorators": [], 235 "loc": { 236 "start": { 237 "line": 17, 238 "column": 3 239 }, 240 "end": { 241 "line": 17, 242 "column": 32 243 } 244 } 245 }, 246 { 247 "type": "MethodDefinition", 248 "key": { 249 "type": "Identifier", 250 "name": "constructor", 251 "decorators": [], 252 "loc": { 253 "start": { 254 "line": 1, 255 "column": 1 256 }, 257 "end": { 258 "line": 1, 259 "column": 1 260 } 261 } 262 }, 263 "kind": "constructor", 264 "static": false, 265 "optional": false, 266 "computed": false, 267 "value": { 268 "type": "FunctionExpression", 269 "function": { 270 "type": "ScriptFunction", 271 "id": { 272 "type": "Identifier", 273 "name": "constructor", 274 "decorators": [], 275 "loc": { 276 "start": { 277 "line": 1, 278 "column": 1 279 }, 280 "end": { 281 "line": 1, 282 "column": 1 283 } 284 } 285 }, 286 "generator": false, 287 "async": false, 288 "expression": false, 289 "params": [], 290 "body": { 291 "type": "BlockStatement", 292 "statements": [], 293 "loc": { 294 "start": { 295 "line": 1, 296 "column": 1 297 }, 298 "end": { 299 "line": 1, 300 "column": 1 301 } 302 } 303 }, 304 "loc": { 305 "start": { 306 "line": 1, 307 "column": 1 308 }, 309 "end": { 310 "line": 1, 311 "column": 1 312 } 313 } 314 }, 315 "loc": { 316 "start": { 317 "line": 1, 318 "column": 1 319 }, 320 "end": { 321 "line": 1, 322 "column": 1 323 } 324 } 325 }, 326 "overloads": [], 327 "decorators": [], 328 "loc": { 329 "start": { 330 "line": 18, 331 "column": 2 332 }, 333 "end": { 334 "line": 18, 335 "column": 2 336 } 337 } 338 } 339 ], 340 "loc": { 341 "start": { 342 "line": 16, 343 "column": 12 344 }, 345 "end": { 346 "line": 18, 347 "column": 2 348 } 349 } 350 }, 351 "loc": { 352 "start": { 353 "line": 16, 354 "column": 1 355 }, 356 "end": { 357 "line": 18, 358 "column": 2 359 } 360 } 361 }, 362 { 363 "type": "ClassDeclaration", 364 "definition": { 365 "id": { 366 "type": "Identifier", 367 "name": "B", 368 "decorators": [], 369 "loc": { 370 "start": { 371 "line": 20, 372 "column": 7 373 }, 374 "end": { 375 "line": 20, 376 "column": 8 377 } 378 } 379 }, 380 "superClass": { 381 "type": "ETSTypeReference", 382 "part": { 383 "type": "ETSTypeReferencePart", 384 "name": { 385 "type": "Identifier", 386 "name": "A", 387 "decorators": [], 388 "loc": { 389 "start": { 390 "line": 20, 391 "column": 17 392 }, 393 "end": { 394 "line": 20, 395 "column": 18 396 } 397 } 398 }, 399 "typeParams": { 400 "type": "TSTypeParameterInstantiation", 401 "params": [ 402 { 403 "type": "ETSTypeReference", 404 "part": { 405 "type": "ETSTypeReferencePart", 406 "name": { 407 "type": "Identifier", 408 "name": "Object", 409 "decorators": [], 410 "loc": { 411 "start": { 412 "line": 20, 413 "column": 19 414 }, 415 "end": { 416 "line": 20, 417 "column": 25 418 } 419 } 420 }, 421 "loc": { 422 "start": { 423 "line": 20, 424 "column": 19 425 }, 426 "end": { 427 "line": 20, 428 "column": 26 429 } 430 } 431 }, 432 "loc": { 433 "start": { 434 "line": 20, 435 "column": 19 436 }, 437 "end": { 438 "line": 20, 439 "column": 26 440 } 441 } 442 } 443 ], 444 "loc": { 445 "start": { 446 "line": 20, 447 "column": 18 448 }, 449 "end": { 450 "line": 20, 451 "column": 26 452 } 453 } 454 }, 455 "loc": { 456 "start": { 457 "line": 20, 458 "column": 17 459 }, 460 "end": { 461 "line": 20, 462 "column": 28 463 } 464 } 465 }, 466 "loc": { 467 "start": { 468 "line": 20, 469 "column": 17 470 }, 471 "end": { 472 "line": 20, 473 "column": 28 474 } 475 } 476 }, 477 "implements": [], 478 "body": [ 479 { 480 "type": "MethodDefinition", 481 "key": { 482 "type": "Identifier", 483 "name": "fn", 484 "decorators": [], 485 "loc": { 486 "start": { 487 "line": 21, 488 "column": 12 489 }, 490 "end": { 491 "line": 21, 492 "column": 14 493 } 494 } 495 }, 496 "kind": "method", 497 "accessibility": "public", 498 "static": false, 499 "optional": false, 500 "computed": false, 501 "value": { 502 "type": "FunctionExpression", 503 "function": { 504 "type": "ScriptFunction", 505 "id": { 506 "type": "Identifier", 507 "name": "fn", 508 "decorators": [], 509 "loc": { 510 "start": { 511 "line": 21, 512 "column": 12 513 }, 514 "end": { 515 "line": 21, 516 "column": 14 517 } 518 } 519 }, 520 "generator": false, 521 "async": false, 522 "expression": false, 523 "params": [ 524 { 525 "type": "ETSParameterExpression", 526 "name": { 527 "type": "Identifier", 528 "name": "t", 529 "typeAnnotation": { 530 "type": "ETSPrimitiveType", 531 "loc": { 532 "start": { 533 "line": 21, 534 "column": 18 535 }, 536 "end": { 537 "line": 21, 538 "column": 21 539 } 540 } 541 }, 542 "decorators": [], 543 "loc": { 544 "start": { 545 "line": 21, 546 "column": 15 547 }, 548 "end": { 549 "line": 21, 550 "column": 21 551 } 552 } 553 }, 554 "loc": { 555 "start": { 556 "line": 21, 557 "column": 15 558 }, 559 "end": { 560 "line": 21, 561 "column": 21 562 } 563 } 564 } 565 ], 566 "returnType": { 567 "type": "ETSPrimitiveType", 568 "loc": { 569 "start": { 570 "line": 21, 571 "column": 24 572 }, 573 "end": { 574 "line": 21, 575 "column": 27 576 } 577 } 578 }, 579 "body": { 580 "type": "BlockStatement", 581 "statements": [ 582 { 583 "type": "ReturnStatement", 584 "argument": { 585 "type": "Identifier", 586 "name": "t", 587 "decorators": [], 588 "loc": { 589 "start": { 590 "line": 21, 591 "column": 37 592 }, 593 "end": { 594 "line": 21, 595 "column": 38 596 } 597 } 598 }, 599 "loc": { 600 "start": { 601 "line": 21, 602 "column": 30 603 }, 604 "end": { 605 "line": 21, 606 "column": 39 607 } 608 } 609 } 610 ], 611 "loc": { 612 "start": { 613 "line": 21, 614 "column": 28 615 }, 616 "end": { 617 "line": 21, 618 "column": 41 619 } 620 } 621 }, 622 "loc": { 623 "start": { 624 "line": 21, 625 "column": 14 626 }, 627 "end": { 628 "line": 21, 629 "column": 41 630 } 631 } 632 }, 633 "loc": { 634 "start": { 635 "line": 21, 636 "column": 14 637 }, 638 "end": { 639 "line": 21, 640 "column": 41 641 } 642 } 643 }, 644 "overloads": [], 645 "decorators": [], 646 "loc": { 647 "start": { 648 "line": 21, 649 "column": 3 650 }, 651 "end": { 652 "line": 21, 653 "column": 41 654 } 655 } 656 }, 657 { 658 "type": "MethodDefinition", 659 "key": { 660 "type": "Identifier", 661 "name": "constructor", 662 "decorators": [], 663 "loc": { 664 "start": { 665 "line": 1, 666 "column": 1 667 }, 668 "end": { 669 "line": 1, 670 "column": 1 671 } 672 } 673 }, 674 "kind": "constructor", 675 "static": false, 676 "optional": false, 677 "computed": false, 678 "value": { 679 "type": "FunctionExpression", 680 "function": { 681 "type": "ScriptFunction", 682 "id": { 683 "type": "Identifier", 684 "name": "constructor", 685 "decorators": [], 686 "loc": { 687 "start": { 688 "line": 1, 689 "column": 1 690 }, 691 "end": { 692 "line": 1, 693 "column": 1 694 } 695 } 696 }, 697 "generator": false, 698 "async": false, 699 "expression": false, 700 "params": [], 701 "body": { 702 "type": "BlockStatement", 703 "statements": [], 704 "loc": { 705 "start": { 706 "line": 1, 707 "column": 1 708 }, 709 "end": { 710 "line": 1, 711 "column": 1 712 } 713 } 714 }, 715 "loc": { 716 "start": { 717 "line": 1, 718 "column": 1 719 }, 720 "end": { 721 "line": 1, 722 "column": 1 723 } 724 } 725 }, 726 "loc": { 727 "start": { 728 "line": 1, 729 "column": 1 730 }, 731 "end": { 732 "line": 1, 733 "column": 1 734 } 735 } 736 }, 737 "overloads": [], 738 "decorators": [], 739 "loc": { 740 "start": { 741 "line": 22, 742 "column": 2 743 }, 744 "end": { 745 "line": 22, 746 "column": 2 747 } 748 } 749 } 750 ], 751 "loc": { 752 "start": { 753 "line": 20, 754 "column": 27 755 }, 756 "end": { 757 "line": 22, 758 "column": 2 759 } 760 } 761 }, 762 "loc": { 763 "start": { 764 "line": 20, 765 "column": 1 766 }, 767 "end": { 768 "line": 22, 769 "column": 2 770 } 771 } 772 }, 773 { 774 "type": "ClassDeclaration", 775 "definition": { 776 "id": { 777 "type": "Identifier", 778 "name": "ETSGLOBAL", 779 "decorators": [], 780 "loc": { 781 "start": { 782 "line": 1, 783 "column": 1 784 }, 785 "end": { 786 "line": 1, 787 "column": 1 788 } 789 } 790 }, 791 "superClass": null, 792 "implements": [], 793 "body": [ 794 { 795 "type": "MethodDefinition", 796 "key": { 797 "type": "Identifier", 798 "name": "_$init$_", 799 "decorators": [], 800 "loc": { 801 "start": { 802 "line": 1, 803 "column": 1 804 }, 805 "end": { 806 "line": 1, 807 "column": 1 808 } 809 } 810 }, 811 "kind": "method", 812 "accessibility": "public", 813 "static": true, 814 "optional": false, 815 "computed": false, 816 "value": { 817 "type": "FunctionExpression", 818 "function": { 819 "type": "ScriptFunction", 820 "id": { 821 "type": "Identifier", 822 "name": "_$init$_", 823 "decorators": [], 824 "loc": { 825 "start": { 826 "line": 1, 827 "column": 1 828 }, 829 "end": { 830 "line": 1, 831 "column": 1 832 } 833 } 834 }, 835 "generator": false, 836 "async": false, 837 "expression": false, 838 "params": [], 839 "body": { 840 "type": "BlockStatement", 841 "statements": [], 842 "loc": { 843 "start": { 844 "line": 1, 845 "column": 1 846 }, 847 "end": { 848 "line": 1, 849 "column": 1 850 } 851 } 852 }, 853 "loc": { 854 "start": { 855 "line": 1, 856 "column": 1 857 }, 858 "end": { 859 "line": 1, 860 "column": 1 861 } 862 } 863 }, 864 "loc": { 865 "start": { 866 "line": 1, 867 "column": 1 868 }, 869 "end": { 870 "line": 1, 871 "column": 1 872 } 873 } 874 }, 875 "overloads": [], 876 "decorators": [], 877 "loc": { 878 "start": { 879 "line": 1, 880 "column": 1 881 }, 882 "end": { 883 "line": 1, 884 "column": 1 885 } 886 } 887 } 888 ], 889 "loc": { 890 "start": { 891 "line": 1, 892 "column": 1 893 }, 894 "end": { 895 "line": 1, 896 "column": 1 897 } 898 } 899 }, 900 "loc": { 901 "start": { 902 "line": 1, 903 "column": 1 904 }, 905 "end": { 906 "line": 1, 907 "column": 1 908 } 909 } 910 } 911 ], 912 "loc": { 913 "start": { 914 "line": 1, 915 "column": 1 916 }, 917 "end": { 918 "line": 23, 919 "column": 1 920 } 921 } 922} 923