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 "annotations": [], 804 "loc": { 805 "start": { 806 "line": 18, 807 "column": 5 808 }, 809 "end": { 810 "line": 33, 811 "column": 21 812 } 813 } 814 }, 815 "body": [], 816 "indexSignatures": [], 817 "loc": { 818 "start": { 819 "line": 17, 820 "column": 21 821 }, 822 "end": { 823 "line": 34, 824 "column": 2 825 } 826 } 827 }, 828 "decorators": [], 829 "isAnnotationDeclaration": false, 830 "loc": { 831 "start": { 832 "line": 17, 833 "column": 1 834 }, 835 "end": { 836 "line": 34, 837 "column": 2 838 } 839 } 840 }, 841 { 842 "type": "ClassDeclaration", 843 "definition": { 844 "id": { 845 "type": "Identifier", 846 "name": "ExampleClass2", 847 "loc": { 848 "start": { 849 "line": 36, 850 "column": 7 851 }, 852 "end": { 853 "line": 36, 854 "column": 20 855 } 856 } 857 }, 858 "superClass": null, 859 "implements": [], 860 "constructor": { 861 "type": "MethodDefinition", 862 "key": { 863 "type": "Identifier", 864 "name": "constructor", 865 "loc": { 866 "start": { 867 "line": 37, 868 "column": 12 869 }, 870 "end": { 871 "line": 37, 872 "column": 23 873 } 874 } 875 }, 876 "kind": "constructor", 877 "accessibility": "public", 878 "static": false, 879 "optional": false, 880 "computed": false, 881 "value": { 882 "type": "FunctionExpression", 883 "function": { 884 "type": "ScriptFunction", 885 "id": null, 886 "generator": false, 887 "async": false, 888 "expression": false, 889 "params": [ 890 { 891 "type": "Identifier", 892 "name": "readonly", 893 "loc": { 894 "start": { 895 "line": 37, 896 "column": 24 897 }, 898 "end": { 899 "line": 37, 900 "column": 32 901 } 902 } 903 } 904 ], 905 "body": { 906 "type": "BlockStatement", 907 "statements": [], 908 "loc": { 909 "start": { 910 "line": 37, 911 "column": 34 912 }, 913 "end": { 914 "line": 37, 915 "column": 37 916 } 917 } 918 }, 919 "loc": { 920 "start": { 921 "line": 37, 922 "column": 23 923 }, 924 "end": { 925 "line": 37, 926 "column": 37 927 } 928 } 929 }, 930 "loc": { 931 "start": { 932 "line": 37, 933 "column": 23 934 }, 935 "end": { 936 "line": 37, 937 "column": 37 938 } 939 } 940 }, 941 "overloads": [], 942 "decorators": [], 943 "annotations": [], 944 "loc": { 945 "start": { 946 "line": 37, 947 "column": 5 948 }, 949 "end": { 950 "line": 37, 951 "column": 37 952 } 953 } 954 }, 955 "body": [], 956 "indexSignatures": [], 957 "loc": { 958 "start": { 959 "line": 36, 960 "column": 21 961 }, 962 "end": { 963 "line": 38, 964 "column": 2 965 } 966 } 967 }, 968 "decorators": [], 969 "isAnnotationDeclaration": false, 970 "loc": { 971 "start": { 972 "line": 36, 973 "column": 1 974 }, 975 "end": { 976 "line": 38, 977 "column": 2 978 } 979 } 980 }, 981 { 982 "type": "ClassDeclaration", 983 "definition": { 984 "id": { 985 "type": "Identifier", 986 "name": "ExampleClass3", 987 "loc": { 988 "start": { 989 "line": 40, 990 "column": 7 991 }, 992 "end": { 993 "line": 40, 994 "column": 20 995 } 996 } 997 }, 998 "superClass": null, 999 "implements": [], 1000 "constructor": { 1001 "type": "MethodDefinition", 1002 "key": { 1003 "type": "Identifier", 1004 "name": "constructor", 1005 "loc": { 1006 "start": { 1007 "line": 41, 1008 "column": 12 1009 }, 1010 "end": { 1011 "line": 41, 1012 "column": 23 1013 } 1014 } 1015 }, 1016 "kind": "constructor", 1017 "accessibility": "public", 1018 "static": false, 1019 "optional": false, 1020 "computed": false, 1021 "value": { 1022 "type": "FunctionExpression", 1023 "function": { 1024 "type": "ScriptFunction", 1025 "id": null, 1026 "generator": false, 1027 "async": false, 1028 "expression": false, 1029 "params": [ 1030 { 1031 "type": "TSParameterProperty", 1032 "accessibility": "public", 1033 "readonly": false, 1034 "override": false, 1035 "static": false, 1036 "export": false, 1037 "parameter": { 1038 "type": "Identifier", 1039 "name": "readonly", 1040 "loc": { 1041 "start": { 1042 "line": 41, 1043 "column": 31 1044 }, 1045 "end": { 1046 "line": 41, 1047 "column": 39 1048 } 1049 } 1050 }, 1051 "loc": { 1052 "start": { 1053 "line": 41, 1054 "column": 24 1055 }, 1056 "end": { 1057 "line": 41, 1058 "column": 39 1059 } 1060 } 1061 } 1062 ], 1063 "body": { 1064 "type": "BlockStatement", 1065 "statements": [], 1066 "loc": { 1067 "start": { 1068 "line": 41, 1069 "column": 41 1070 }, 1071 "end": { 1072 "line": 41, 1073 "column": 44 1074 } 1075 } 1076 }, 1077 "loc": { 1078 "start": { 1079 "line": 41, 1080 "column": 23 1081 }, 1082 "end": { 1083 "line": 41, 1084 "column": 44 1085 } 1086 } 1087 }, 1088 "loc": { 1089 "start": { 1090 "line": 41, 1091 "column": 23 1092 }, 1093 "end": { 1094 "line": 41, 1095 "column": 44 1096 } 1097 } 1098 }, 1099 "overloads": [], 1100 "decorators": [], 1101 "annotations": [], 1102 "loc": { 1103 "start": { 1104 "line": 41, 1105 "column": 5 1106 }, 1107 "end": { 1108 "line": 41, 1109 "column": 44 1110 } 1111 } 1112 }, 1113 "body": [], 1114 "indexSignatures": [], 1115 "loc": { 1116 "start": { 1117 "line": 40, 1118 "column": 21 1119 }, 1120 "end": { 1121 "line": 42, 1122 "column": 2 1123 } 1124 } 1125 }, 1126 "decorators": [], 1127 "isAnnotationDeclaration": false, 1128 "loc": { 1129 "start": { 1130 "line": 40, 1131 "column": 1 1132 }, 1133 "end": { 1134 "line": 42, 1135 "column": 2 1136 } 1137 } 1138 }, 1139 { 1140 "type": "ClassDeclaration", 1141 "definition": { 1142 "id": { 1143 "type": "Identifier", 1144 "name": "ExampleClass4", 1145 "loc": { 1146 "start": { 1147 "line": 44, 1148 "column": 7 1149 }, 1150 "end": { 1151 "line": 44, 1152 "column": 20 1153 } 1154 } 1155 }, 1156 "superClass": null, 1157 "implements": [], 1158 "constructor": { 1159 "type": "MethodDefinition", 1160 "key": { 1161 "type": "Identifier", 1162 "name": "constructor", 1163 "loc": { 1164 "start": { 1165 "line": 45, 1166 "column": 12 1167 }, 1168 "end": { 1169 "line": 45, 1170 "column": 23 1171 } 1172 } 1173 }, 1174 "kind": "constructor", 1175 "accessibility": "public", 1176 "static": false, 1177 "optional": false, 1178 "computed": false, 1179 "value": { 1180 "type": "FunctionExpression", 1181 "function": { 1182 "type": "ScriptFunction", 1183 "id": null, 1184 "generator": false, 1185 "async": false, 1186 "expression": false, 1187 "params": [ 1188 { 1189 "type": "TSParameterProperty", 1190 "accessibility": "undefined", 1191 "readonly": true, 1192 "override": false, 1193 "static": false, 1194 "export": false, 1195 "parameter": { 1196 "type": "Identifier", 1197 "name": "readonly", 1198 "loc": { 1199 "start": { 1200 "line": 45, 1201 "column": 33 1202 }, 1203 "end": { 1204 "line": 45, 1205 "column": 41 1206 } 1207 } 1208 }, 1209 "loc": { 1210 "start": { 1211 "line": 45, 1212 "column": 24 1213 }, 1214 "end": { 1215 "line": 45, 1216 "column": 41 1217 } 1218 } 1219 } 1220 ], 1221 "body": { 1222 "type": "BlockStatement", 1223 "statements": [], 1224 "loc": { 1225 "start": { 1226 "line": 45, 1227 "column": 43 1228 }, 1229 "end": { 1230 "line": 45, 1231 "column": 46 1232 } 1233 } 1234 }, 1235 "loc": { 1236 "start": { 1237 "line": 45, 1238 "column": 23 1239 }, 1240 "end": { 1241 "line": 45, 1242 "column": 46 1243 } 1244 } 1245 }, 1246 "loc": { 1247 "start": { 1248 "line": 45, 1249 "column": 23 1250 }, 1251 "end": { 1252 "line": 45, 1253 "column": 46 1254 } 1255 } 1256 }, 1257 "overloads": [], 1258 "decorators": [], 1259 "annotations": [], 1260 "loc": { 1261 "start": { 1262 "line": 45, 1263 "column": 5 1264 }, 1265 "end": { 1266 "line": 45, 1267 "column": 46 1268 } 1269 } 1270 }, 1271 "body": [], 1272 "indexSignatures": [], 1273 "loc": { 1274 "start": { 1275 "line": 44, 1276 "column": 21 1277 }, 1278 "end": { 1279 "line": 46, 1280 "column": 2 1281 } 1282 } 1283 }, 1284 "decorators": [], 1285 "isAnnotationDeclaration": false, 1286 "loc": { 1287 "start": { 1288 "line": 44, 1289 "column": 1 1290 }, 1291 "end": { 1292 "line": 46, 1293 "column": 2 1294 } 1295 } 1296 } 1297 ], 1298 "loc": { 1299 "start": { 1300 "line": 1, 1301 "column": 1 1302 }, 1303 "end": { 1304 "line": 46, 1305 "column": 2 1306 } 1307 } 1308} 1309