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