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