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