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