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