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