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