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