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