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