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