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