1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "ClassDeclaration", 6 "definition": { 7 "id": { 8 "type": "Identifier", 9 "name": "MyOverride", 10 "loc": { 11 "start": { 12 "line": 17, 13 "column": 16 14 }, 15 "end": { 16 "line": 17, 17 "column": 26 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": 10 94 }, 95 "end": { 96 "line": 20, 97 "column": 2 98 } 99 } 100 }, 101 "body": [ 102 { 103 "type": "MethodDefinition", 104 "key": { 105 "type": "Identifier", 106 "name": "foo", 107 "loc": { 108 "start": { 109 "line": 18, 110 "column": 14 111 }, 112 "end": { 113 "line": 18, 114 "column": 17 115 } 116 } 117 }, 118 "kind": "method", 119 "abstract": true, 120 "static": false, 121 "optional": false, 122 "computed": false, 123 "value": { 124 "type": "FunctionExpression", 125 "function": { 126 "type": "ScriptFunction", 127 "id": null, 128 "generator": false, 129 "async": false, 130 "expression": false, 131 "params": [], 132 "returnType": { 133 "type": "TSUnknownKeyword", 134 "loc": { 135 "start": { 136 "line": 18, 137 "column": 21 138 }, 139 "end": { 140 "line": 18, 141 "column": 28 142 } 143 } 144 }, 145 "loc": { 146 "start": { 147 "line": 18, 148 "column": 17 149 }, 150 "end": { 151 "line": 18, 152 "column": 29 153 } 154 } 155 }, 156 "loc": { 157 "start": { 158 "line": 18, 159 "column": 17 160 }, 161 "end": { 162 "line": 18, 163 "column": 29 164 } 165 } 166 }, 167 "overloads": [], 168 "decorators": [], 169 "loc": { 170 "start": { 171 "line": 18, 172 "column": 5 173 }, 174 "end": { 175 "line": 18, 176 "column": 29 177 } 178 } 179 }, 180 { 181 "type": "MethodDefinition", 182 "key": { 183 "type": "Identifier", 184 "name": "bar", 185 "loc": { 186 "start": { 187 "line": 19, 188 "column": 14 189 }, 190 "end": { 191 "line": 19, 192 "column": 17 193 } 194 } 195 }, 196 "kind": "method", 197 "abstract": true, 198 "static": false, 199 "optional": false, 200 "computed": false, 201 "value": { 202 "type": "FunctionExpression", 203 "function": { 204 "type": "ScriptFunction", 205 "id": null, 206 "generator": false, 207 "async": false, 208 "expression": false, 209 "params": [], 210 "returnType": { 211 "type": "TSVoidKeyword", 212 "loc": { 213 "start": { 214 "line": 19, 215 "column": 21 216 }, 217 "end": { 218 "line": 19, 219 "column": 25 220 } 221 } 222 }, 223 "loc": { 224 "start": { 225 "line": 19, 226 "column": 17 227 }, 228 "end": { 229 "line": 19, 230 "column": 26 231 } 232 } 233 }, 234 "loc": { 235 "start": { 236 "line": 19, 237 "column": 17 238 }, 239 "end": { 240 "line": 19, 241 "column": 26 242 } 243 } 244 }, 245 "overloads": [], 246 "decorators": [], 247 "loc": { 248 "start": { 249 "line": 19, 250 "column": 5 251 }, 252 "end": { 253 "line": 19, 254 "column": 26 255 } 256 } 257 } 258 ], 259 "indexSignatures": [], 260 "loc": { 261 "start": { 262 "line": 17, 263 "column": 27 264 }, 265 "end": { 266 "line": 20, 267 "column": 2 268 } 269 } 270 }, 271 "decorators": [], 272 "loc": { 273 "start": { 274 "line": 17, 275 "column": 10 276 }, 277 "end": { 278 "line": 20, 279 "column": 2 280 } 281 } 282 }, 283 { 284 "type": "ClassDeclaration", 285 "definition": { 286 "id": { 287 "type": "Identifier", 288 "name": "SubOverride", 289 "loc": { 290 "start": { 291 "line": 22, 292 "column": 16 293 }, 294 "end": { 295 "line": 22, 296 "column": 27 297 } 298 } 299 }, 300 "superClass": { 301 "type": "Identifier", 302 "name": "MyOverride", 303 "loc": { 304 "start": { 305 "line": 22, 306 "column": 36 307 }, 308 "end": { 309 "line": 22, 310 "column": 46 311 } 312 } 313 }, 314 "implements": [], 315 "constructor": { 316 "type": "MethodDefinition", 317 "key": { 318 "type": "Identifier", 319 "name": "constructor", 320 "loc": { 321 "start": { 322 "line": 1, 323 "column": 1 324 }, 325 "end": { 326 "line": 1, 327 "column": 1 328 } 329 } 330 }, 331 "kind": "constructor", 332 "static": false, 333 "optional": false, 334 "computed": false, 335 "value": { 336 "type": "FunctionExpression", 337 "function": { 338 "type": "ScriptFunction", 339 "id": null, 340 "generator": false, 341 "async": false, 342 "expression": false, 343 "params": [ 344 { 345 "type": "RestElement", 346 "argument": { 347 "type": "Identifier", 348 "name": "args", 349 "loc": { 350 "start": { 351 "line": 1, 352 "column": 1 353 }, 354 "end": { 355 "line": 1, 356 "column": 1 357 } 358 } 359 }, 360 "loc": { 361 "start": { 362 "line": 1, 363 "column": 1 364 }, 365 "end": { 366 "line": 1, 367 "column": 1 368 } 369 } 370 } 371 ], 372 "body": { 373 "type": "BlockStatement", 374 "statements": [ 375 { 376 "type": "ExpressionStatement", 377 "expression": { 378 "type": "CallExpression", 379 "callee": { 380 "type": "Super", 381 "loc": { 382 "start": { 383 "line": 1, 384 "column": 1 385 }, 386 "end": { 387 "line": 1, 388 "column": 1 389 } 390 } 391 }, 392 "arguments": [ 393 { 394 "type": "SpreadElement", 395 "argument": { 396 "type": "Identifier", 397 "name": "args", 398 "loc": { 399 "start": { 400 "line": 1, 401 "column": 1 402 }, 403 "end": { 404 "line": 1, 405 "column": 1 406 } 407 } 408 }, 409 "loc": { 410 "start": { 411 "line": 1, 412 "column": 1 413 }, 414 "end": { 415 "line": 1, 416 "column": 1 417 } 418 } 419 } 420 ], 421 "optional": false, 422 "loc": { 423 "start": { 424 "line": 1, 425 "column": 1 426 }, 427 "end": { 428 "line": 1, 429 "column": 1 430 } 431 } 432 }, 433 "loc": { 434 "start": { 435 "line": 1, 436 "column": 1 437 }, 438 "end": { 439 "line": 1, 440 "column": 1 441 } 442 } 443 } 444 ], 445 "loc": { 446 "start": { 447 "line": 1, 448 "column": 1 449 }, 450 "end": { 451 "line": 1, 452 "column": 1 453 } 454 } 455 }, 456 "loc": { 457 "start": { 458 "line": 1, 459 "column": 1 460 }, 461 "end": { 462 "line": 1, 463 "column": 1 464 } 465 } 466 }, 467 "loc": { 468 "start": { 469 "line": 1, 470 "column": 1 471 }, 472 "end": { 473 "line": 1, 474 "column": 1 475 } 476 } 477 }, 478 "overloads": [], 479 "decorators": [], 480 "loc": { 481 "start": { 482 "line": 22, 483 "column": 10 484 }, 485 "end": { 486 "line": 25, 487 "column": 2 488 } 489 } 490 }, 491 "body": [ 492 { 493 "type": "MethodDefinition", 494 "key": { 495 "type": "Identifier", 496 "name": "foo", 497 "loc": { 498 "start": { 499 "line": 23, 500 "column": 23 501 }, 502 "end": { 503 "line": 23, 504 "column": 26 505 } 506 } 507 }, 508 "kind": "method", 509 "abstract": true, 510 "static": false, 511 "optional": false, 512 "override": true, 513 "computed": false, 514 "value": { 515 "type": "FunctionExpression", 516 "function": { 517 "type": "ScriptFunction", 518 "id": null, 519 "generator": false, 520 "async": false, 521 "expression": false, 522 "params": [], 523 "returnType": { 524 "type": "TSNumberKeyword", 525 "loc": { 526 "start": { 527 "line": 23, 528 "column": 30 529 }, 530 "end": { 531 "line": 23, 532 "column": 36 533 } 534 } 535 }, 536 "loc": { 537 "start": { 538 "line": 23, 539 "column": 26 540 }, 541 "end": { 542 "line": 23, 543 "column": 37 544 } 545 } 546 }, 547 "loc": { 548 "start": { 549 "line": 23, 550 "column": 26 551 }, 552 "end": { 553 "line": 23, 554 "column": 37 555 } 556 } 557 }, 558 "overloads": [], 559 "decorators": [], 560 "loc": { 561 "start": { 562 "line": 23, 563 "column": 5 564 }, 565 "end": { 566 "line": 23, 567 "column": 37 568 } 569 } 570 }, 571 { 572 "type": "MethodDefinition", 573 "key": { 574 "type": "Identifier", 575 "name": "bar", 576 "loc": { 577 "start": { 578 "line": 24, 579 "column": 5 580 }, 581 "end": { 582 "line": 24, 583 "column": 8 584 } 585 } 586 }, 587 "kind": "method", 588 "static": false, 589 "optional": false, 590 "computed": false, 591 "value": { 592 "type": "FunctionExpression", 593 "function": { 594 "type": "ScriptFunction", 595 "id": null, 596 "generator": false, 597 "async": false, 598 "expression": false, 599 "params": [], 600 "body": { 601 "type": "BlockStatement", 602 "statements": [], 603 "loc": { 604 "start": { 605 "line": 24, 606 "column": 11 607 }, 608 "end": { 609 "line": 24, 610 "column": 14 611 } 612 } 613 }, 614 "loc": { 615 "start": { 616 "line": 24, 617 "column": 8 618 }, 619 "end": { 620 "line": 24, 621 "column": 14 622 } 623 } 624 }, 625 "loc": { 626 "start": { 627 "line": 24, 628 "column": 8 629 }, 630 "end": { 631 "line": 24, 632 "column": 14 633 } 634 } 635 }, 636 "overloads": [], 637 "decorators": [], 638 "loc": { 639 "start": { 640 "line": 24, 641 "column": 5 642 }, 643 "end": { 644 "line": 24, 645 "column": 14 646 } 647 } 648 } 649 ], 650 "indexSignatures": [], 651 "loc": { 652 "start": { 653 "line": 22, 654 "column": 47 655 }, 656 "end": { 657 "line": 25, 658 "column": 2 659 } 660 } 661 }, 662 "decorators": [], 663 "loc": { 664 "start": { 665 "line": 22, 666 "column": 10 667 }, 668 "end": { 669 "line": 25, 670 "column": 2 671 } 672 } 673 } 674 ], 675 "loc": { 676 "start": { 677 "line": 1, 678 "column": 1 679 }, 680 "end": { 681 "line": 25, 682 "column": 2 683 } 684 } 685} 686