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