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