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