1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "ClassDeclaration", 6 "definition": { 7 "id": { 8 "type": "Identifier", 9 "name": "B", 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": "foo", 73 "decorators": [], 74 "loc": { 75 "start": { 76 "line": 17, 77 "column": 3 78 }, 79 "end": { 80 "line": 17, 81 "column": 6 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": "foo", 97 "decorators": [], 98 "loc": { 99 "start": { 100 "line": 17, 101 "column": 3 102 }, 103 "end": { 104 "line": 17, 105 "column": 6 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": "a", 118 "typeAnnotation": { 119 "type": "ETSTypeReference", 120 "part": { 121 "type": "ETSTypeReferencePart", 122 "name": { 123 "type": "Identifier", 124 "name": "T", 125 "decorators": [], 126 "loc": { 127 "start": { 128 "line": 17, 129 "column": 10 130 }, 131 "end": { 132 "line": 17, 133 "column": 11 134 } 135 } 136 }, 137 "loc": { 138 "start": { 139 "line": 17, 140 "column": 10 141 }, 142 "end": { 143 "line": 17, 144 "column": 12 145 } 146 } 147 }, 148 "loc": { 149 "start": { 150 "line": 17, 151 "column": 10 152 }, 153 "end": { 154 "line": 17, 155 "column": 12 156 } 157 } 158 }, 159 "decorators": [], 160 "loc": { 161 "start": { 162 "line": 17, 163 "column": 7 164 }, 165 "end": { 166 "line": 17, 167 "column": 12 168 } 169 } 170 }, 171 "loc": { 172 "start": { 173 "line": 17, 174 "column": 7 175 }, 176 "end": { 177 "line": 17, 178 "column": 12 179 } 180 } 181 }, 182 { 183 "type": "ETSParameterExpression", 184 "name": { 185 "type": "Identifier", 186 "name": "op", 187 "typeAnnotation": { 188 "type": "ETSUnionType", 189 "types": [ 190 { 191 "type": "ETSTypeReference", 192 "part": { 193 "type": "ETSTypeReferencePart", 194 "name": { 195 "type": "Identifier", 196 "name": "T", 197 "decorators": [], 198 "loc": { 199 "start": { 200 "line": 17, 201 "column": 18 202 }, 203 "end": { 204 "line": 17, 205 "column": 19 206 } 207 } 208 }, 209 "loc": { 210 "start": { 211 "line": 17, 212 "column": 18 213 }, 214 "end": { 215 "line": 17, 216 "column": 20 217 } 218 } 219 }, 220 "loc": { 221 "start": { 222 "line": 17, 223 "column": 18 224 }, 225 "end": { 226 "line": 17, 227 "column": 20 228 } 229 } 230 }, 231 { 232 "type": "ETSUndefinedType", 233 "loc": { 234 "start": { 235 "line": 17, 236 "column": 15 237 }, 238 "end": { 239 "line": 17, 240 "column": 16 241 } 242 } 243 } 244 ], 245 "loc": { 246 "start": { 247 "line": 17, 248 "column": 18 249 }, 250 "end": { 251 "line": 17, 252 "column": 20 253 } 254 } 255 }, 256 "decorators": [], 257 "loc": { 258 "start": { 259 "line": 17, 260 "column": 13 261 }, 262 "end": { 263 "line": 17, 264 "column": 20 265 } 266 } 267 }, 268 "loc": { 269 "start": { 270 "line": 17, 271 "column": 13 272 }, 273 "end": { 274 "line": 17, 275 "column": 20 276 } 277 } 278 } 279 ], 280 "returnType": { 281 "type": "ETSTypeReference", 282 "part": { 283 "type": "ETSTypeReferencePart", 284 "name": { 285 "type": "Identifier", 286 "name": "T", 287 "decorators": [], 288 "loc": { 289 "start": { 290 "line": 17, 291 "column": 22 292 }, 293 "end": { 294 "line": 17, 295 "column": 23 296 } 297 } 298 }, 299 "loc": { 300 "start": { 301 "line": 17, 302 "column": 22 303 }, 304 "end": { 305 "line": 17, 306 "column": 25 307 } 308 } 309 }, 310 "loc": { 311 "start": { 312 "line": 17, 313 "column": 22 314 }, 315 "end": { 316 "line": 17, 317 "column": 25 318 } 319 } 320 }, 321 "body": { 322 "type": "BlockStatement", 323 "statements": [ 324 { 325 "type": "ReturnStatement", 326 "argument": { 327 "type": "Identifier", 328 "name": "a", 329 "decorators": [], 330 "loc": { 331 "start": { 332 "line": 17, 333 "column": 33 334 }, 335 "end": { 336 "line": 17, 337 "column": 34 338 } 339 } 340 }, 341 "loc": { 342 "start": { 343 "line": 17, 344 "column": 26 345 }, 346 "end": { 347 "line": 17, 348 "column": 34 349 } 350 } 351 } 352 ], 353 "loc": { 354 "start": { 355 "line": 17, 356 "column": 24 357 }, 358 "end": { 359 "line": 17, 360 "column": 36 361 } 362 } 363 }, 364 "loc": { 365 "start": { 366 "line": 17, 367 "column": 6 368 }, 369 "end": { 370 "line": 17, 371 "column": 36 372 } 373 } 374 }, 375 "loc": { 376 "start": { 377 "line": 17, 378 "column": 6 379 }, 380 "end": { 381 "line": 17, 382 "column": 36 383 } 384 } 385 }, 386 "overloads": [ 387 { 388 "type": "MethodDefinition", 389 "key": { 390 "type": "Identifier", 391 "name": "foo", 392 "decorators": [], 393 "loc": { 394 "start": { 395 "line": 17, 396 "column": 3 397 }, 398 "end": { 399 "line": 17, 400 "column": 6 401 } 402 } 403 }, 404 "kind": "method", 405 "accessibility": "public", 406 "static": false, 407 "optional": false, 408 "computed": false, 409 "value": { 410 "type": "FunctionExpression", 411 "function": { 412 "type": "ScriptFunction", 413 "id": { 414 "type": "Identifier", 415 "name": "foo", 416 "decorators": [], 417 "loc": { 418 "start": { 419 "line": 17, 420 "column": 3 421 }, 422 "end": { 423 "line": 17, 424 "column": 6 425 } 426 } 427 }, 428 "generator": false, 429 "async": false, 430 "expression": false, 431 "params": [ 432 { 433 "type": "ETSParameterExpression", 434 "name": { 435 "type": "Identifier", 436 "name": "a", 437 "typeAnnotation": { 438 "type": "ETSTypeReference", 439 "part": { 440 "type": "ETSTypeReferencePart", 441 "name": { 442 "type": "Identifier", 443 "name": "T", 444 "decorators": [], 445 "loc": { 446 "start": { 447 "line": 17, 448 "column": 10 449 }, 450 "end": { 451 "line": 17, 452 "column": 11 453 } 454 } 455 }, 456 "loc": { 457 "start": { 458 "line": 17, 459 "column": 10 460 }, 461 "end": { 462 "line": 17, 463 "column": 12 464 } 465 } 466 }, 467 "loc": { 468 "start": { 469 "line": 17, 470 "column": 10 471 }, 472 "end": { 473 "line": 17, 474 "column": 12 475 } 476 } 477 }, 478 "decorators": [], 479 "loc": { 480 "start": { 481 "line": 17, 482 "column": 7 483 }, 484 "end": { 485 "line": 17, 486 "column": 12 487 } 488 } 489 }, 490 "loc": { 491 "start": { 492 "line": 1, 493 "column": 1 494 }, 495 "end": { 496 "line": 1, 497 "column": 1 498 } 499 } 500 } 501 ], 502 "returnType": { 503 "type": "ETSTypeReference", 504 "part": { 505 "type": "ETSTypeReferencePart", 506 "name": { 507 "type": "Identifier", 508 "name": "T", 509 "decorators": [], 510 "loc": { 511 "start": { 512 "line": 17, 513 "column": 22 514 }, 515 "end": { 516 "line": 17, 517 "column": 23 518 } 519 } 520 }, 521 "loc": { 522 "start": { 523 "line": 17, 524 "column": 22 525 }, 526 "end": { 527 "line": 17, 528 "column": 25 529 } 530 } 531 }, 532 "loc": { 533 "start": { 534 "line": 17, 535 "column": 22 536 }, 537 "end": { 538 "line": 17, 539 "column": 25 540 } 541 } 542 }, 543 "body": { 544 "type": "BlockStatement", 545 "statements": [ 546 { 547 "type": "ReturnStatement", 548 "argument": { 549 "type": "CallExpression", 550 "callee": { 551 "type": "MemberExpression", 552 "object": { 553 "type": "ThisExpression", 554 "loc": { 555 "start": { 556 "line": 1, 557 "column": 1 558 }, 559 "end": { 560 "line": 1, 561 "column": 1 562 } 563 } 564 }, 565 "property": { 566 "type": "Identifier", 567 "name": "foo", 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 "computed": false, 581 "optional": false, 582 "loc": { 583 "start": { 584 "line": 1, 585 "column": 1 586 }, 587 "end": { 588 "line": 1, 589 "column": 1 590 } 591 } 592 }, 593 "arguments": [ 594 { 595 "type": "Identifier", 596 "name": "a", 597 "typeAnnotation": { 598 "type": "ETSTypeReference", 599 "part": { 600 "type": "ETSTypeReferencePart", 601 "name": { 602 "type": "Identifier", 603 "name": "T", 604 "decorators": [], 605 "loc": { 606 "start": { 607 "line": 17, 608 "column": 10 609 }, 610 "end": { 611 "line": 17, 612 "column": 11 613 } 614 } 615 }, 616 "loc": { 617 "start": { 618 "line": 17, 619 "column": 10 620 }, 621 "end": { 622 "line": 17, 623 "column": 12 624 } 625 } 626 }, 627 "loc": { 628 "start": { 629 "line": 17, 630 "column": 10 631 }, 632 "end": { 633 "line": 17, 634 "column": 12 635 } 636 } 637 }, 638 "decorators": [], 639 "loc": { 640 "start": { 641 "line": 17, 642 "column": 7 643 }, 644 "end": { 645 "line": 17, 646 "column": 12 647 } 648 } 649 }, 650 { 651 "type": "UndefinedLiteral", 652 "value": undefined, 653 "loc": { 654 "start": { 655 "line": 1, 656 "column": 1 657 }, 658 "end": { 659 "line": 1, 660 "column": 1 661 } 662 } 663 } 664 ], 665 "optional": false, 666 "loc": { 667 "start": { 668 "line": 1, 669 "column": 1 670 }, 671 "end": { 672 "line": 1, 673 "column": 1 674 } 675 } 676 }, 677 "loc": { 678 "start": { 679 "line": 1, 680 "column": 1 681 }, 682 "end": { 683 "line": 1, 684 "column": 1 685 } 686 } 687 } 688 ], 689 "loc": { 690 "start": { 691 "line": 1, 692 "column": 1 693 }, 694 "end": { 695 "line": 1, 696 "column": 1 697 } 698 } 699 }, 700 "loc": { 701 "start": { 702 "line": 621, 703 "column": 1 704 }, 705 "end": { 706 "line": 621, 707 "column": 1 708 } 709 } 710 }, 711 "loc": { 712 "start": { 713 "line": 1, 714 "column": 1 715 }, 716 "end": { 717 "line": 1, 718 "column": 1 719 } 720 } 721 }, 722 "overloads": [], 723 "decorators": [], 724 "loc": { 725 "start": { 726 "line": 1, 727 "column": 1 728 }, 729 "end": { 730 "line": 1, 731 "column": 1 732 } 733 } 734 } 735 ], 736 "decorators": [], 737 "loc": { 738 "start": { 739 "line": 17, 740 "column": 3 741 }, 742 "end": { 743 "line": 17, 744 "column": 36 745 } 746 } 747 }, 748 { 749 "type": "MethodDefinition", 750 "key": { 751 "type": "Identifier", 752 "name": "constructor", 753 "decorators": [], 754 "loc": { 755 "start": { 756 "line": 1, 757 "column": 1 758 }, 759 "end": { 760 "line": 1, 761 "column": 1 762 } 763 } 764 }, 765 "kind": "constructor", 766 "static": false, 767 "optional": false, 768 "computed": false, 769 "value": { 770 "type": "FunctionExpression", 771 "function": { 772 "type": "ScriptFunction", 773 "id": { 774 "type": "Identifier", 775 "name": "constructor", 776 "decorators": [], 777 "loc": { 778 "start": { 779 "line": 1, 780 "column": 1 781 }, 782 "end": { 783 "line": 1, 784 "column": 1 785 } 786 } 787 }, 788 "generator": false, 789 "async": false, 790 "expression": false, 791 "params": [], 792 "body": { 793 "type": "BlockStatement", 794 "statements": [], 795 "loc": { 796 "start": { 797 "line": 1, 798 "column": 1 799 }, 800 "end": { 801 "line": 1, 802 "column": 1 803 } 804 } 805 }, 806 "loc": { 807 "start": { 808 "line": 1, 809 "column": 1 810 }, 811 "end": { 812 "line": 1, 813 "column": 1 814 } 815 } 816 }, 817 "loc": { 818 "start": { 819 "line": 1, 820 "column": 1 821 }, 822 "end": { 823 "line": 1, 824 "column": 1 825 } 826 } 827 }, 828 "overloads": [], 829 "decorators": [], 830 "loc": { 831 "start": { 832 "line": 18, 833 "column": 2 834 }, 835 "end": { 836 "line": 18, 837 "column": 2 838 } 839 } 840 } 841 ], 842 "loc": { 843 "start": { 844 "line": 16, 845 "column": 12 846 }, 847 "end": { 848 "line": 18, 849 "column": 2 850 } 851 } 852 }, 853 "loc": { 854 "start": { 855 "line": 16, 856 "column": 1 857 }, 858 "end": { 859 "line": 18, 860 "column": 2 861 } 862 } 863 }, 864 { 865 "type": "ClassDeclaration", 866 "definition": { 867 "id": { 868 "type": "Identifier", 869 "name": "A", 870 "decorators": [], 871 "loc": { 872 "start": { 873 "line": 19, 874 "column": 7 875 }, 876 "end": { 877 "line": 19, 878 "column": 8 879 } 880 } 881 }, 882 "typeParameters": { 883 "type": "TSTypeParameterDeclaration", 884 "params": [ 885 { 886 "type": "TSTypeParameter", 887 "name": { 888 "type": "Identifier", 889 "name": "T", 890 "decorators": [], 891 "loc": { 892 "start": { 893 "line": 19, 894 "column": 9 895 }, 896 "end": { 897 "line": 19, 898 "column": 10 899 } 900 } 901 }, 902 "loc": { 903 "start": { 904 "line": 19, 905 "column": 9 906 }, 907 "end": { 908 "line": 19, 909 "column": 11 910 } 911 } 912 } 913 ], 914 "loc": { 915 "start": { 916 "line": 19, 917 "column": 8 918 }, 919 "end": { 920 "line": 19, 921 "column": 11 922 } 923 } 924 }, 925 "superClass": { 926 "type": "ETSTypeReference", 927 "part": { 928 "type": "ETSTypeReferencePart", 929 "name": { 930 "type": "Identifier", 931 "name": "B", 932 "decorators": [], 933 "loc": { 934 "start": { 935 "line": 19, 936 "column": 20 937 }, 938 "end": { 939 "line": 19, 940 "column": 21 941 } 942 } 943 }, 944 "typeParams": { 945 "type": "TSTypeParameterInstantiation", 946 "params": [ 947 { 948 "type": "ETSTypeReference", 949 "part": { 950 "type": "ETSTypeReferencePart", 951 "name": { 952 "type": "Identifier", 953 "name": "T", 954 "decorators": [], 955 "loc": { 956 "start": { 957 "line": 19, 958 "column": 22 959 }, 960 "end": { 961 "line": 19, 962 "column": 23 963 } 964 } 965 }, 966 "loc": { 967 "start": { 968 "line": 19, 969 "column": 22 970 }, 971 "end": { 972 "line": 19, 973 "column": 24 974 } 975 } 976 }, 977 "loc": { 978 "start": { 979 "line": 19, 980 "column": 22 981 }, 982 "end": { 983 "line": 19, 984 "column": 24 985 } 986 } 987 } 988 ], 989 "loc": { 990 "start": { 991 "line": 19, 992 "column": 21 993 }, 994 "end": { 995 "line": 19, 996 "column": 24 997 } 998 } 999 }, 1000 "loc": { 1001 "start": { 1002 "line": 19, 1003 "column": 20 1004 }, 1005 "end": { 1006 "line": 19, 1007 "column": 26 1008 } 1009 } 1010 }, 1011 "loc": { 1012 "start": { 1013 "line": 19, 1014 "column": 20 1015 }, 1016 "end": { 1017 "line": 19, 1018 "column": 26 1019 } 1020 } 1021 }, 1022 "implements": [], 1023 "body": [ 1024 { 1025 "type": "MethodDefinition", 1026 "key": { 1027 "type": "Identifier", 1028 "name": "foo", 1029 "decorators": [], 1030 "loc": { 1031 "start": { 1032 "line": 20, 1033 "column": 12 1034 }, 1035 "end": { 1036 "line": 20, 1037 "column": 15 1038 } 1039 } 1040 }, 1041 "kind": "method", 1042 "accessibility": "public", 1043 "static": false, 1044 "optional": false, 1045 "computed": false, 1046 "value": { 1047 "type": "FunctionExpression", 1048 "function": { 1049 "type": "ScriptFunction", 1050 "id": { 1051 "type": "Identifier", 1052 "name": "foo", 1053 "decorators": [], 1054 "loc": { 1055 "start": { 1056 "line": 20, 1057 "column": 12 1058 }, 1059 "end": { 1060 "line": 20, 1061 "column": 15 1062 } 1063 } 1064 }, 1065 "generator": false, 1066 "async": false, 1067 "expression": false, 1068 "params": [ 1069 { 1070 "type": "ETSParameterExpression", 1071 "name": { 1072 "type": "Identifier", 1073 "name": "a", 1074 "typeAnnotation": { 1075 "type": "ETSTypeReference", 1076 "part": { 1077 "type": "ETSTypeReferencePart", 1078 "name": { 1079 "type": "Identifier", 1080 "name": "T", 1081 "decorators": [], 1082 "loc": { 1083 "start": { 1084 "line": 20, 1085 "column": 19 1086 }, 1087 "end": { 1088 "line": 20, 1089 "column": 20 1090 } 1091 } 1092 }, 1093 "loc": { 1094 "start": { 1095 "line": 20, 1096 "column": 19 1097 }, 1098 "end": { 1099 "line": 20, 1100 "column": 21 1101 } 1102 } 1103 }, 1104 "loc": { 1105 "start": { 1106 "line": 20, 1107 "column": 19 1108 }, 1109 "end": { 1110 "line": 20, 1111 "column": 21 1112 } 1113 } 1114 }, 1115 "decorators": [], 1116 "loc": { 1117 "start": { 1118 "line": 20, 1119 "column": 16 1120 }, 1121 "end": { 1122 "line": 20, 1123 "column": 21 1124 } 1125 } 1126 }, 1127 "loc": { 1128 "start": { 1129 "line": 20, 1130 "column": 16 1131 }, 1132 "end": { 1133 "line": 20, 1134 "column": 21 1135 } 1136 } 1137 }, 1138 { 1139 "type": "ETSParameterExpression", 1140 "name": { 1141 "type": "Identifier", 1142 "name": "op", 1143 "typeAnnotation": { 1144 "type": "ETSUnionType", 1145 "types": [ 1146 { 1147 "type": "ETSTypeReference", 1148 "part": { 1149 "type": "ETSTypeReferencePart", 1150 "name": { 1151 "type": "Identifier", 1152 "name": "T", 1153 "decorators": [], 1154 "loc": { 1155 "start": { 1156 "line": 20, 1157 "column": 27 1158 }, 1159 "end": { 1160 "line": 20, 1161 "column": 28 1162 } 1163 } 1164 }, 1165 "loc": { 1166 "start": { 1167 "line": 20, 1168 "column": 27 1169 }, 1170 "end": { 1171 "line": 20, 1172 "column": 29 1173 } 1174 } 1175 }, 1176 "loc": { 1177 "start": { 1178 "line": 20, 1179 "column": 27 1180 }, 1181 "end": { 1182 "line": 20, 1183 "column": 29 1184 } 1185 } 1186 }, 1187 { 1188 "type": "ETSUndefinedType", 1189 "loc": { 1190 "start": { 1191 "line": 20, 1192 "column": 24 1193 }, 1194 "end": { 1195 "line": 20, 1196 "column": 25 1197 } 1198 } 1199 } 1200 ], 1201 "loc": { 1202 "start": { 1203 "line": 20, 1204 "column": 27 1205 }, 1206 "end": { 1207 "line": 20, 1208 "column": 29 1209 } 1210 } 1211 }, 1212 "decorators": [], 1213 "loc": { 1214 "start": { 1215 "line": 20, 1216 "column": 22 1217 }, 1218 "end": { 1219 "line": 20, 1220 "column": 29 1221 } 1222 } 1223 }, 1224 "loc": { 1225 "start": { 1226 "line": 20, 1227 "column": 22 1228 }, 1229 "end": { 1230 "line": 20, 1231 "column": 29 1232 } 1233 } 1234 } 1235 ], 1236 "returnType": { 1237 "type": "ETSTypeReference", 1238 "part": { 1239 "type": "ETSTypeReferencePart", 1240 "name": { 1241 "type": "Identifier", 1242 "name": "T", 1243 "decorators": [], 1244 "loc": { 1245 "start": { 1246 "line": 20, 1247 "column": 31 1248 }, 1249 "end": { 1250 "line": 20, 1251 "column": 32 1252 } 1253 } 1254 }, 1255 "loc": { 1256 "start": { 1257 "line": 20, 1258 "column": 31 1259 }, 1260 "end": { 1261 "line": 20, 1262 "column": 34 1263 } 1264 } 1265 }, 1266 "loc": { 1267 "start": { 1268 "line": 20, 1269 "column": 31 1270 }, 1271 "end": { 1272 "line": 20, 1273 "column": 34 1274 } 1275 } 1276 }, 1277 "body": { 1278 "type": "BlockStatement", 1279 "statements": [ 1280 { 1281 "type": "ReturnStatement", 1282 "argument": { 1283 "type": "Identifier", 1284 "name": "a", 1285 "decorators": [], 1286 "loc": { 1287 "start": { 1288 "line": 20, 1289 "column": 42 1290 }, 1291 "end": { 1292 "line": 20, 1293 "column": 43 1294 } 1295 } 1296 }, 1297 "loc": { 1298 "start": { 1299 "line": 20, 1300 "column": 35 1301 }, 1302 "end": { 1303 "line": 20, 1304 "column": 43 1305 } 1306 } 1307 } 1308 ], 1309 "loc": { 1310 "start": { 1311 "line": 20, 1312 "column": 33 1313 }, 1314 "end": { 1315 "line": 20, 1316 "column": 45 1317 } 1318 } 1319 }, 1320 "loc": { 1321 "start": { 1322 "line": 20, 1323 "column": 15 1324 }, 1325 "end": { 1326 "line": 20, 1327 "column": 45 1328 } 1329 } 1330 }, 1331 "loc": { 1332 "start": { 1333 "line": 20, 1334 "column": 15 1335 }, 1336 "end": { 1337 "line": 20, 1338 "column": 45 1339 } 1340 } 1341 }, 1342 "overloads": [ 1343 { 1344 "type": "MethodDefinition", 1345 "key": { 1346 "type": "Identifier", 1347 "name": "foo", 1348 "decorators": [], 1349 "loc": { 1350 "start": { 1351 "line": 20, 1352 "column": 12 1353 }, 1354 "end": { 1355 "line": 20, 1356 "column": 15 1357 } 1358 } 1359 }, 1360 "kind": "method", 1361 "accessibility": "public", 1362 "static": false, 1363 "optional": false, 1364 "computed": false, 1365 "value": { 1366 "type": "FunctionExpression", 1367 "function": { 1368 "type": "ScriptFunction", 1369 "id": { 1370 "type": "Identifier", 1371 "name": "foo", 1372 "decorators": [], 1373 "loc": { 1374 "start": { 1375 "line": 20, 1376 "column": 12 1377 }, 1378 "end": { 1379 "line": 20, 1380 "column": 15 1381 } 1382 } 1383 }, 1384 "generator": false, 1385 "async": false, 1386 "expression": false, 1387 "params": [ 1388 { 1389 "type": "ETSParameterExpression", 1390 "name": { 1391 "type": "Identifier", 1392 "name": "a", 1393 "typeAnnotation": { 1394 "type": "ETSTypeReference", 1395 "part": { 1396 "type": "ETSTypeReferencePart", 1397 "name": { 1398 "type": "Identifier", 1399 "name": "T", 1400 "decorators": [], 1401 "loc": { 1402 "start": { 1403 "line": 20, 1404 "column": 19 1405 }, 1406 "end": { 1407 "line": 20, 1408 "column": 20 1409 } 1410 } 1411 }, 1412 "loc": { 1413 "start": { 1414 "line": 20, 1415 "column": 19 1416 }, 1417 "end": { 1418 "line": 20, 1419 "column": 21 1420 } 1421 } 1422 }, 1423 "loc": { 1424 "start": { 1425 "line": 20, 1426 "column": 19 1427 }, 1428 "end": { 1429 "line": 20, 1430 "column": 21 1431 } 1432 } 1433 }, 1434 "decorators": [], 1435 "loc": { 1436 "start": { 1437 "line": 20, 1438 "column": 16 1439 }, 1440 "end": { 1441 "line": 20, 1442 "column": 21 1443 } 1444 } 1445 }, 1446 "loc": { 1447 "start": { 1448 "line": 1, 1449 "column": 1 1450 }, 1451 "end": { 1452 "line": 1, 1453 "column": 1 1454 } 1455 } 1456 } 1457 ], 1458 "returnType": { 1459 "type": "ETSTypeReference", 1460 "part": { 1461 "type": "ETSTypeReferencePart", 1462 "name": { 1463 "type": "Identifier", 1464 "name": "T", 1465 "decorators": [], 1466 "loc": { 1467 "start": { 1468 "line": 20, 1469 "column": 31 1470 }, 1471 "end": { 1472 "line": 20, 1473 "column": 32 1474 } 1475 } 1476 }, 1477 "loc": { 1478 "start": { 1479 "line": 20, 1480 "column": 31 1481 }, 1482 "end": { 1483 "line": 20, 1484 "column": 34 1485 } 1486 } 1487 }, 1488 "loc": { 1489 "start": { 1490 "line": 20, 1491 "column": 31 1492 }, 1493 "end": { 1494 "line": 20, 1495 "column": 34 1496 } 1497 } 1498 }, 1499 "body": { 1500 "type": "BlockStatement", 1501 "statements": [ 1502 { 1503 "type": "ReturnStatement", 1504 "argument": { 1505 "type": "CallExpression", 1506 "callee": { 1507 "type": "MemberExpression", 1508 "object": { 1509 "type": "ThisExpression", 1510 "loc": { 1511 "start": { 1512 "line": 1, 1513 "column": 1 1514 }, 1515 "end": { 1516 "line": 1, 1517 "column": 1 1518 } 1519 } 1520 }, 1521 "property": { 1522 "type": "Identifier", 1523 "name": "foo", 1524 "decorators": [], 1525 "loc": { 1526 "start": { 1527 "line": 1, 1528 "column": 1 1529 }, 1530 "end": { 1531 "line": 1, 1532 "column": 1 1533 } 1534 } 1535 }, 1536 "computed": false, 1537 "optional": false, 1538 "loc": { 1539 "start": { 1540 "line": 1, 1541 "column": 1 1542 }, 1543 "end": { 1544 "line": 1, 1545 "column": 1 1546 } 1547 } 1548 }, 1549 "arguments": [ 1550 { 1551 "type": "Identifier", 1552 "name": "a", 1553 "typeAnnotation": { 1554 "type": "ETSTypeReference", 1555 "part": { 1556 "type": "ETSTypeReferencePart", 1557 "name": { 1558 "type": "Identifier", 1559 "name": "T", 1560 "decorators": [], 1561 "loc": { 1562 "start": { 1563 "line": 20, 1564 "column": 19 1565 }, 1566 "end": { 1567 "line": 20, 1568 "column": 20 1569 } 1570 } 1571 }, 1572 "loc": { 1573 "start": { 1574 "line": 20, 1575 "column": 19 1576 }, 1577 "end": { 1578 "line": 20, 1579 "column": 21 1580 } 1581 } 1582 }, 1583 "loc": { 1584 "start": { 1585 "line": 20, 1586 "column": 19 1587 }, 1588 "end": { 1589 "line": 20, 1590 "column": 21 1591 } 1592 } 1593 }, 1594 "decorators": [], 1595 "loc": { 1596 "start": { 1597 "line": 20, 1598 "column": 16 1599 }, 1600 "end": { 1601 "line": 20, 1602 "column": 21 1603 } 1604 } 1605 }, 1606 { 1607 "type": "UndefinedLiteral", 1608 "value": undefined, 1609 "loc": { 1610 "start": { 1611 "line": 1, 1612 "column": 1 1613 }, 1614 "end": { 1615 "line": 1, 1616 "column": 1 1617 } 1618 } 1619 } 1620 ], 1621 "optional": false, 1622 "loc": { 1623 "start": { 1624 "line": 1, 1625 "column": 1 1626 }, 1627 "end": { 1628 "line": 1, 1629 "column": 1 1630 } 1631 } 1632 }, 1633 "loc": { 1634 "start": { 1635 "line": 1, 1636 "column": 1 1637 }, 1638 "end": { 1639 "line": 1, 1640 "column": 1 1641 } 1642 } 1643 } 1644 ], 1645 "loc": { 1646 "start": { 1647 "line": 1, 1648 "column": 1 1649 }, 1650 "end": { 1651 "line": 1, 1652 "column": 1 1653 } 1654 } 1655 }, 1656 "loc": { 1657 "start": { 1658 "line": 685, 1659 "column": 1 1660 }, 1661 "end": { 1662 "line": 685, 1663 "column": 1 1664 } 1665 } 1666 }, 1667 "loc": { 1668 "start": { 1669 "line": 1, 1670 "column": 1 1671 }, 1672 "end": { 1673 "line": 1, 1674 "column": 1 1675 } 1676 } 1677 }, 1678 "overloads": [], 1679 "decorators": [], 1680 "loc": { 1681 "start": { 1682 "line": 1, 1683 "column": 1 1684 }, 1685 "end": { 1686 "line": 1, 1687 "column": 1 1688 } 1689 } 1690 } 1691 ], 1692 "decorators": [], 1693 "loc": { 1694 "start": { 1695 "line": 20, 1696 "column": 3 1697 }, 1698 "end": { 1699 "line": 20, 1700 "column": 45 1701 } 1702 } 1703 }, 1704 { 1705 "type": "MethodDefinition", 1706 "key": { 1707 "type": "Identifier", 1708 "name": "constructor", 1709 "decorators": [], 1710 "loc": { 1711 "start": { 1712 "line": 1, 1713 "column": 1 1714 }, 1715 "end": { 1716 "line": 1, 1717 "column": 1 1718 } 1719 } 1720 }, 1721 "kind": "constructor", 1722 "static": false, 1723 "optional": false, 1724 "computed": false, 1725 "value": { 1726 "type": "FunctionExpression", 1727 "function": { 1728 "type": "ScriptFunction", 1729 "id": { 1730 "type": "Identifier", 1731 "name": "constructor", 1732 "decorators": [], 1733 "loc": { 1734 "start": { 1735 "line": 1, 1736 "column": 1 1737 }, 1738 "end": { 1739 "line": 1, 1740 "column": 1 1741 } 1742 } 1743 }, 1744 "generator": false, 1745 "async": false, 1746 "expression": false, 1747 "params": [], 1748 "body": { 1749 "type": "BlockStatement", 1750 "statements": [], 1751 "loc": { 1752 "start": { 1753 "line": 1, 1754 "column": 1 1755 }, 1756 "end": { 1757 "line": 1, 1758 "column": 1 1759 } 1760 } 1761 }, 1762 "loc": { 1763 "start": { 1764 "line": 1, 1765 "column": 1 1766 }, 1767 "end": { 1768 "line": 1, 1769 "column": 1 1770 } 1771 } 1772 }, 1773 "loc": { 1774 "start": { 1775 "line": 1, 1776 "column": 1 1777 }, 1778 "end": { 1779 "line": 1, 1780 "column": 1 1781 } 1782 } 1783 }, 1784 "overloads": [], 1785 "decorators": [], 1786 "loc": { 1787 "start": { 1788 "line": 21, 1789 "column": 2 1790 }, 1791 "end": { 1792 "line": 21, 1793 "column": 2 1794 } 1795 } 1796 } 1797 ], 1798 "loc": { 1799 "start": { 1800 "line": 19, 1801 "column": 25 1802 }, 1803 "end": { 1804 "line": 21, 1805 "column": 2 1806 } 1807 } 1808 }, 1809 "loc": { 1810 "start": { 1811 "line": 19, 1812 "column": 1 1813 }, 1814 "end": { 1815 "line": 21, 1816 "column": 2 1817 } 1818 } 1819 }, 1820 { 1821 "type": "ClassDeclaration", 1822 "definition": { 1823 "id": { 1824 "type": "Identifier", 1825 "name": "ETSGLOBAL", 1826 "decorators": [], 1827 "loc": { 1828 "start": { 1829 "line": 1, 1830 "column": 1 1831 }, 1832 "end": { 1833 "line": 1, 1834 "column": 1 1835 } 1836 } 1837 }, 1838 "superClass": null, 1839 "implements": [], 1840 "body": [ 1841 { 1842 "type": "MethodDefinition", 1843 "key": { 1844 "type": "Identifier", 1845 "name": "_$init$_", 1846 "decorators": [], 1847 "loc": { 1848 "start": { 1849 "line": 1, 1850 "column": 1 1851 }, 1852 "end": { 1853 "line": 1, 1854 "column": 1 1855 } 1856 } 1857 }, 1858 "kind": "method", 1859 "accessibility": "public", 1860 "static": true, 1861 "optional": false, 1862 "computed": false, 1863 "value": { 1864 "type": "FunctionExpression", 1865 "function": { 1866 "type": "ScriptFunction", 1867 "id": { 1868 "type": "Identifier", 1869 "name": "_$init$_", 1870 "decorators": [], 1871 "loc": { 1872 "start": { 1873 "line": 1, 1874 "column": 1 1875 }, 1876 "end": { 1877 "line": 1, 1878 "column": 1 1879 } 1880 } 1881 }, 1882 "generator": false, 1883 "async": false, 1884 "expression": false, 1885 "params": [], 1886 "body": { 1887 "type": "BlockStatement", 1888 "statements": [], 1889 "loc": { 1890 "start": { 1891 "line": 1, 1892 "column": 1 1893 }, 1894 "end": { 1895 "line": 1, 1896 "column": 1 1897 } 1898 } 1899 }, 1900 "loc": { 1901 "start": { 1902 "line": 1, 1903 "column": 1 1904 }, 1905 "end": { 1906 "line": 1, 1907 "column": 1 1908 } 1909 } 1910 }, 1911 "loc": { 1912 "start": { 1913 "line": 1, 1914 "column": 1 1915 }, 1916 "end": { 1917 "line": 1, 1918 "column": 1 1919 } 1920 } 1921 }, 1922 "overloads": [], 1923 "decorators": [], 1924 "loc": { 1925 "start": { 1926 "line": 1, 1927 "column": 1 1928 }, 1929 "end": { 1930 "line": 1, 1931 "column": 1 1932 } 1933 } 1934 }, 1935 { 1936 "type": "MethodDefinition", 1937 "key": { 1938 "type": "Identifier", 1939 "name": "main", 1940 "decorators": [], 1941 "loc": { 1942 "start": { 1943 "line": 22, 1944 "column": 10 1945 }, 1946 "end": { 1947 "line": 22, 1948 "column": 14 1949 } 1950 } 1951 }, 1952 "kind": "method", 1953 "accessibility": "public", 1954 "static": true, 1955 "optional": false, 1956 "computed": false, 1957 "value": { 1958 "type": "FunctionExpression", 1959 "function": { 1960 "type": "ScriptFunction", 1961 "id": { 1962 "type": "Identifier", 1963 "name": "main", 1964 "decorators": [], 1965 "loc": { 1966 "start": { 1967 "line": 22, 1968 "column": 10 1969 }, 1970 "end": { 1971 "line": 22, 1972 "column": 14 1973 } 1974 } 1975 }, 1976 "generator": false, 1977 "async": false, 1978 "expression": false, 1979 "params": [], 1980 "body": { 1981 "type": "BlockStatement", 1982 "statements": [], 1983 "loc": { 1984 "start": { 1985 "line": 22, 1986 "column": 16 1987 }, 1988 "end": { 1989 "line": 24, 1990 "column": 2 1991 } 1992 } 1993 }, 1994 "loc": { 1995 "start": { 1996 "line": 22, 1997 "column": 14 1998 }, 1999 "end": { 2000 "line": 24, 2001 "column": 2 2002 } 2003 } 2004 }, 2005 "loc": { 2006 "start": { 2007 "line": 22, 2008 "column": 14 2009 }, 2010 "end": { 2011 "line": 24, 2012 "column": 2 2013 } 2014 } 2015 }, 2016 "overloads": [], 2017 "decorators": [], 2018 "loc": { 2019 "start": { 2020 "line": 22, 2021 "column": 1 2022 }, 2023 "end": { 2024 "line": 24, 2025 "column": 2 2026 } 2027 } 2028 } 2029 ], 2030 "loc": { 2031 "start": { 2032 "line": 1, 2033 "column": 1 2034 }, 2035 "end": { 2036 "line": 1, 2037 "column": 1 2038 } 2039 } 2040 }, 2041 "loc": { 2042 "start": { 2043 "line": 1, 2044 "column": 1 2045 }, 2046 "end": { 2047 "line": 1, 2048 "column": 1 2049 } 2050 } 2051 } 2052 ], 2053 "loc": { 2054 "start": { 2055 "line": 1, 2056 "column": 1 2057 }, 2058 "end": { 2059 "line": 26, 2060 "column": 1 2061 } 2062 } 2063} 2064