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