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 "loc": { 441 "start": { 442 "line": 20, 443 "column": 5 444 }, 445 "end": { 446 "line": 24, 447 "column": 6 448 } 449 } 450 }, 451 "body": [ 452 { 453 "type": "ClassProperty", 454 "key": { 455 "type": "Identifier", 456 "name": "s", 457 "loc": { 458 "start": { 459 "line": 18, 460 "column": 5 461 }, 462 "end": { 463 "line": 18, 464 "column": 6 465 } 466 } 467 }, 468 "static": false, 469 "readonly": false, 470 "declare": false, 471 "optional": false, 472 "computed": false, 473 "typeAnnotation": { 474 "type": "TSStringKeyword", 475 "loc": { 476 "start": { 477 "line": 18, 478 "column": 8 479 }, 480 "end": { 481 "line": 18, 482 "column": 14 483 } 484 } 485 }, 486 "decorators": [], 487 "loc": { 488 "start": { 489 "line": 18, 490 "column": 5 491 }, 492 "end": { 493 "line": 18, 494 "column": 6 495 } 496 } 497 }, 498 { 499 "type": "ClassProperty", 500 "key": { 501 "type": "Identifier", 502 "name": "n", 503 "loc": { 504 "start": { 505 "line": 19, 506 "column": 5 507 }, 508 "end": { 509 "line": 19, 510 "column": 6 511 } 512 } 513 }, 514 "static": false, 515 "readonly": false, 516 "declare": false, 517 "optional": false, 518 "computed": false, 519 "typeAnnotation": { 520 "type": "TSNumberKeyword", 521 "loc": { 522 "start": { 523 "line": 19, 524 "column": 8 525 }, 526 "end": { 527 "line": 19, 528 "column": 14 529 } 530 } 531 }, 532 "decorators": [], 533 "loc": { 534 "start": { 535 "line": 19, 536 "column": 5 537 }, 538 "end": { 539 "line": 19, 540 "column": 6 541 } 542 } 543 }, 544 { 545 "type": "MethodDefinition", 546 "key": { 547 "type": "Identifier", 548 "name": "f", 549 "loc": { 550 "start": { 551 "line": 25, 552 "column": 5 553 }, 554 "end": { 555 "line": 25, 556 "column": 6 557 } 558 } 559 }, 560 "kind": "method", 561 "static": false, 562 "optional": false, 563 "computed": false, 564 "value": { 565 "type": "FunctionExpression", 566 "function": { 567 "type": "ScriptFunction", 568 "id": null, 569 "generator": false, 570 "async": false, 571 "expression": false, 572 "params": [], 573 "returnType": { 574 "type": "TSVoidKeyword", 575 "loc": { 576 "start": { 577 "line": 25, 578 "column": 10 579 }, 580 "end": { 581 "line": 25, 582 "column": 14 583 } 584 } 585 }, 586 "body": { 587 "type": "BlockStatement", 588 "statements": [ 589 { 590 "type": "ExpressionStatement", 591 "expression": { 592 "type": "UpdateExpression", 593 "operator": "++", 594 "prefix": false, 595 "argument": { 596 "type": "MemberExpression", 597 "object": { 598 "type": "ThisExpression", 599 "loc": { 600 "start": { 601 "line": 26, 602 "column": 9 603 }, 604 "end": { 605 "line": 26, 606 "column": 13 607 } 608 } 609 }, 610 "property": { 611 "type": "Identifier", 612 "name": "n", 613 "loc": { 614 "start": { 615 "line": 26, 616 "column": 14 617 }, 618 "end": { 619 "line": 26, 620 "column": 15 621 } 622 } 623 }, 624 "computed": false, 625 "optional": false, 626 "loc": { 627 "start": { 628 "line": 26, 629 "column": 9 630 }, 631 "end": { 632 "line": 26, 633 "column": 15 634 } 635 } 636 }, 637 "loc": { 638 "start": { 639 "line": 26, 640 "column": 9 641 }, 642 "end": { 643 "line": 26, 644 "column": 17 645 } 646 } 647 }, 648 "loc": { 649 "start": { 650 "line": 26, 651 "column": 9 652 }, 653 "end": { 654 "line": 26, 655 "column": 18 656 } 657 } 658 } 659 ], 660 "loc": { 661 "start": { 662 "line": 25, 663 "column": 15 664 }, 665 "end": { 666 "line": 27, 667 "column": 6 668 } 669 } 670 }, 671 "loc": { 672 "start": { 673 "line": 25, 674 "column": 6 675 }, 676 "end": { 677 "line": 27, 678 "column": 6 679 } 680 } 681 }, 682 "loc": { 683 "start": { 684 "line": 25, 685 "column": 6 686 }, 687 "end": { 688 "line": 27, 689 "column": 6 690 } 691 } 692 }, 693 "overloads": [], 694 "decorators": [], 695 "loc": { 696 "start": { 697 "line": 25, 698 "column": 5 699 }, 700 "end": { 701 "line": 27, 702 "column": 6 703 } 704 } 705 } 706 ], 707 "indexSignatures": [], 708 "loc": { 709 "start": { 710 "line": 17, 711 "column": 11 712 }, 713 "end": { 714 "line": 28, 715 "column": 2 716 } 717 } 718 }, 719 "decorators": [], 720 "loc": { 721 "start": { 722 "line": 17, 723 "column": 1 724 }, 725 "end": { 726 "line": 28, 727 "column": 2 728 } 729 } 730 } 731 ], 732 "loc": { 733 "start": { 734 "line": 1, 735 "column": 1 736 }, 737 "end": { 738 "line": 29, 739 "column": 1 740 } 741 } 742} 743