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