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