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