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