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