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