1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "A",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 14
15            },
16            "end": {
17              "line": 16,
18              "column": 15
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "constructor",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 1,
34                  "column": 1
35                },
36                "end": {
37                  "line": 1,
38                  "column": 1
39                }
40              }
41            },
42            "kind": "constructor",
43            "static": false,
44            "optional": false,
45            "computed": false,
46            "value": {
47              "type": "FunctionExpression",
48              "function": {
49                "type": "ScriptFunction",
50                "id": {
51                  "type": "Identifier",
52                  "name": "constructor",
53                  "decorators": [],
54                  "loc": {
55                    "start": {
56                      "line": 1,
57                      "column": 1
58                    },
59                    "end": {
60                      "line": 1,
61                      "column": 1
62                    }
63                  }
64                },
65                "generator": false,
66                "async": false,
67                "expression": false,
68                "params": [],
69                "body": {
70                  "type": "BlockStatement",
71                  "statements": [],
72                  "loc": {
73                    "start": {
74                      "line": 1,
75                      "column": 1
76                    },
77                    "end": {
78                      "line": 1,
79                      "column": 1
80                    }
81                  }
82                },
83                "loc": {
84                  "start": {
85                    "line": 1,
86                    "column": 1
87                  },
88                  "end": {
89                    "line": 1,
90                    "column": 1
91                  }
92                }
93              },
94              "loc": {
95                "start": {
96                  "line": 1,
97                  "column": 1
98                },
99                "end": {
100                  "line": 1,
101                  "column": 1
102                }
103              }
104            },
105            "overloads": [],
106            "decorators": [],
107            "loc": {
108              "start": {
109                "line": 16,
110                "column": 18
111              },
112              "end": {
113                "line": 16,
114                "column": 18
115              }
116            }
117          }
118        ],
119        "loc": {
120          "start": {
121            "line": 16,
122            "column": 16
123          },
124          "end": {
125            "line": 16,
126            "column": 18
127          }
128        }
129      },
130      "loc": {
131        "start": {
132          "line": 16,
133          "column": 8
134        },
135        "end": {
136          "line": 16,
137          "column": 18
138        }
139      }
140    },
141    {
142      "type": "ClassDeclaration",
143      "definition": {
144        "id": {
145          "type": "Identifier",
146          "name": "ETSGLOBAL",
147          "decorators": [],
148          "loc": {
149            "start": {
150              "line": 1,
151              "column": 1
152            },
153            "end": {
154              "line": 1,
155              "column": 1
156            }
157          }
158        },
159        "superClass": null,
160        "implements": [],
161        "body": [
162          {
163            "type": "MethodDefinition",
164            "key": {
165              "type": "Identifier",
166              "name": "_$init$_",
167              "decorators": [],
168              "loc": {
169                "start": {
170                  "line": 1,
171                  "column": 1
172                },
173                "end": {
174                  "line": 1,
175                  "column": 1
176                }
177              }
178            },
179            "kind": "method",
180            "accessibility": "public",
181            "static": true,
182            "optional": false,
183            "computed": false,
184            "value": {
185              "type": "FunctionExpression",
186              "function": {
187                "type": "ScriptFunction",
188                "id": {
189                  "type": "Identifier",
190                  "name": "_$init$_",
191                  "decorators": [],
192                  "loc": {
193                    "start": {
194                      "line": 1,
195                      "column": 1
196                    },
197                    "end": {
198                      "line": 1,
199                      "column": 1
200                    }
201                  }
202                },
203                "generator": false,
204                "async": false,
205                "expression": false,
206                "params": [],
207                "body": {
208                  "type": "BlockStatement",
209                  "statements": [],
210                  "loc": {
211                    "start": {
212                      "line": 1,
213                      "column": 1
214                    },
215                    "end": {
216                      "line": 1,
217                      "column": 1
218                    }
219                  }
220                },
221                "loc": {
222                  "start": {
223                    "line": 1,
224                    "column": 1
225                  },
226                  "end": {
227                    "line": 1,
228                    "column": 1
229                  }
230                }
231              },
232              "loc": {
233                "start": {
234                  "line": 1,
235                  "column": 1
236                },
237                "end": {
238                  "line": 1,
239                  "column": 1
240                }
241              }
242            },
243            "overloads": [],
244            "decorators": [],
245            "loc": {
246              "start": {
247                "line": 1,
248                "column": 1
249              },
250              "end": {
251                "line": 1,
252                "column": 1
253              }
254            }
255          },
256          {
257            "type": "MethodDefinition",
258            "key": {
259              "type": "Identifier",
260              "name": "createA",
261              "decorators": [],
262              "loc": {
263                "start": {
264                  "line": 17,
265                  "column": 17
266                },
267                "end": {
268                  "line": 17,
269                  "column": 24
270                }
271              }
272            },
273            "kind": "method",
274            "accessibility": "public",
275            "static": true,
276            "optional": false,
277            "computed": false,
278            "value": {
279              "type": "FunctionExpression",
280              "function": {
281                "type": "ScriptFunction",
282                "id": {
283                  "type": "Identifier",
284                  "name": "createA",
285                  "decorators": [],
286                  "loc": {
287                    "start": {
288                      "line": 17,
289                      "column": 17
290                    },
291                    "end": {
292                      "line": 17,
293                      "column": 24
294                    }
295                  }
296                },
297                "generator": false,
298                "async": false,
299                "expression": false,
300                "params": [],
301                "returnType": {
302                  "type": "ETSTypeReference",
303                  "part": {
304                    "type": "ETSTypeReferencePart",
305                    "name": {
306                      "type": "Identifier",
307                      "name": "A",
308                      "decorators": [],
309                      "loc": {
310                        "start": {
311                          "line": 17,
312                          "column": 28
313                        },
314                        "end": {
315                          "line": 17,
316                          "column": 29
317                        }
318                      }
319                    },
320                    "loc": {
321                      "start": {
322                        "line": 17,
323                        "column": 28
324                      },
325                      "end": {
326                        "line": 17,
327                        "column": 31
328                      }
329                    }
330                  },
331                  "loc": {
332                    "start": {
333                      "line": 17,
334                      "column": 28
335                    },
336                    "end": {
337                      "line": 17,
338                      "column": 31
339                    }
340                  }
341                },
342                "body": {
343                  "type": "BlockStatement",
344                  "statements": [
345                    {
346                      "type": "ReturnStatement",
347                      "argument": {
348                        "type": "ETSNewClassInstanceExpression",
349                        "typeReference": {
350                          "type": "ETSTypeReference",
351                          "part": {
352                            "type": "ETSTypeReferencePart",
353                            "name": {
354                              "type": "Identifier",
355                              "name": "A",
356                              "decorators": [],
357                              "loc": {
358                                "start": {
359                                  "line": 17,
360                                  "column": 43
361                                },
362                                "end": {
363                                  "line": 17,
364                                  "column": 44
365                                }
366                              }
367                            },
368                            "loc": {
369                              "start": {
370                                "line": 17,
371                                "column": 43
372                              },
373                              "end": {
374                                "line": 17,
375                                "column": 45
376                              }
377                            }
378                          },
379                          "loc": {
380                            "start": {
381                              "line": 17,
382                              "column": 43
383                            },
384                            "end": {
385                              "line": 17,
386                              "column": 45
387                            }
388                          }
389                        },
390                        "arguments": [],
391                        "loc": {
392                          "start": {
393                            "line": 17,
394                            "column": 39
395                          },
396                          "end": {
397                            "line": 17,
398                            "column": 47
399                          }
400                        }
401                      },
402                      "loc": {
403                        "start": {
404                          "line": 17,
405                          "column": 32
406                        },
407                        "end": {
408                          "line": 17,
409                          "column": 47
410                        }
411                      }
412                    }
413                  ],
414                  "loc": {
415                    "start": {
416                      "line": 17,
417                      "column": 30
418                    },
419                    "end": {
420                      "line": 17,
421                      "column": 49
422                    }
423                  }
424                },
425                "loc": {
426                  "start": {
427                    "line": 17,
428                    "column": 24
429                  },
430                  "end": {
431                    "line": 17,
432                    "column": 49
433                  }
434                }
435              },
436              "loc": {
437                "start": {
438                  "line": 17,
439                  "column": 24
440                },
441                "end": {
442                  "line": 17,
443                  "column": 49
444                }
445              }
446            },
447            "overloads": [],
448            "decorators": [],
449            "loc": {
450              "start": {
451                "line": 17,
452                "column": 8
453              },
454              "end": {
455                "line": 17,
456                "column": 49
457              }
458            }
459          }
460        ],
461        "loc": {
462          "start": {
463            "line": 1,
464            "column": 1
465          },
466          "end": {
467            "line": 1,
468            "column": 1
469          }
470        }
471      },
472      "loc": {
473        "start": {
474          "line": 1,
475          "column": 1
476        },
477        "end": {
478          "line": 1,
479          "column": 1
480        }
481      }
482    }
483  ],
484  "loc": {
485    "start": {
486      "line": 1,
487      "column": 1
488    },
489    "end": {
490      "line": 18,
491      "column": 1
492    }
493  }
494}
495