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": "main",
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": "main",
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": "_$init$_",
261              "decorators": [],
262              "loc": {
263                "start": {
264                  "line": 1,
265                  "column": 1
266                },
267                "end": {
268                  "line": 1,
269                  "column": 1
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": "_$init$_",
285                  "decorators": [],
286                  "loc": {
287                    "start": {
288                      "line": 1,
289                      "column": 1
290                    },
291                    "end": {
292                      "line": 1,
293                      "column": 1
294                    }
295                  }
296                },
297                "generator": false,
298                "async": false,
299                "expression": false,
300                "params": [],
301                "body": {
302                  "type": "BlockStatement",
303                  "statements": [
304                    {
305                      "type": "ExpressionStatement",
306                      "expression": {
307                        "type": "AssignmentExpression",
308                        "operator": "=",
309                        "left": {
310                          "type": "Identifier",
311                          "name": "a",
312                          "decorators": [],
313                          "loc": {
314                            "start": {
315                              "line": 17,
316                              "column": 5
317                            },
318                            "end": {
319                              "line": 17,
320                              "column": 6
321                            }
322                          }
323                        },
324                        "right": {
325                          "type": "ETSNewClassInstanceExpression",
326                          "typeReference": {
327                            "type": "ETSTypeReference",
328                            "part": {
329                              "type": "ETSTypeReferencePart",
330                              "name": {
331                                "type": "Identifier",
332                                "name": "A",
333                                "decorators": [],
334                                "loc": {
335                                  "start": {
336                                    "line": 17,
337                                    "column": 13
338                                  },
339                                  "end": {
340                                    "line": 17,
341                                    "column": 14
342                                  }
343                                }
344                              },
345                              "loc": {
346                                "start": {
347                                  "line": 17,
348                                  "column": 13
349                                },
350                                "end": {
351                                  "line": 17,
352                                  "column": 15
353                                }
354                              }
355                            },
356                            "loc": {
357                              "start": {
358                                "line": 17,
359                                "column": 13
360                              },
361                              "end": {
362                                "line": 17,
363                                "column": 15
364                              }
365                            }
366                          },
367                          "arguments": [],
368                          "loc": {
369                            "start": {
370                              "line": 17,
371                              "column": 9
372                            },
373                            "end": {
374                              "line": 18,
375                              "column": 4
376                            }
377                          }
378                        },
379                        "loc": {
380                          "start": {
381                            "line": 17,
382                            "column": 5
383                          },
384                          "end": {
385                            "line": 18,
386                            "column": 4
387                          }
388                        }
389                      },
390                      "loc": {
391                        "start": {
392                          "line": 17,
393                          "column": 5
394                        },
395                        "end": {
396                          "line": 18,
397                          "column": 4
398                        }
399                      }
400                    },
401                    {
402                      "type": "ExpressionStatement",
403                      "expression": {
404                        "type": "AssignmentExpression",
405                        "operator": "=",
406                        "left": {
407                          "type": "Identifier",
408                          "name": "b",
409                          "decorators": [],
410                          "loc": {
411                            "start": {
412                              "line": 18,
413                              "column": 5
414                            },
415                            "end": {
416                              "line": 18,
417                              "column": 6
418                            }
419                          }
420                        },
421                        "right": {
422                          "type": "UnaryExpression",
423                          "operator": "$$",
424                          "prefix": true,
425                          "argument": {
426                            "type": "Identifier",
427                            "name": "a",
428                            "decorators": [],
429                            "loc": {
430                              "start": {
431                                "line": 18,
432                                "column": 11
433                              },
434                              "end": {
435                                "line": 18,
436                                "column": 12
437                              }
438                            }
439                          },
440                          "loc": {
441                            "start": {
442                              "line": 18,
443                              "column": 9
444                            },
445                            "end": {
446                              "line": 18,
447                              "column": 12
448                            }
449                          }
450                        },
451                        "loc": {
452                          "start": {
453                            "line": 18,
454                            "column": 5
455                          },
456                          "end": {
457                            "line": 18,
458                            "column": 12
459                          }
460                        }
461                      },
462                      "loc": {
463                        "start": {
464                          "line": 18,
465                          "column": 5
466                        },
467                        "end": {
468                          "line": 18,
469                          "column": 12
470                        }
471                      }
472                    }
473                  ],
474                  "loc": {
475                    "start": {
476                      "line": 1,
477                      "column": 1
478                    },
479                    "end": {
480                      "line": 1,
481                      "column": 1
482                    }
483                  }
484                },
485                "loc": {
486                  "start": {
487                    "line": 1,
488                    "column": 1
489                  },
490                  "end": {
491                    "line": 1,
492                    "column": 1
493                  }
494                }
495              },
496              "loc": {
497                "start": {
498                  "line": 1,
499                  "column": 1
500                },
501                "end": {
502                  "line": 1,
503                  "column": 1
504                }
505              }
506            },
507            "overloads": [],
508            "decorators": [],
509            "loc": {
510              "start": {
511                "line": 1,
512                "column": 1
513              },
514              "end": {
515                "line": 1,
516                "column": 1
517              }
518            }
519          },
520          {
521            "type": "ClassProperty",
522            "key": {
523              "type": "Identifier",
524              "name": "a",
525              "decorators": [],
526              "loc": {
527                "start": {
528                  "line": 17,
529                  "column": 5
530                },
531                "end": {
532                  "line": 17,
533                  "column": 6
534                }
535              }
536            },
537            "value": {
538              "type": "ETSNewClassInstanceExpression",
539              "typeReference": {
540                "type": "ETSTypeReference",
541                "part": {
542                  "type": "ETSTypeReferencePart",
543                  "name": {
544                    "type": "Identifier",
545                    "name": "A",
546                    "decorators": [],
547                    "loc": {
548                      "start": {
549                        "line": 17,
550                        "column": 13
551                      },
552                      "end": {
553                        "line": 17,
554                        "column": 14
555                      }
556                    }
557                  },
558                  "loc": {
559                    "start": {
560                      "line": 17,
561                      "column": 13
562                    },
563                    "end": {
564                      "line": 17,
565                      "column": 15
566                    }
567                  }
568                },
569                "loc": {
570                  "start": {
571                    "line": 17,
572                    "column": 13
573                  },
574                  "end": {
575                    "line": 17,
576                    "column": 15
577                  }
578                }
579              },
580              "arguments": [],
581              "loc": {
582                "start": {
583                  "line": 17,
584                  "column": 9
585                },
586                "end": {
587                  "line": 18,
588                  "column": 4
589                }
590              }
591            },
592            "accessibility": "public",
593            "static": true,
594            "readonly": false,
595            "declare": false,
596            "optional": false,
597            "computed": false,
598            "definite": false,
599            "decorators": [],
600            "loc": {
601              "start": {
602                "line": 17,
603                "column": 5
604              },
605              "end": {
606                "line": 18,
607                "column": 4
608              }
609            }
610          },
611          {
612            "type": "ClassProperty",
613            "key": {
614              "type": "Identifier",
615              "name": "b",
616              "decorators": [],
617              "loc": {
618                "start": {
619                  "line": 18,
620                  "column": 5
621                },
622                "end": {
623                  "line": 18,
624                  "column": 6
625                }
626              }
627            },
628            "value": {
629              "type": "UnaryExpression",
630              "operator": "$$",
631              "prefix": true,
632              "argument": {
633                "type": "Identifier",
634                "name": "a",
635                "decorators": [],
636                "loc": {
637                  "start": {
638                    "line": 18,
639                    "column": 11
640                  },
641                  "end": {
642                    "line": 18,
643                    "column": 12
644                  }
645                }
646              },
647              "loc": {
648                "start": {
649                  "line": 18,
650                  "column": 9
651                },
652                "end": {
653                  "line": 18,
654                  "column": 12
655                }
656              }
657            },
658            "accessibility": "public",
659            "static": true,
660            "readonly": false,
661            "declare": false,
662            "optional": false,
663            "computed": false,
664            "definite": false,
665            "decorators": [],
666            "loc": {
667              "start": {
668                "line": 18,
669                "column": 5
670              },
671              "end": {
672                "line": 18,
673                "column": 12
674              }
675            }
676          }
677        ],
678        "loc": {
679          "start": {
680            "line": 1,
681            "column": 1
682          },
683          "end": {
684            "line": 1,
685            "column": 1
686          }
687        }
688      },
689      "loc": {
690        "start": {
691          "line": 1,
692          "column": 1
693        },
694        "end": {
695          "line": 1,
696          "column": 1
697        }
698      }
699    }
700  ],
701  "loc": {
702    "start": {
703      "line": 1,
704      "column": 1
705    },
706    "end": {
707      "line": 19,
708      "column": 1
709    }
710  }
711}
712