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