1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "ClassDeclaration", 6 "definition": { 7 "id": { 8 "type": "Identifier", 9 "name": "A", 10 "decorators": [], 11 "loc": { 12 "start": { 13 "line": 16, 14 "column": 7 15 }, 16 "end": { 17 "line": 16, 18 "column": 8 19 } 20 } 21 }, 22 "superClass": null, 23 "implements": [], 24 "body": [ 25 { 26 "type": "MethodDefinition", 27 "key": { 28 "type": "Identifier", 29 "name": "foo", 30 "decorators": [], 31 "loc": { 32 "start": { 33 "line": 17, 34 "column": 9 35 }, 36 "end": { 37 "line": 17, 38 "column": 12 39 } 40 } 41 }, 42 "kind": "method", 43 "accessibility": "public", 44 "static": true, 45 "optional": false, 46 "computed": false, 47 "value": { 48 "type": "FunctionExpression", 49 "function": { 50 "type": "ScriptFunction", 51 "id": { 52 "type": "Identifier", 53 "name": "foo", 54 "decorators": [], 55 "loc": { 56 "start": { 57 "line": 17, 58 "column": 9 59 }, 60 "end": { 61 "line": 17, 62 "column": 12 63 } 64 } 65 }, 66 "generator": false, 67 "async": false, 68 "expression": false, 69 "params": [], 70 "returnType": { 71 "type": "ETSPrimitiveType", 72 "loc": { 73 "start": { 74 "line": 17, 75 "column": 16 76 }, 77 "end": { 78 "line": 17, 79 "column": 20 80 } 81 } 82 }, 83 "body": { 84 "type": "BlockStatement", 85 "statements": [], 86 "loc": { 87 "start": { 88 "line": 17, 89 "column": 21 90 }, 91 "end": { 92 "line": 17, 93 "column": 23 94 } 95 } 96 }, 97 "loc": { 98 "start": { 99 "line": 17, 100 "column": 12 101 }, 102 "end": { 103 "line": 17, 104 "column": 23 105 } 106 } 107 }, 108 "loc": { 109 "start": { 110 "line": 17, 111 "column": 12 112 }, 113 "end": { 114 "line": 17, 115 "column": 23 116 } 117 } 118 }, 119 "overloads": [], 120 "decorators": [], 121 "loc": { 122 "start": { 123 "line": 17, 124 "column": 2 125 }, 126 "end": { 127 "line": 17, 128 "column": 23 129 } 130 } 131 }, 132 { 133 "type": "MethodDefinition", 134 "key": { 135 "type": "Identifier", 136 "name": "constructor", 137 "decorators": [], 138 "loc": { 139 "start": { 140 "line": 1, 141 "column": 1 142 }, 143 "end": { 144 "line": 1, 145 "column": 1 146 } 147 } 148 }, 149 "kind": "constructor", 150 "static": false, 151 "optional": false, 152 "computed": false, 153 "value": { 154 "type": "FunctionExpression", 155 "function": { 156 "type": "ScriptFunction", 157 "id": { 158 "type": "Identifier", 159 "name": "constructor", 160 "decorators": [], 161 "loc": { 162 "start": { 163 "line": 1, 164 "column": 1 165 }, 166 "end": { 167 "line": 1, 168 "column": 1 169 } 170 } 171 }, 172 "generator": false, 173 "async": false, 174 "expression": false, 175 "params": [], 176 "body": { 177 "type": "BlockStatement", 178 "statements": [], 179 "loc": { 180 "start": { 181 "line": 1, 182 "column": 1 183 }, 184 "end": { 185 "line": 1, 186 "column": 1 187 } 188 } 189 }, 190 "loc": { 191 "start": { 192 "line": 1, 193 "column": 1 194 }, 195 "end": { 196 "line": 1, 197 "column": 1 198 } 199 } 200 }, 201 "loc": { 202 "start": { 203 "line": 1, 204 "column": 1 205 }, 206 "end": { 207 "line": 1, 208 "column": 1 209 } 210 } 211 }, 212 "overloads": [], 213 "decorators": [], 214 "loc": { 215 "start": { 216 "line": 18, 217 "column": 2 218 }, 219 "end": { 220 "line": 18, 221 "column": 2 222 } 223 } 224 } 225 ], 226 "loc": { 227 "start": { 228 "line": 16, 229 "column": 9 230 }, 231 "end": { 232 "line": 18, 233 "column": 2 234 } 235 } 236 }, 237 "loc": { 238 "start": { 239 "line": 16, 240 "column": 1 241 }, 242 "end": { 243 "line": 18, 244 "column": 2 245 } 246 } 247 }, 248 { 249 "type": "ClassDeclaration", 250 "definition": { 251 "id": { 252 "type": "Identifier", 253 "name": "B", 254 "decorators": [], 255 "loc": { 256 "start": { 257 "line": 20, 258 "column": 7 259 }, 260 "end": { 261 "line": 20, 262 "column": 8 263 } 264 } 265 }, 266 "superClass": { 267 "type": "ETSTypeReference", 268 "part": { 269 "type": "ETSTypeReferencePart", 270 "name": { 271 "type": "Identifier", 272 "name": "A", 273 "decorators": [], 274 "loc": { 275 "start": { 276 "line": 20, 277 "column": 17 278 }, 279 "end": { 280 "line": 20, 281 "column": 18 282 } 283 } 284 }, 285 "loc": { 286 "start": { 287 "line": 20, 288 "column": 17 289 }, 290 "end": { 291 "line": 20, 292 "column": 20 293 } 294 } 295 }, 296 "loc": { 297 "start": { 298 "line": 20, 299 "column": 17 300 }, 301 "end": { 302 "line": 20, 303 "column": 20 304 } 305 } 306 }, 307 "implements": [], 308 "body": [ 309 { 310 "type": "ClassProperty", 311 "key": { 312 "type": "Identifier", 313 "name": "foo", 314 "decorators": [], 315 "loc": { 316 "start": { 317 "line": 21, 318 "column": 2 319 }, 320 "end": { 321 "line": 21, 322 "column": 5 323 } 324 } 325 }, 326 "value": { 327 "type": "NumberLiteral", 328 "value": 10, 329 "loc": { 330 "start": { 331 "line": 21, 332 "column": 16 333 }, 334 "end": { 335 "line": 21, 336 "column": 18 337 } 338 } 339 }, 340 "accessibility": "public", 341 "static": false, 342 "readonly": false, 343 "declare": false, 344 "optional": false, 345 "computed": false, 346 "typeAnnotation": { 347 "type": "ETSTypeReference", 348 "part": { 349 "type": "ETSTypeReferencePart", 350 "name": { 351 "type": "Identifier", 352 "name": "number", 353 "decorators": [], 354 "loc": { 355 "start": { 356 "line": 21, 357 "column": 7 358 }, 359 "end": { 360 "line": 21, 361 "column": 13 362 } 363 } 364 }, 365 "loc": { 366 "start": { 367 "line": 21, 368 "column": 7 369 }, 370 "end": { 371 "line": 21, 372 "column": 15 373 } 374 } 375 }, 376 "loc": { 377 "start": { 378 "line": 21, 379 "column": 7 380 }, 381 "end": { 382 "line": 21, 383 "column": 15 384 } 385 } 386 }, 387 "definite": false, 388 "decorators": [], 389 "loc": { 390 "start": { 391 "line": 21, 392 "column": 2 393 }, 394 "end": { 395 "line": 21, 396 "column": 18 397 } 398 } 399 }, 400 { 401 "type": "MethodDefinition", 402 "key": { 403 "type": "Identifier", 404 "name": "constructor", 405 "decorators": [], 406 "loc": { 407 "start": { 408 "line": 1, 409 "column": 1 410 }, 411 "end": { 412 "line": 1, 413 "column": 1 414 } 415 } 416 }, 417 "kind": "constructor", 418 "static": false, 419 "optional": false, 420 "computed": false, 421 "value": { 422 "type": "FunctionExpression", 423 "function": { 424 "type": "ScriptFunction", 425 "id": { 426 "type": "Identifier", 427 "name": "constructor", 428 "decorators": [], 429 "loc": { 430 "start": { 431 "line": 1, 432 "column": 1 433 }, 434 "end": { 435 "line": 1, 436 "column": 1 437 } 438 } 439 }, 440 "generator": false, 441 "async": false, 442 "expression": false, 443 "params": [], 444 "body": { 445 "type": "BlockStatement", 446 "statements": [], 447 "loc": { 448 "start": { 449 "line": 1, 450 "column": 1 451 }, 452 "end": { 453 "line": 1, 454 "column": 1 455 } 456 } 457 }, 458 "loc": { 459 "start": { 460 "line": 1, 461 "column": 1 462 }, 463 "end": { 464 "line": 1, 465 "column": 1 466 } 467 } 468 }, 469 "loc": { 470 "start": { 471 "line": 1, 472 "column": 1 473 }, 474 "end": { 475 "line": 1, 476 "column": 1 477 } 478 } 479 }, 480 "overloads": [], 481 "decorators": [], 482 "loc": { 483 "start": { 484 "line": 22, 485 "column": 2 486 }, 487 "end": { 488 "line": 22, 489 "column": 2 490 } 491 } 492 } 493 ], 494 "loc": { 495 "start": { 496 "line": 20, 497 "column": 19 498 }, 499 "end": { 500 "line": 22, 501 "column": 2 502 } 503 } 504 }, 505 "loc": { 506 "start": { 507 "line": 20, 508 "column": 1 509 }, 510 "end": { 511 "line": 22, 512 "column": 2 513 } 514 } 515 }, 516 { 517 "type": "ClassDeclaration", 518 "definition": { 519 "id": { 520 "type": "Identifier", 521 "name": "ETSGLOBAL", 522 "decorators": [], 523 "loc": { 524 "start": { 525 "line": 1, 526 "column": 1 527 }, 528 "end": { 529 "line": 1, 530 "column": 1 531 } 532 } 533 }, 534 "superClass": null, 535 "implements": [], 536 "body": [ 537 { 538 "type": "MethodDefinition", 539 "key": { 540 "type": "Identifier", 541 "name": "_$init$_", 542 "decorators": [], 543 "loc": { 544 "start": { 545 "line": 1, 546 "column": 1 547 }, 548 "end": { 549 "line": 1, 550 "column": 1 551 } 552 } 553 }, 554 "kind": "method", 555 "accessibility": "public", 556 "static": true, 557 "optional": false, 558 "computed": false, 559 "value": { 560 "type": "FunctionExpression", 561 "function": { 562 "type": "ScriptFunction", 563 "id": { 564 "type": "Identifier", 565 "name": "_$init$_", 566 "decorators": [], 567 "loc": { 568 "start": { 569 "line": 1, 570 "column": 1 571 }, 572 "end": { 573 "line": 1, 574 "column": 1 575 } 576 } 577 }, 578 "generator": false, 579 "async": false, 580 "expression": false, 581 "params": [], 582 "body": { 583 "type": "BlockStatement", 584 "statements": [], 585 "loc": { 586 "start": { 587 "line": 1, 588 "column": 1 589 }, 590 "end": { 591 "line": 1, 592 "column": 1 593 } 594 } 595 }, 596 "loc": { 597 "start": { 598 "line": 1, 599 "column": 1 600 }, 601 "end": { 602 "line": 1, 603 "column": 1 604 } 605 } 606 }, 607 "loc": { 608 "start": { 609 "line": 1, 610 "column": 1 611 }, 612 "end": { 613 "line": 1, 614 "column": 1 615 } 616 } 617 }, 618 "overloads": [], 619 "decorators": [], 620 "loc": { 621 "start": { 622 "line": 1, 623 "column": 1 624 }, 625 "end": { 626 "line": 1, 627 "column": 1 628 } 629 } 630 }, 631 { 632 "type": "MethodDefinition", 633 "key": { 634 "type": "Identifier", 635 "name": "main", 636 "decorators": [], 637 "loc": { 638 "start": { 639 "line": 24, 640 "column": 10 641 }, 642 "end": { 643 "line": 24, 644 "column": 14 645 } 646 } 647 }, 648 "kind": "method", 649 "accessibility": "public", 650 "static": true, 651 "optional": false, 652 "computed": false, 653 "value": { 654 "type": "FunctionExpression", 655 "function": { 656 "type": "ScriptFunction", 657 "id": { 658 "type": "Identifier", 659 "name": "main", 660 "decorators": [], 661 "loc": { 662 "start": { 663 "line": 24, 664 "column": 10 665 }, 666 "end": { 667 "line": 24, 668 "column": 14 669 } 670 } 671 }, 672 "generator": false, 673 "async": false, 674 "expression": false, 675 "params": [], 676 "returnType": { 677 "type": "ETSPrimitiveType", 678 "loc": { 679 "start": { 680 "line": 24, 681 "column": 18 682 }, 683 "end": { 684 "line": 24, 685 "column": 22 686 } 687 } 688 }, 689 "body": { 690 "type": "BlockStatement", 691 "statements": [ 692 { 693 "type": "ExpressionStatement", 694 "expression": { 695 "type": "CallExpression", 696 "callee": { 697 "type": "MemberExpression", 698 "object": { 699 "type": "Identifier", 700 "name": "A", 701 "decorators": [], 702 "loc": { 703 "start": { 704 "line": 25, 705 "column": 5 706 }, 707 "end": { 708 "line": 25, 709 "column": 6 710 } 711 } 712 }, 713 "property": { 714 "type": "Identifier", 715 "name": "foo", 716 "decorators": [], 717 "loc": { 718 "start": { 719 "line": 25, 720 "column": 7 721 }, 722 "end": { 723 "line": 25, 724 "column": 10 725 } 726 } 727 }, 728 "computed": false, 729 "optional": false, 730 "loc": { 731 "start": { 732 "line": 25, 733 "column": 5 734 }, 735 "end": { 736 "line": 25, 737 "column": 10 738 } 739 } 740 }, 741 "arguments": [], 742 "optional": false, 743 "loc": { 744 "start": { 745 "line": 25, 746 "column": 5 747 }, 748 "end": { 749 "line": 25, 750 "column": 12 751 } 752 } 753 }, 754 "loc": { 755 "start": { 756 "line": 25, 757 "column": 5 758 }, 759 "end": { 760 "line": 25, 761 "column": 12 762 } 763 } 764 }, 765 { 766 "type": "ExpressionStatement", 767 "expression": { 768 "type": "MemberExpression", 769 "object": { 770 "type": "ETSNewClassInstanceExpression", 771 "typeReference": { 772 "type": "ETSTypeReference", 773 "part": { 774 "type": "ETSTypeReferencePart", 775 "name": { 776 "type": "Identifier", 777 "name": "B", 778 "decorators": [], 779 "loc": { 780 "start": { 781 "line": 26, 782 "column": 9 783 }, 784 "end": { 785 "line": 26, 786 "column": 10 787 } 788 } 789 }, 790 "loc": { 791 "start": { 792 "line": 26, 793 "column": 9 794 }, 795 "end": { 796 "line": 26, 797 "column": 11 798 } 799 } 800 }, 801 "loc": { 802 "start": { 803 "line": 26, 804 "column": 9 805 }, 806 "end": { 807 "line": 26, 808 "column": 11 809 } 810 } 811 }, 812 "arguments": [], 813 "loc": { 814 "start": { 815 "line": 26, 816 "column": 5 817 }, 818 "end": { 819 "line": 26, 820 "column": 13 821 } 822 } 823 }, 824 "property": { 825 "type": "Identifier", 826 "name": "foo", 827 "decorators": [], 828 "loc": { 829 "start": { 830 "line": 26, 831 "column": 13 832 }, 833 "end": { 834 "line": 26, 835 "column": 16 836 } 837 } 838 }, 839 "computed": false, 840 "optional": false, 841 "loc": { 842 "start": { 843 "line": 26, 844 "column": 5 845 }, 846 "end": { 847 "line": 26, 848 "column": 16 849 } 850 } 851 }, 852 "loc": { 853 "start": { 854 "line": 26, 855 "column": 5 856 }, 857 "end": { 858 "line": 26, 859 "column": 16 860 } 861 } 862 } 863 ], 864 "loc": { 865 "start": { 866 "line": 24, 867 "column": 23 868 }, 869 "end": { 870 "line": 27, 871 "column": 2 872 } 873 } 874 }, 875 "loc": { 876 "start": { 877 "line": 24, 878 "column": 10 879 }, 880 "end": { 881 "line": 27, 882 "column": 2 883 } 884 } 885 }, 886 "loc": { 887 "start": { 888 "line": 24, 889 "column": 10 890 }, 891 "end": { 892 "line": 27, 893 "column": 2 894 } 895 } 896 }, 897 "overloads": [], 898 "decorators": [], 899 "loc": { 900 "start": { 901 "line": 24, 902 "column": 1 903 }, 904 "end": { 905 "line": 27, 906 "column": 2 907 } 908 } 909 } 910 ], 911 "loc": { 912 "start": { 913 "line": 1, 914 "column": 1 915 }, 916 "end": { 917 "line": 1, 918 "column": 1 919 } 920 } 921 }, 922 "loc": { 923 "start": { 924 "line": 1, 925 "column": 1 926 }, 927 "end": { 928 "line": 1, 929 "column": 1 930 } 931 } 932 } 933 ], 934 "loc": { 935 "start": { 936 "line": 1, 937 "column": 1 938 }, 939 "end": { 940 "line": 28, 941 "column": 1 942 } 943 } 944} 945