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