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