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 "decorators": [], 598 "loc": { 599 "start": { 600 "line": 17, 601 "column": 7 602 }, 603 "end": { 604 "line": 17, 605 "column": 12 606 } 607 } 608 }, 609 { 610 "type": "UndefinedLiteral", 611 "value": "undefined", 612 "loc": { 613 "start": { 614 "line": 1, 615 "column": 1 616 }, 617 "end": { 618 "line": 1, 619 "column": 1 620 } 621 } 622 } 623 ], 624 "optional": false, 625 "loc": { 626 "start": { 627 "line": 17, 628 "column": 3 629 }, 630 "end": { 631 "line": 17, 632 "column": 36 633 } 634 } 635 }, 636 "loc": { 637 "start": { 638 "line": 1, 639 "column": 1 640 }, 641 "end": { 642 "line": 1, 643 "column": 1 644 } 645 } 646 } 647 ], 648 "loc": { 649 "start": { 650 "line": 1, 651 "column": 1 652 }, 653 "end": { 654 "line": 1, 655 "column": 1 656 } 657 } 658 }, 659 "loc": { 660 "start": { 661 "line": 621, 662 "column": 1 663 }, 664 "end": { 665 "line": 621, 666 "column": 1 667 } 668 } 669 }, 670 "loc": { 671 "start": { 672 "line": 1, 673 "column": 1 674 }, 675 "end": { 676 "line": 1, 677 "column": 1 678 } 679 } 680 }, 681 "overloads": [], 682 "decorators": [], 683 "loc": { 684 "start": { 685 "line": 17, 686 "column": 3 687 }, 688 "end": { 689 "line": 1, 690 "column": 1 691 } 692 } 693 } 694 ], 695 "decorators": [], 696 "loc": { 697 "start": { 698 "line": 17, 699 "column": 3 700 }, 701 "end": { 702 "line": 17, 703 "column": 36 704 } 705 } 706 }, 707 { 708 "type": "MethodDefinition", 709 "key": { 710 "type": "Identifier", 711 "name": "constructor", 712 "decorators": [], 713 "loc": { 714 "start": { 715 "line": 1, 716 "column": 1 717 }, 718 "end": { 719 "line": 1, 720 "column": 1 721 } 722 } 723 }, 724 "kind": "constructor", 725 "static": false, 726 "optional": false, 727 "computed": false, 728 "value": { 729 "type": "FunctionExpression", 730 "function": { 731 "type": "ScriptFunction", 732 "id": { 733 "type": "Identifier", 734 "name": "constructor", 735 "decorators": [], 736 "loc": { 737 "start": { 738 "line": 1, 739 "column": 1 740 }, 741 "end": { 742 "line": 1, 743 "column": 1 744 } 745 } 746 }, 747 "generator": false, 748 "async": false, 749 "expression": false, 750 "params": [], 751 "body": { 752 "type": "BlockStatement", 753 "statements": [], 754 "loc": { 755 "start": { 756 "line": 1, 757 "column": 1 758 }, 759 "end": { 760 "line": 1, 761 "column": 1 762 } 763 } 764 }, 765 "loc": { 766 "start": { 767 "line": 1, 768 "column": 1 769 }, 770 "end": { 771 "line": 1, 772 "column": 1 773 } 774 } 775 }, 776 "loc": { 777 "start": { 778 "line": 1, 779 "column": 1 780 }, 781 "end": { 782 "line": 1, 783 "column": 1 784 } 785 } 786 }, 787 "overloads": [], 788 "decorators": [], 789 "loc": { 790 "start": { 791 "line": 18, 792 "column": 2 793 }, 794 "end": { 795 "line": 18, 796 "column": 2 797 } 798 } 799 } 800 ], 801 "loc": { 802 "start": { 803 "line": 16, 804 "column": 12 805 }, 806 "end": { 807 "line": 18, 808 "column": 2 809 } 810 } 811 }, 812 "loc": { 813 "start": { 814 "line": 16, 815 "column": 1 816 }, 817 "end": { 818 "line": 18, 819 "column": 2 820 } 821 } 822 }, 823 { 824 "type": "ClassDeclaration", 825 "definition": { 826 "id": { 827 "type": "Identifier", 828 "name": "A", 829 "decorators": [], 830 "loc": { 831 "start": { 832 "line": 19, 833 "column": 7 834 }, 835 "end": { 836 "line": 19, 837 "column": 8 838 } 839 } 840 }, 841 "typeParameters": { 842 "type": "TSTypeParameterDeclaration", 843 "params": [ 844 { 845 "type": "TSTypeParameter", 846 "name": { 847 "type": "Identifier", 848 "name": "T", 849 "decorators": [], 850 "loc": { 851 "start": { 852 "line": 19, 853 "column": 9 854 }, 855 "end": { 856 "line": 19, 857 "column": 10 858 } 859 } 860 }, 861 "loc": { 862 "start": { 863 "line": 19, 864 "column": 9 865 }, 866 "end": { 867 "line": 19, 868 "column": 11 869 } 870 } 871 } 872 ], 873 "loc": { 874 "start": { 875 "line": 19, 876 "column": 8 877 }, 878 "end": { 879 "line": 19, 880 "column": 11 881 } 882 } 883 }, 884 "superClass": { 885 "type": "ETSTypeReference", 886 "part": { 887 "type": "ETSTypeReferencePart", 888 "name": { 889 "type": "Identifier", 890 "name": "B", 891 "decorators": [], 892 "loc": { 893 "start": { 894 "line": 19, 895 "column": 20 896 }, 897 "end": { 898 "line": 19, 899 "column": 21 900 } 901 } 902 }, 903 "typeParams": { 904 "type": "TSTypeParameterInstantiation", 905 "params": [ 906 { 907 "type": "ETSTypeReference", 908 "part": { 909 "type": "ETSTypeReferencePart", 910 "name": { 911 "type": "Identifier", 912 "name": "T", 913 "decorators": [], 914 "loc": { 915 "start": { 916 "line": 19, 917 "column": 22 918 }, 919 "end": { 920 "line": 19, 921 "column": 23 922 } 923 } 924 }, 925 "loc": { 926 "start": { 927 "line": 19, 928 "column": 22 929 }, 930 "end": { 931 "line": 19, 932 "column": 24 933 } 934 } 935 }, 936 "loc": { 937 "start": { 938 "line": 19, 939 "column": 22 940 }, 941 "end": { 942 "line": 19, 943 "column": 24 944 } 945 } 946 } 947 ], 948 "loc": { 949 "start": { 950 "line": 19, 951 "column": 21 952 }, 953 "end": { 954 "line": 19, 955 "column": 24 956 } 957 } 958 }, 959 "loc": { 960 "start": { 961 "line": 19, 962 "column": 20 963 }, 964 "end": { 965 "line": 19, 966 "column": 26 967 } 968 } 969 }, 970 "loc": { 971 "start": { 972 "line": 19, 973 "column": 20 974 }, 975 "end": { 976 "line": 19, 977 "column": 26 978 } 979 } 980 }, 981 "implements": [], 982 "body": [ 983 { 984 "type": "MethodDefinition", 985 "key": { 986 "type": "Identifier", 987 "name": "foo", 988 "decorators": [], 989 "loc": { 990 "start": { 991 "line": 20, 992 "column": 12 993 }, 994 "end": { 995 "line": 20, 996 "column": 15 997 } 998 } 999 }, 1000 "kind": "method", 1001 "accessibility": "public", 1002 "static": false, 1003 "optional": false, 1004 "computed": false, 1005 "value": { 1006 "type": "FunctionExpression", 1007 "function": { 1008 "type": "ScriptFunction", 1009 "id": { 1010 "type": "Identifier", 1011 "name": "foo", 1012 "decorators": [], 1013 "loc": { 1014 "start": { 1015 "line": 20, 1016 "column": 12 1017 }, 1018 "end": { 1019 "line": 20, 1020 "column": 15 1021 } 1022 } 1023 }, 1024 "generator": false, 1025 "async": false, 1026 "expression": false, 1027 "params": [ 1028 { 1029 "type": "ETSParameterExpression", 1030 "name": { 1031 "type": "Identifier", 1032 "name": "a", 1033 "typeAnnotation": { 1034 "type": "ETSTypeReference", 1035 "part": { 1036 "type": "ETSTypeReferencePart", 1037 "name": { 1038 "type": "Identifier", 1039 "name": "T", 1040 "decorators": [], 1041 "loc": { 1042 "start": { 1043 "line": 20, 1044 "column": 19 1045 }, 1046 "end": { 1047 "line": 20, 1048 "column": 20 1049 } 1050 } 1051 }, 1052 "loc": { 1053 "start": { 1054 "line": 20, 1055 "column": 19 1056 }, 1057 "end": { 1058 "line": 20, 1059 "column": 21 1060 } 1061 } 1062 }, 1063 "loc": { 1064 "start": { 1065 "line": 20, 1066 "column": 19 1067 }, 1068 "end": { 1069 "line": 20, 1070 "column": 21 1071 } 1072 } 1073 }, 1074 "decorators": [], 1075 "loc": { 1076 "start": { 1077 "line": 20, 1078 "column": 16 1079 }, 1080 "end": { 1081 "line": 20, 1082 "column": 21 1083 } 1084 } 1085 }, 1086 "loc": { 1087 "start": { 1088 "line": 20, 1089 "column": 16 1090 }, 1091 "end": { 1092 "line": 20, 1093 "column": 21 1094 } 1095 } 1096 }, 1097 { 1098 "type": "ETSParameterExpression", 1099 "name": { 1100 "type": "Identifier", 1101 "name": "op", 1102 "typeAnnotation": { 1103 "type": "ETSUnionType", 1104 "types": [ 1105 { 1106 "type": "ETSTypeReference", 1107 "part": { 1108 "type": "ETSTypeReferencePart", 1109 "name": { 1110 "type": "Identifier", 1111 "name": "T", 1112 "decorators": [], 1113 "loc": { 1114 "start": { 1115 "line": 20, 1116 "column": 27 1117 }, 1118 "end": { 1119 "line": 20, 1120 "column": 28 1121 } 1122 } 1123 }, 1124 "loc": { 1125 "start": { 1126 "line": 20, 1127 "column": 27 1128 }, 1129 "end": { 1130 "line": 20, 1131 "column": 29 1132 } 1133 } 1134 }, 1135 "loc": { 1136 "start": { 1137 "line": 20, 1138 "column": 27 1139 }, 1140 "end": { 1141 "line": 20, 1142 "column": 29 1143 } 1144 } 1145 }, 1146 { 1147 "type": "ETSUndefinedType", 1148 "loc": { 1149 "start": { 1150 "line": 20, 1151 "column": 24 1152 }, 1153 "end": { 1154 "line": 20, 1155 "column": 25 1156 } 1157 } 1158 } 1159 ], 1160 "loc": { 1161 "start": { 1162 "line": 20, 1163 "column": 27 1164 }, 1165 "end": { 1166 "line": 20, 1167 "column": 29 1168 } 1169 } 1170 }, 1171 "decorators": [], 1172 "loc": { 1173 "start": { 1174 "line": 20, 1175 "column": 22 1176 }, 1177 "end": { 1178 "line": 20, 1179 "column": 29 1180 } 1181 } 1182 }, 1183 "loc": { 1184 "start": { 1185 "line": 20, 1186 "column": 22 1187 }, 1188 "end": { 1189 "line": 20, 1190 "column": 29 1191 } 1192 } 1193 } 1194 ], 1195 "returnType": { 1196 "type": "ETSTypeReference", 1197 "part": { 1198 "type": "ETSTypeReferencePart", 1199 "name": { 1200 "type": "Identifier", 1201 "name": "T", 1202 "decorators": [], 1203 "loc": { 1204 "start": { 1205 "line": 20, 1206 "column": 31 1207 }, 1208 "end": { 1209 "line": 20, 1210 "column": 32 1211 } 1212 } 1213 }, 1214 "loc": { 1215 "start": { 1216 "line": 20, 1217 "column": 31 1218 }, 1219 "end": { 1220 "line": 20, 1221 "column": 34 1222 } 1223 } 1224 }, 1225 "loc": { 1226 "start": { 1227 "line": 20, 1228 "column": 31 1229 }, 1230 "end": { 1231 "line": 20, 1232 "column": 34 1233 } 1234 } 1235 }, 1236 "body": { 1237 "type": "BlockStatement", 1238 "statements": [ 1239 { 1240 "type": "ReturnStatement", 1241 "argument": { 1242 "type": "Identifier", 1243 "name": "a", 1244 "decorators": [], 1245 "loc": { 1246 "start": { 1247 "line": 20, 1248 "column": 42 1249 }, 1250 "end": { 1251 "line": 20, 1252 "column": 43 1253 } 1254 } 1255 }, 1256 "loc": { 1257 "start": { 1258 "line": 20, 1259 "column": 35 1260 }, 1261 "end": { 1262 "line": 20, 1263 "column": 43 1264 } 1265 } 1266 } 1267 ], 1268 "loc": { 1269 "start": { 1270 "line": 20, 1271 "column": 33 1272 }, 1273 "end": { 1274 "line": 20, 1275 "column": 45 1276 } 1277 } 1278 }, 1279 "loc": { 1280 "start": { 1281 "line": 20, 1282 "column": 15 1283 }, 1284 "end": { 1285 "line": 20, 1286 "column": 45 1287 } 1288 } 1289 }, 1290 "loc": { 1291 "start": { 1292 "line": 20, 1293 "column": 15 1294 }, 1295 "end": { 1296 "line": 20, 1297 "column": 45 1298 } 1299 } 1300 }, 1301 "overloads": [ 1302 { 1303 "type": "MethodDefinition", 1304 "key": { 1305 "type": "Identifier", 1306 "name": "foo", 1307 "decorators": [], 1308 "loc": { 1309 "start": { 1310 "line": 20, 1311 "column": 12 1312 }, 1313 "end": { 1314 "line": 20, 1315 "column": 15 1316 } 1317 } 1318 }, 1319 "kind": "method", 1320 "accessibility": "public", 1321 "static": false, 1322 "optional": false, 1323 "computed": false, 1324 "value": { 1325 "type": "FunctionExpression", 1326 "function": { 1327 "type": "ScriptFunction", 1328 "id": { 1329 "type": "Identifier", 1330 "name": "foo", 1331 "decorators": [], 1332 "loc": { 1333 "start": { 1334 "line": 20, 1335 "column": 12 1336 }, 1337 "end": { 1338 "line": 20, 1339 "column": 15 1340 } 1341 } 1342 }, 1343 "generator": false, 1344 "async": false, 1345 "expression": false, 1346 "params": [ 1347 { 1348 "type": "ETSParameterExpression", 1349 "name": { 1350 "type": "Identifier", 1351 "name": "a", 1352 "typeAnnotation": { 1353 "type": "ETSTypeReference", 1354 "part": { 1355 "type": "ETSTypeReferencePart", 1356 "name": { 1357 "type": "Identifier", 1358 "name": "T", 1359 "decorators": [], 1360 "loc": { 1361 "start": { 1362 "line": 20, 1363 "column": 19 1364 }, 1365 "end": { 1366 "line": 20, 1367 "column": 20 1368 } 1369 } 1370 }, 1371 "loc": { 1372 "start": { 1373 "line": 20, 1374 "column": 19 1375 }, 1376 "end": { 1377 "line": 20, 1378 "column": 21 1379 } 1380 } 1381 }, 1382 "loc": { 1383 "start": { 1384 "line": 20, 1385 "column": 19 1386 }, 1387 "end": { 1388 "line": 20, 1389 "column": 21 1390 } 1391 } 1392 }, 1393 "decorators": [], 1394 "loc": { 1395 "start": { 1396 "line": 20, 1397 "column": 16 1398 }, 1399 "end": { 1400 "line": 20, 1401 "column": 21 1402 } 1403 } 1404 }, 1405 "loc": { 1406 "start": { 1407 "line": 1, 1408 "column": 1 1409 }, 1410 "end": { 1411 "line": 1, 1412 "column": 1 1413 } 1414 } 1415 } 1416 ], 1417 "returnType": { 1418 "type": "ETSTypeReference", 1419 "part": { 1420 "type": "ETSTypeReferencePart", 1421 "name": { 1422 "type": "Identifier", 1423 "name": "T", 1424 "decorators": [], 1425 "loc": { 1426 "start": { 1427 "line": 20, 1428 "column": 31 1429 }, 1430 "end": { 1431 "line": 20, 1432 "column": 32 1433 } 1434 } 1435 }, 1436 "loc": { 1437 "start": { 1438 "line": 20, 1439 "column": 31 1440 }, 1441 "end": { 1442 "line": 20, 1443 "column": 34 1444 } 1445 } 1446 }, 1447 "loc": { 1448 "start": { 1449 "line": 20, 1450 "column": 31 1451 }, 1452 "end": { 1453 "line": 20, 1454 "column": 34 1455 } 1456 } 1457 }, 1458 "body": { 1459 "type": "BlockStatement", 1460 "statements": [ 1461 { 1462 "type": "ReturnStatement", 1463 "argument": { 1464 "type": "CallExpression", 1465 "callee": { 1466 "type": "MemberExpression", 1467 "object": { 1468 "type": "ThisExpression", 1469 "loc": { 1470 "start": { 1471 "line": 1, 1472 "column": 1 1473 }, 1474 "end": { 1475 "line": 1, 1476 "column": 1 1477 } 1478 } 1479 }, 1480 "property": { 1481 "type": "Identifier", 1482 "name": "foo", 1483 "decorators": [], 1484 "loc": { 1485 "start": { 1486 "line": 1, 1487 "column": 1 1488 }, 1489 "end": { 1490 "line": 1, 1491 "column": 1 1492 } 1493 } 1494 }, 1495 "computed": false, 1496 "optional": false, 1497 "loc": { 1498 "start": { 1499 "line": 1, 1500 "column": 1 1501 }, 1502 "end": { 1503 "line": 1, 1504 "column": 1 1505 } 1506 } 1507 }, 1508 "arguments": [ 1509 { 1510 "type": "Identifier", 1511 "name": "a", 1512 "decorators": [], 1513 "loc": { 1514 "start": { 1515 "line": 20, 1516 "column": 16 1517 }, 1518 "end": { 1519 "line": 20, 1520 "column": 21 1521 } 1522 } 1523 }, 1524 { 1525 "type": "UndefinedLiteral", 1526 "value": "undefined", 1527 "loc": { 1528 "start": { 1529 "line": 1, 1530 "column": 1 1531 }, 1532 "end": { 1533 "line": 1, 1534 "column": 1 1535 } 1536 } 1537 } 1538 ], 1539 "optional": false, 1540 "loc": { 1541 "start": { 1542 "line": 20, 1543 "column": 3 1544 }, 1545 "end": { 1546 "line": 20, 1547 "column": 45 1548 } 1549 } 1550 }, 1551 "loc": { 1552 "start": { 1553 "line": 1, 1554 "column": 1 1555 }, 1556 "end": { 1557 "line": 1, 1558 "column": 1 1559 } 1560 } 1561 } 1562 ], 1563 "loc": { 1564 "start": { 1565 "line": 1, 1566 "column": 1 1567 }, 1568 "end": { 1569 "line": 1, 1570 "column": 1 1571 } 1572 } 1573 }, 1574 "loc": { 1575 "start": { 1576 "line": 685, 1577 "column": 1 1578 }, 1579 "end": { 1580 "line": 685, 1581 "column": 1 1582 } 1583 } 1584 }, 1585 "loc": { 1586 "start": { 1587 "line": 1, 1588 "column": 1 1589 }, 1590 "end": { 1591 "line": 1, 1592 "column": 1 1593 } 1594 } 1595 }, 1596 "overloads": [], 1597 "decorators": [], 1598 "loc": { 1599 "start": { 1600 "line": 20, 1601 "column": 3 1602 }, 1603 "end": { 1604 "line": 1, 1605 "column": 1 1606 } 1607 } 1608 } 1609 ], 1610 "decorators": [], 1611 "loc": { 1612 "start": { 1613 "line": 20, 1614 "column": 3 1615 }, 1616 "end": { 1617 "line": 20, 1618 "column": 45 1619 } 1620 } 1621 }, 1622 { 1623 "type": "MethodDefinition", 1624 "key": { 1625 "type": "Identifier", 1626 "name": "constructor", 1627 "decorators": [], 1628 "loc": { 1629 "start": { 1630 "line": 1, 1631 "column": 1 1632 }, 1633 "end": { 1634 "line": 1, 1635 "column": 1 1636 } 1637 } 1638 }, 1639 "kind": "constructor", 1640 "static": false, 1641 "optional": false, 1642 "computed": false, 1643 "value": { 1644 "type": "FunctionExpression", 1645 "function": { 1646 "type": "ScriptFunction", 1647 "id": { 1648 "type": "Identifier", 1649 "name": "constructor", 1650 "decorators": [], 1651 "loc": { 1652 "start": { 1653 "line": 1, 1654 "column": 1 1655 }, 1656 "end": { 1657 "line": 1, 1658 "column": 1 1659 } 1660 } 1661 }, 1662 "generator": false, 1663 "async": false, 1664 "expression": false, 1665 "params": [], 1666 "body": { 1667 "type": "BlockStatement", 1668 "statements": [], 1669 "loc": { 1670 "start": { 1671 "line": 1, 1672 "column": 1 1673 }, 1674 "end": { 1675 "line": 1, 1676 "column": 1 1677 } 1678 } 1679 }, 1680 "loc": { 1681 "start": { 1682 "line": 1, 1683 "column": 1 1684 }, 1685 "end": { 1686 "line": 1, 1687 "column": 1 1688 } 1689 } 1690 }, 1691 "loc": { 1692 "start": { 1693 "line": 1, 1694 "column": 1 1695 }, 1696 "end": { 1697 "line": 1, 1698 "column": 1 1699 } 1700 } 1701 }, 1702 "overloads": [], 1703 "decorators": [], 1704 "loc": { 1705 "start": { 1706 "line": 21, 1707 "column": 2 1708 }, 1709 "end": { 1710 "line": 21, 1711 "column": 2 1712 } 1713 } 1714 } 1715 ], 1716 "loc": { 1717 "start": { 1718 "line": 19, 1719 "column": 25 1720 }, 1721 "end": { 1722 "line": 21, 1723 "column": 2 1724 } 1725 } 1726 }, 1727 "loc": { 1728 "start": { 1729 "line": 19, 1730 "column": 1 1731 }, 1732 "end": { 1733 "line": 21, 1734 "column": 2 1735 } 1736 } 1737 }, 1738 { 1739 "type": "ClassDeclaration", 1740 "definition": { 1741 "id": { 1742 "type": "Identifier", 1743 "name": "ETSGLOBAL", 1744 "decorators": [], 1745 "loc": { 1746 "start": { 1747 "line": 1, 1748 "column": 1 1749 }, 1750 "end": { 1751 "line": 1, 1752 "column": 1 1753 } 1754 } 1755 }, 1756 "superClass": null, 1757 "implements": [], 1758 "body": [ 1759 { 1760 "type": "MethodDefinition", 1761 "key": { 1762 "type": "Identifier", 1763 "name": "_$init$_", 1764 "decorators": [], 1765 "loc": { 1766 "start": { 1767 "line": 1, 1768 "column": 1 1769 }, 1770 "end": { 1771 "line": 1, 1772 "column": 1 1773 } 1774 } 1775 }, 1776 "kind": "method", 1777 "accessibility": "public", 1778 "static": true, 1779 "optional": false, 1780 "computed": false, 1781 "value": { 1782 "type": "FunctionExpression", 1783 "function": { 1784 "type": "ScriptFunction", 1785 "id": { 1786 "type": "Identifier", 1787 "name": "_$init$_", 1788 "decorators": [], 1789 "loc": { 1790 "start": { 1791 "line": 1, 1792 "column": 1 1793 }, 1794 "end": { 1795 "line": 1, 1796 "column": 1 1797 } 1798 } 1799 }, 1800 "generator": false, 1801 "async": false, 1802 "expression": false, 1803 "params": [], 1804 "body": { 1805 "type": "BlockStatement", 1806 "statements": [], 1807 "loc": { 1808 "start": { 1809 "line": 1, 1810 "column": 1 1811 }, 1812 "end": { 1813 "line": 1, 1814 "column": 1 1815 } 1816 } 1817 }, 1818 "loc": { 1819 "start": { 1820 "line": 1, 1821 "column": 1 1822 }, 1823 "end": { 1824 "line": 1, 1825 "column": 1 1826 } 1827 } 1828 }, 1829 "loc": { 1830 "start": { 1831 "line": 1, 1832 "column": 1 1833 }, 1834 "end": { 1835 "line": 1, 1836 "column": 1 1837 } 1838 } 1839 }, 1840 "overloads": [], 1841 "decorators": [], 1842 "loc": { 1843 "start": { 1844 "line": 1, 1845 "column": 1 1846 }, 1847 "end": { 1848 "line": 1, 1849 "column": 1 1850 } 1851 } 1852 }, 1853 { 1854 "type": "MethodDefinition", 1855 "key": { 1856 "type": "Identifier", 1857 "name": "main", 1858 "decorators": [], 1859 "loc": { 1860 "start": { 1861 "line": 22, 1862 "column": 10 1863 }, 1864 "end": { 1865 "line": 22, 1866 "column": 14 1867 } 1868 } 1869 }, 1870 "kind": "method", 1871 "accessibility": "public", 1872 "static": true, 1873 "optional": false, 1874 "computed": false, 1875 "value": { 1876 "type": "FunctionExpression", 1877 "function": { 1878 "type": "ScriptFunction", 1879 "id": { 1880 "type": "Identifier", 1881 "name": "main", 1882 "decorators": [], 1883 "loc": { 1884 "start": { 1885 "line": 22, 1886 "column": 10 1887 }, 1888 "end": { 1889 "line": 22, 1890 "column": 14 1891 } 1892 } 1893 }, 1894 "generator": false, 1895 "async": false, 1896 "expression": false, 1897 "params": [], 1898 "body": { 1899 "type": "BlockStatement", 1900 "statements": [], 1901 "loc": { 1902 "start": { 1903 "line": 22, 1904 "column": 16 1905 }, 1906 "end": { 1907 "line": 24, 1908 "column": 2 1909 } 1910 } 1911 }, 1912 "loc": { 1913 "start": { 1914 "line": 22, 1915 "column": 10 1916 }, 1917 "end": { 1918 "line": 24, 1919 "column": 2 1920 } 1921 } 1922 }, 1923 "loc": { 1924 "start": { 1925 "line": 22, 1926 "column": 10 1927 }, 1928 "end": { 1929 "line": 24, 1930 "column": 2 1931 } 1932 } 1933 }, 1934 "overloads": [], 1935 "decorators": [], 1936 "loc": { 1937 "start": { 1938 "line": 22, 1939 "column": 1 1940 }, 1941 "end": { 1942 "line": 24, 1943 "column": 2 1944 } 1945 } 1946 } 1947 ], 1948 "loc": { 1949 "start": { 1950 "line": 1, 1951 "column": 1 1952 }, 1953 "end": { 1954 "line": 1, 1955 "column": 1 1956 } 1957 } 1958 }, 1959 "loc": { 1960 "start": { 1961 "line": 1, 1962 "column": 1 1963 }, 1964 "end": { 1965 "line": 1, 1966 "column": 1 1967 } 1968 } 1969 } 1970 ], 1971 "loc": { 1972 "start": { 1973 "line": 1, 1974 "column": 1 1975 }, 1976 "end": { 1977 "line": 26, 1978 "column": 1 1979 } 1980 } 1981} 1982