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