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