1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "Foo",
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": 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          "annotations": [],
91          "loc": {
92            "start": {
93              "line": 17,
94              "column": 1
95            },
96            "end": {
97              "line": 21,
98              "column": 2
99            }
100          }
101        },
102        "body": [
103          {
104            "type": "MethodDefinition",
105            "key": {
106              "type": "Identifier",
107              "name": "bar",
108              "loc": {
109                "start": {
110                  "line": 18,
111                  "column": 5
112                },
113                "end": {
114                  "line": 18,
115                  "column": 8
116                }
117              }
118            },
119            "kind": "method",
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                "loc": {
133                  "start": {
134                    "line": 18,
135                    "column": 8
136                  },
137                  "end": {
138                    "line": 18,
139                    "column": 11
140                  }
141                }
142              },
143              "loc": {
144                "start": {
145                  "line": 18,
146                  "column": 8
147                },
148                "end": {
149                  "line": 18,
150                  "column": 11
151                }
152              }
153            },
154            "overloads": [],
155            "decorators": [],
156            "annotations": [],
157            "loc": {
158              "start": {
159                "line": 18,
160                "column": 5
161              },
162              "end": {
163                "line": 18,
164                "column": 11
165              }
166            }
167          },
168          {
169            "type": "MethodDefinition",
170            "key": {
171              "type": "Identifier",
172              "name": "bar",
173              "loc": {
174                "start": {
175                  "line": 19,
176                  "column": 5
177                },
178                "end": {
179                  "line": 19,
180                  "column": 8
181                }
182              }
183            },
184            "kind": "method",
185            "static": false,
186            "optional": false,
187            "computed": false,
188            "value": {
189              "type": "FunctionExpression",
190              "function": {
191                "type": "ScriptFunction",
192                "id": null,
193                "generator": false,
194                "async": false,
195                "expression": false,
196                "params": [],
197                "loc": {
198                  "start": {
199                    "line": 19,
200                    "column": 8
201                  },
202                  "end": {
203                    "line": 19,
204                    "column": 11
205                  }
206                }
207              },
208              "loc": {
209                "start": {
210                  "line": 19,
211                  "column": 8
212                },
213                "end": {
214                  "line": 19,
215                  "column": 11
216                }
217              }
218            },
219            "overloads": [],
220            "decorators": [],
221            "annotations": [],
222            "loc": {
223              "start": {
224                "line": 19,
225                "column": 5
226              },
227              "end": {
228                "line": 19,
229                "column": 11
230              }
231            }
232          },
233          {
234            "type": "MethodDefinition",
235            "key": {
236              "type": "Identifier",
237              "name": "bar",
238              "loc": {
239                "start": {
240                  "line": 20,
241                  "column": 5
242                },
243                "end": {
244                  "line": 20,
245                  "column": 8
246                }
247              }
248            },
249            "kind": "method",
250            "static": false,
251            "optional": true,
252            "computed": false,
253            "value": {
254              "type": "FunctionExpression",
255              "function": {
256                "type": "ScriptFunction",
257                "id": null,
258                "generator": false,
259                "async": false,
260                "expression": false,
261                "params": [],
262                "body": {
263                  "type": "BlockStatement",
264                  "statements": [],
265                  "loc": {
266                    "start": {
267                      "line": 20,
268                      "column": 12
269                    },
270                    "end": {
271                      "line": 20,
272                      "column": 15
273                    }
274                  }
275                },
276                "loc": {
277                  "start": {
278                    "line": 20,
279                    "column": 9
280                  },
281                  "end": {
282                    "line": 20,
283                    "column": 15
284                  }
285                }
286              },
287              "loc": {
288                "start": {
289                  "line": 20,
290                  "column": 9
291                },
292                "end": {
293                  "line": 20,
294                  "column": 15
295                }
296              }
297            },
298            "overloads": [],
299            "decorators": [],
300            "annotations": [],
301            "loc": {
302              "start": {
303                "line": 20,
304                "column": 5
305              },
306              "end": {
307                "line": 20,
308                "column": 15
309              }
310            }
311          }
312        ],
313        "indexSignatures": [],
314        "loc": {
315          "start": {
316            "line": 17,
317            "column": 11
318          },
319          "end": {
320            "line": 21,
321            "column": 2
322          }
323        }
324      },
325      "decorators": [],
326      "isAnnotationDeclaration": false,
327      "loc": {
328        "start": {
329          "line": 17,
330          "column": 1
331        },
332        "end": {
333          "line": 21,
334          "column": 2
335        }
336      }
337    }
338  ],
339  "loc": {
340    "start": {
341      "line": 1,
342      "column": 1
343    },
344    "end": {
345      "line": 21,
346      "column": 2
347    }
348  }
349}
350