1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "B",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 18,
14              "column": 7
15            },
16            "end": {
17              "line": 18,
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": 19,
34                  "column": 3
35                },
36                "end": {
37                  "line": 19,
38                  "column": 4
39                }
40              }
41            },
42            "value": {
43              "type": "StringLiteral",
44              "value": "",
45              "loc": {
46                "start": {
47                  "line": 19,
48                  "column": 15
49                },
50                "end": {
51                  "line": 19,
52                  "column": 17
53                }
54              }
55            },
56            "accessibility": "public",
57            "static": false,
58            "readonly": false,
59            "declare": false,
60            "optional": false,
61            "computed": false,
62            "typeAnnotation": {
63              "type": "ETSTypeReference",
64              "part": {
65                "type": "ETSTypeReferencePart",
66                "name": {
67                  "type": "Identifier",
68                  "name": "String",
69                  "decorators": [],
70                  "loc": {
71                    "start": {
72                      "line": 19,
73                      "column": 6
74                    },
75                    "end": {
76                      "line": 19,
77                      "column": 12
78                    }
79                  }
80                },
81                "loc": {
82                  "start": {
83                    "line": 19,
84                    "column": 6
85                  },
86                  "end": {
87                    "line": 19,
88                    "column": 14
89                  }
90                }
91              },
92              "loc": {
93                "start": {
94                  "line": 19,
95                  "column": 6
96                },
97                "end": {
98                  "line": 19,
99                  "column": 14
100                }
101              }
102            },
103            "definite": false,
104            "decorators": [],
105            "loc": {
106              "start": {
107                "line": 19,
108                "column": 3
109              },
110              "end": {
111                "line": 19,
112                "column": 17
113              }
114            }
115          },
116          {
117            "type": "MethodDefinition",
118            "key": {
119              "type": "Identifier",
120              "name": "constructor",
121              "decorators": [],
122              "loc": {
123                "start": {
124                  "line": 1,
125                  "column": 1
126                },
127                "end": {
128                  "line": 1,
129                  "column": 1
130                }
131              }
132            },
133            "kind": "constructor",
134            "static": false,
135            "optional": false,
136            "computed": false,
137            "value": {
138              "type": "FunctionExpression",
139              "function": {
140                "type": "ScriptFunction",
141                "id": {
142                  "type": "Identifier",
143                  "name": "constructor",
144                  "decorators": [],
145                  "loc": {
146                    "start": {
147                      "line": 1,
148                      "column": 1
149                    },
150                    "end": {
151                      "line": 1,
152                      "column": 1
153                    }
154                  }
155                },
156                "generator": false,
157                "async": false,
158                "expression": false,
159                "params": [],
160                "body": {
161                  "type": "BlockStatement",
162                  "statements": [],
163                  "loc": {
164                    "start": {
165                      "line": 1,
166                      "column": 1
167                    },
168                    "end": {
169                      "line": 1,
170                      "column": 1
171                    }
172                  }
173                },
174                "loc": {
175                  "start": {
176                    "line": 1,
177                    "column": 1
178                  },
179                  "end": {
180                    "line": 1,
181                    "column": 1
182                  }
183                }
184              },
185              "loc": {
186                "start": {
187                  "line": 1,
188                  "column": 1
189                },
190                "end": {
191                  "line": 1,
192                  "column": 1
193                }
194              }
195            },
196            "overloads": [],
197            "decorators": [],
198            "loc": {
199              "start": {
200                "line": 20,
201                "column": 2
202              },
203              "end": {
204                "line": 20,
205                "column": 2
206              }
207            }
208          }
209        ],
210        "loc": {
211          "start": {
212            "line": 18,
213            "column": 9
214          },
215          "end": {
216            "line": 20,
217            "column": 2
218          }
219        }
220      },
221      "loc": {
222        "start": {
223          "line": 18,
224          "column": 1
225        },
226        "end": {
227          "line": 20,
228          "column": 2
229        }
230      }
231    },
232    {
233      "type": "ClassDeclaration",
234      "definition": {
235        "id": {
236          "type": "Identifier",
237          "name": "A",
238          "decorators": [],
239          "loc": {
240            "start": {
241              "line": 22,
242              "column": 7
243            },
244            "end": {
245              "line": 22,
246              "column": 8
247            }
248          }
249        },
250        "superClass": {
251          "type": "ETSTypeReference",
252          "part": {
253            "type": "ETSTypeReferencePart",
254            "name": {
255              "type": "Identifier",
256              "name": "B",
257              "decorators": [],
258              "loc": {
259                "start": {
260                  "line": 22,
261                  "column": 17
262                },
263                "end": {
264                  "line": 22,
265                  "column": 18
266                }
267              }
268            },
269            "loc": {
270              "start": {
271                "line": 22,
272                "column": 17
273              },
274              "end": {
275                "line": 22,
276                "column": 20
277              }
278            }
279          },
280          "loc": {
281            "start": {
282              "line": 22,
283              "column": 17
284            },
285            "end": {
286              "line": 22,
287              "column": 20
288            }
289          }
290        },
291        "implements": [],
292        "body": [
293          {
294            "type": "MethodDefinition",
295            "key": {
296              "type": "Identifier",
297              "name": "foo",
298              "decorators": [],
299              "loc": {
300                "start": {
301                  "line": 23,
302                  "column": 3
303                },
304                "end": {
305                  "line": 23,
306                  "column": 6
307                }
308              }
309            },
310            "kind": "method",
311            "accessibility": "public",
312            "static": false,
313            "optional": false,
314            "computed": false,
315            "value": {
316              "type": "FunctionExpression",
317              "function": {
318                "type": "ScriptFunction",
319                "id": {
320                  "type": "Identifier",
321                  "name": "foo",
322                  "decorators": [],
323                  "loc": {
324                    "start": {
325                      "line": 23,
326                      "column": 3
327                    },
328                    "end": {
329                      "line": 23,
330                      "column": 6
331                    }
332                  }
333                },
334                "generator": false,
335                "async": false,
336                "expression": false,
337                "params": [],
338                "returnType": {
339                  "type": "ETSPrimitiveType",
340                  "loc": {
341                    "start": {
342                      "line": 23,
343                      "column": 10
344                    },
345                    "end": {
346                      "line": 23,
347                      "column": 14
348                    }
349                  }
350                },
351                "body": {
352                  "type": "BlockStatement",
353                  "statements": [
354                    {
355                      "type": "ExpressionStatement",
356                      "expression": {
357                        "type": "AssignmentExpression",
358                        "operator": "=",
359                        "left": {
360                          "type": "Identifier",
361                          "name": "a",
362                          "decorators": [],
363                          "loc": {
364                            "start": {
365                              "line": 24,
366                              "column": 5
367                            },
368                            "end": {
369                              "line": 24,
370                              "column": 6
371                            }
372                          }
373                        },
374                        "right": {
375                          "type": "NumberLiteral",
376                          "value": 12,
377                          "loc": {
378                            "start": {
379                              "line": 24,
380                              "column": 9
381                            },
382                            "end": {
383                              "line": 24,
384                              "column": 11
385                            }
386                          }
387                        },
388                        "loc": {
389                          "start": {
390                            "line": 24,
391                            "column": 5
392                          },
393                          "end": {
394                            "line": 24,
395                            "column": 11
396                          }
397                        }
398                      },
399                      "loc": {
400                        "start": {
401                          "line": 24,
402                          "column": 5
403                        },
404                        "end": {
405                          "line": 24,
406                          "column": 12
407                        }
408                      }
409                    }
410                  ],
411                  "loc": {
412                    "start": {
413                      "line": 23,
414                      "column": 15
415                    },
416                    "end": {
417                      "line": 25,
418                      "column": 4
419                    }
420                  }
421                },
422                "loc": {
423                  "start": {
424                    "line": 23,
425                    "column": 6
426                  },
427                  "end": {
428                    "line": 25,
429                    "column": 4
430                  }
431                }
432              },
433              "loc": {
434                "start": {
435                  "line": 23,
436                  "column": 6
437                },
438                "end": {
439                  "line": 25,
440                  "column": 4
441                }
442              }
443            },
444            "overloads": [],
445            "decorators": [],
446            "loc": {
447              "start": {
448                "line": 23,
449                "column": 3
450              },
451              "end": {
452                "line": 25,
453                "column": 4
454              }
455            }
456          },
457          {
458            "type": "MethodDefinition",
459            "key": {
460              "type": "Identifier",
461              "name": "constructor",
462              "decorators": [],
463              "loc": {
464                "start": {
465                  "line": 1,
466                  "column": 1
467                },
468                "end": {
469                  "line": 1,
470                  "column": 1
471                }
472              }
473            },
474            "kind": "constructor",
475            "static": false,
476            "optional": false,
477            "computed": false,
478            "value": {
479              "type": "FunctionExpression",
480              "function": {
481                "type": "ScriptFunction",
482                "id": {
483                  "type": "Identifier",
484                  "name": "constructor",
485                  "decorators": [],
486                  "loc": {
487                    "start": {
488                      "line": 1,
489                      "column": 1
490                    },
491                    "end": {
492                      "line": 1,
493                      "column": 1
494                    }
495                  }
496                },
497                "generator": false,
498                "async": false,
499                "expression": false,
500                "params": [],
501                "body": {
502                  "type": "BlockStatement",
503                  "statements": [],
504                  "loc": {
505                    "start": {
506                      "line": 1,
507                      "column": 1
508                    },
509                    "end": {
510                      "line": 1,
511                      "column": 1
512                    }
513                  }
514                },
515                "loc": {
516                  "start": {
517                    "line": 1,
518                    "column": 1
519                  },
520                  "end": {
521                    "line": 1,
522                    "column": 1
523                  }
524                }
525              },
526              "loc": {
527                "start": {
528                  "line": 1,
529                  "column": 1
530                },
531                "end": {
532                  "line": 1,
533                  "column": 1
534                }
535              }
536            },
537            "overloads": [],
538            "decorators": [],
539            "loc": {
540              "start": {
541                "line": 26,
542                "column": 2
543              },
544              "end": {
545                "line": 26,
546                "column": 2
547              }
548            }
549          }
550        ],
551        "loc": {
552          "start": {
553            "line": 22,
554            "column": 19
555          },
556          "end": {
557            "line": 26,
558            "column": 2
559          }
560        }
561      },
562      "loc": {
563        "start": {
564          "line": 22,
565          "column": 1
566        },
567        "end": {
568          "line": 26,
569          "column": 2
570        }
571      }
572    },
573    {
574      "type": "ClassDeclaration",
575      "definition": {
576        "id": {
577          "type": "Identifier",
578          "name": "ETSGLOBAL",
579          "decorators": [],
580          "loc": {
581            "start": {
582              "line": 1,
583              "column": 1
584            },
585            "end": {
586              "line": 1,
587              "column": 1
588            }
589          }
590        },
591        "superClass": null,
592        "implements": [],
593        "body": [
594          {
595            "type": "MethodDefinition",
596            "key": {
597              "type": "Identifier",
598              "name": "main",
599              "decorators": [],
600              "loc": {
601                "start": {
602                  "line": 1,
603                  "column": 1
604                },
605                "end": {
606                  "line": 1,
607                  "column": 1
608                }
609              }
610            },
611            "kind": "method",
612            "accessibility": "public",
613            "static": true,
614            "optional": false,
615            "computed": false,
616            "value": {
617              "type": "FunctionExpression",
618              "function": {
619                "type": "ScriptFunction",
620                "id": {
621                  "type": "Identifier",
622                  "name": "main",
623                  "decorators": [],
624                  "loc": {
625                    "start": {
626                      "line": 1,
627                      "column": 1
628                    },
629                    "end": {
630                      "line": 1,
631                      "column": 1
632                    }
633                  }
634                },
635                "generator": false,
636                "async": false,
637                "expression": false,
638                "params": [],
639                "body": {
640                  "type": "BlockStatement",
641                  "statements": [],
642                  "loc": {
643                    "start": {
644                      "line": 1,
645                      "column": 1
646                    },
647                    "end": {
648                      "line": 1,
649                      "column": 1
650                    }
651                  }
652                },
653                "loc": {
654                  "start": {
655                    "line": 1,
656                    "column": 1
657                  },
658                  "end": {
659                    "line": 1,
660                    "column": 1
661                  }
662                }
663              },
664              "loc": {
665                "start": {
666                  "line": 1,
667                  "column": 1
668                },
669                "end": {
670                  "line": 1,
671                  "column": 1
672                }
673              }
674            },
675            "overloads": [],
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          {
689            "type": "MethodDefinition",
690            "key": {
691              "type": "Identifier",
692              "name": "_$init$_",
693              "decorators": [],
694              "loc": {
695                "start": {
696                  "line": 1,
697                  "column": 1
698                },
699                "end": {
700                  "line": 1,
701                  "column": 1
702                }
703              }
704            },
705            "kind": "method",
706            "accessibility": "public",
707            "static": true,
708            "optional": false,
709            "computed": false,
710            "value": {
711              "type": "FunctionExpression",
712              "function": {
713                "type": "ScriptFunction",
714                "id": {
715                  "type": "Identifier",
716                  "name": "_$init$_",
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                "generator": false,
730                "async": false,
731                "expression": false,
732                "params": [],
733                "body": {
734                  "type": "BlockStatement",
735                  "statements": [
736                    {
737                      "type": "ExpressionStatement",
738                      "expression": {
739                        "type": "AssignmentExpression",
740                        "operator": "=",
741                        "left": {
742                          "type": "Identifier",
743                          "name": "a",
744                          "decorators": [],
745                          "loc": {
746                            "start": {
747                              "line": 16,
748                              "column": 5
749                            },
750                            "end": {
751                              "line": 16,
752                              "column": 6
753                            }
754                          }
755                        },
756                        "right": {
757                          "type": "NumberLiteral",
758                          "value": 1,
759                          "loc": {
760                            "start": {
761                              "line": 16,
762                              "column": 15
763                            },
764                            "end": {
765                              "line": 16,
766                              "column": 16
767                            }
768                          }
769                        },
770                        "loc": {
771                          "start": {
772                            "line": 16,
773                            "column": 5
774                          },
775                          "end": {
776                            "line": 16,
777                            "column": 16
778                          }
779                        }
780                      },
781                      "loc": {
782                        "start": {
783                          "line": 16,
784                          "column": 5
785                        },
786                        "end": {
787                          "line": 16,
788                          "column": 16
789                        }
790                      }
791                    }
792                  ],
793                  "loc": {
794                    "start": {
795                      "line": 1,
796                      "column": 1
797                    },
798                    "end": {
799                      "line": 1,
800                      "column": 1
801                    }
802                  }
803                },
804                "loc": {
805                  "start": {
806                    "line": 1,
807                    "column": 1
808                  },
809                  "end": {
810                    "line": 1,
811                    "column": 1
812                  }
813                }
814              },
815              "loc": {
816                "start": {
817                  "line": 1,
818                  "column": 1
819                },
820                "end": {
821                  "line": 1,
822                  "column": 1
823                }
824              }
825            },
826            "overloads": [],
827            "decorators": [],
828            "loc": {
829              "start": {
830                "line": 1,
831                "column": 1
832              },
833              "end": {
834                "line": 1,
835                "column": 1
836              }
837            }
838          },
839          {
840            "type": "ClassProperty",
841            "key": {
842              "type": "Identifier",
843              "name": "a",
844              "decorators": [],
845              "loc": {
846                "start": {
847                  "line": 16,
848                  "column": 5
849                },
850                "end": {
851                  "line": 16,
852                  "column": 6
853                }
854              }
855            },
856            "accessibility": "public",
857            "static": true,
858            "readonly": false,
859            "declare": false,
860            "optional": false,
861            "computed": false,
862            "typeAnnotation": {
863              "type": "ETSPrimitiveType",
864              "loc": {
865                "start": {
866                  "line": 16,
867                  "column": 8
868                },
869                "end": {
870                  "line": 16,
871                  "column": 11
872                }
873              }
874            },
875            "definite": false,
876            "decorators": [],
877            "loc": {
878              "start": {
879                "line": 16,
880                "column": 5
881              },
882              "end": {
883                "line": 16,
884                "column": 16
885              }
886            }
887          }
888        ],
889        "loc": {
890          "start": {
891            "line": 1,
892            "column": 1
893          },
894          "end": {
895            "line": 1,
896            "column": 1
897          }
898        }
899      },
900      "loc": {
901        "start": {
902          "line": 1,
903          "column": 1
904        },
905        "end": {
906          "line": 1,
907          "column": 1
908        }
909      }
910    }
911  ],
912  "loc": {
913    "start": {
914      "line": 1,
915      "column": 1
916    },
917    "end": {
918      "line": 27,
919      "column": 1
920    }
921  }
922}
923