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                    "rest parameter": {
208                      "type": "RestElement",
209                      "argument": {
210                        "type": "Identifier",
211                        "name": "r",
212                        "decorators": [],
213                        "loc": {
214                          "start": {
215                            "line": 16,
216                            "column": 26
217                          },
218                          "end": {
219                            "line": 16,
220                            "column": 27
221                          }
222                        }
223                      },
224                      "typeAnnotation": {
225                        "type": "TSArrayType",
226                        "elementType": {
227                          "type": "ETSPrimitiveType",
228                          "loc": {
229                            "start": {
230                              "line": 16,
231                              "column": 29
232                            },
233                            "end": {
234                              "line": 16,
235                              "column": 32
236                            }
237                          }
238                        },
239                        "loc": {
240                          "start": {
241                            "line": 16,
242                            "column": 34
243                          },
244                          "end": {
245                            "line": 16,
246                            "column": 35
247                          }
248                        }
249                      },
250                      "loc": {
251                        "start": {
252                          "line": 16,
253                          "column": 23
254                        },
255                        "end": {
256                          "line": 16,
257                          "column": 35
258                        }
259                      }
260                    },
261                    "loc": {
262                      "start": {
263                        "line": 16,
264                        "column": 23
265                      },
266                      "end": {
267                        "line": 16,
268                        "column": 35
269                      }
270                    }
271                  }
272                ],
273                "returnType": {
274                  "type": "ETSPrimitiveType",
275                  "loc": {
276                    "start": {
277                      "line": 16,
278                      "column": 37
279                    },
280                    "end": {
281                      "line": 16,
282                      "column": 40
283                    }
284                  }
285                },
286                "body": {
287                  "type": "BlockStatement",
288                  "statements": [
289                    {
290                      "type": "ReturnStatement",
291                      "argument": {
292                        "type": "NumberLiteral",
293                        "value": 2,
294                        "loc": {
295                          "start": {
296                            "line": 17,
297                            "column": 10
298                          },
299                          "end": {
300                            "line": 17,
301                            "column": 11
302                          }
303                        }
304                      },
305                      "loc": {
306                        "start": {
307                          "line": 17,
308                          "column": 3
309                        },
310                        "end": {
311                          "line": 17,
312                          "column": 12
313                        }
314                      }
315                    }
316                  ],
317                  "loc": {
318                    "start": {
319                      "line": 16,
320                      "column": 41
321                    },
322                    "end": {
323                      "line": 18,
324                      "column": 2
325                    }
326                  }
327                },
328                "loc": {
329                  "start": {
330                    "line": 16,
331                    "column": 13
332                  },
333                  "end": {
334                    "line": 18,
335                    "column": 2
336                  }
337                }
338              },
339              "loc": {
340                "start": {
341                  "line": 16,
342                  "column": 13
343                },
344                "end": {
345                  "line": 18,
346                  "column": 2
347                }
348              }
349            },
350            "overloads": [
351              {
352                "type": "MethodDefinition",
353                "key": {
354                  "type": "Identifier",
355                  "name": "foo",
356                  "decorators": [],
357                  "loc": {
358                    "start": {
359                      "line": 20,
360                      "column": 10
361                    },
362                    "end": {
363                      "line": 20,
364                      "column": 13
365                    }
366                  }
367                },
368                "kind": "method",
369                "accessibility": "public",
370                "static": true,
371                "optional": false,
372                "computed": false,
373                "value": {
374                  "type": "FunctionExpression",
375                  "function": {
376                    "type": "ScriptFunction",
377                    "id": {
378                      "type": "Identifier",
379                      "name": "foo",
380                      "decorators": [],
381                      "loc": {
382                        "start": {
383                          "line": 20,
384                          "column": 10
385                        },
386                        "end": {
387                          "line": 20,
388                          "column": 13
389                        }
390                      }
391                    },
392                    "generator": false,
393                    "async": false,
394                    "expression": false,
395                    "params": [
396                      {
397                        "type": "ETSParameterExpression",
398                        "name": {
399                          "type": "Identifier",
400                          "name": "x",
401                          "typeAnnotation": {
402                            "type": "ETSPrimitiveType",
403                            "loc": {
404                              "start": {
405                                "line": 20,
406                                "column": 18
407                              },
408                              "end": {
409                                "line": 20,
410                                "column": 21
411                              }
412                            }
413                          },
414                          "decorators": [],
415                          "loc": {
416                            "start": {
417                              "line": 20,
418                              "column": 15
419                            },
420                            "end": {
421                              "line": 20,
422                              "column": 21
423                            }
424                          }
425                        },
426                        "loc": {
427                          "start": {
428                            "line": 20,
429                            "column": 15
430                          },
431                          "end": {
432                            "line": 20,
433                            "column": 21
434                          }
435                        }
436                      },
437                      {
438                        "type": "ETSParameterExpression",
439                        "name": {
440                          "type": "Identifier",
441                          "name": "y",
442                          "typeAnnotation": {
443                            "type": "ETSPrimitiveType",
444                            "loc": {
445                              "start": {
446                                "line": 20,
447                                "column": 26
448                              },
449                              "end": {
450                                "line": 20,
451                                "column": 29
452                              }
453                            }
454                          },
455                          "decorators": [],
456                          "loc": {
457                            "start": {
458                              "line": 20,
459                              "column": 23
460                            },
461                            "end": {
462                              "line": 20,
463                              "column": 29
464                            }
465                          }
466                        },
467                        "loc": {
468                          "start": {
469                            "line": 20,
470                            "column": 23
471                          },
472                          "end": {
473                            "line": 20,
474                            "column": 29
475                          }
476                        }
477                      },
478                      {
479                        "type": "ETSParameterExpression",
480                        "name": {
481                          "type": "Identifier",
482                          "name": "z",
483                          "typeAnnotation": {
484                            "type": "ETSPrimitiveType",
485                            "loc": {
486                              "start": {
487                                "line": 20,
488                                "column": 34
489                              },
490                              "end": {
491                                "line": 20,
492                                "column": 37
493                              }
494                            }
495                          },
496                          "decorators": [],
497                          "loc": {
498                            "start": {
499                              "line": 20,
500                              "column": 31
501                            },
502                            "end": {
503                              "line": 20,
504                              "column": 37
505                            }
506                          }
507                        },
508                        "loc": {
509                          "start": {
510                            "line": 20,
511                            "column": 31
512                          },
513                          "end": {
514                            "line": 20,
515                            "column": 41
516                          }
517                        }
518                      }
519                    ],
520                    "returnType": {
521                      "type": "ETSPrimitiveType",
522                      "loc": {
523                        "start": {
524                          "line": 20,
525                          "column": 44
526                        },
527                        "end": {
528                          "line": 20,
529                          "column": 47
530                        }
531                      }
532                    },
533                    "body": {
534                      "type": "BlockStatement",
535                      "statements": [
536                        {
537                          "type": "ReturnStatement",
538                          "argument": {
539                            "type": "NumberLiteral",
540                            "value": 3,
541                            "loc": {
542                              "start": {
543                                "line": 21,
544                                "column": 10
545                              },
546                              "end": {
547                                "line": 21,
548                                "column": 11
549                              }
550                            }
551                          },
552                          "loc": {
553                            "start": {
554                              "line": 21,
555                              "column": 3
556                            },
557                            "end": {
558                              "line": 21,
559                              "column": 12
560                            }
561                          }
562                        }
563                      ],
564                      "loc": {
565                        "start": {
566                          "line": 20,
567                          "column": 48
568                        },
569                        "end": {
570                          "line": 22,
571                          "column": 2
572                        }
573                      }
574                    },
575                    "loc": {
576                      "start": {
577                        "line": 20,
578                        "column": 13
579                      },
580                      "end": {
581                        "line": 22,
582                        "column": 2
583                      }
584                    }
585                  },
586                  "loc": {
587                    "start": {
588                      "line": 20,
589                      "column": 13
590                    },
591                    "end": {
592                      "line": 22,
593                      "column": 2
594                    }
595                  }
596                },
597                "overloads": [],
598                "decorators": [],
599                "loc": {
600                  "start": {
601                    "line": 20,
602                    "column": 1
603                  },
604                  "end": {
605                    "line": 22,
606                    "column": 2
607                  }
608                }
609              },
610              {
611                "type": "MethodDefinition",
612                "key": {
613                  "type": "Identifier",
614                  "name": "foo",
615                  "decorators": [],
616                  "loc": {
617                    "start": {
618                      "line": 20,
619                      "column": 10
620                    },
621                    "end": {
622                      "line": 20,
623                      "column": 13
624                    }
625                  }
626                },
627                "kind": "method",
628                "accessibility": "public",
629                "static": true,
630                "optional": false,
631                "computed": false,
632                "value": {
633                  "type": "FunctionExpression",
634                  "function": {
635                    "type": "ScriptFunction",
636                    "id": {
637                      "type": "Identifier",
638                      "name": "foo",
639                      "decorators": [],
640                      "loc": {
641                        "start": {
642                          "line": 20,
643                          "column": 10
644                        },
645                        "end": {
646                          "line": 20,
647                          "column": 13
648                        }
649                      }
650                    },
651                    "generator": false,
652                    "async": false,
653                    "expression": false,
654                    "params": [
655                      {
656                        "type": "ETSParameterExpression",
657                        "name": {
658                          "type": "Identifier",
659                          "name": "x",
660                          "typeAnnotation": {
661                            "type": "ETSPrimitiveType",
662                            "loc": {
663                              "start": {
664                                "line": 20,
665                                "column": 18
666                              },
667                              "end": {
668                                "line": 20,
669                                "column": 21
670                              }
671                            }
672                          },
673                          "decorators": [],
674                          "loc": {
675                            "start": {
676                              "line": 20,
677                              "column": 15
678                            },
679                            "end": {
680                              "line": 20,
681                              "column": 21
682                            }
683                          }
684                        },
685                        "loc": {
686                          "start": {
687                            "line": 1,
688                            "column": 1
689                          },
690                          "end": {
691                            "line": 1,
692                            "column": 1
693                          }
694                        }
695                      },
696                      {
697                        "type": "ETSParameterExpression",
698                        "name": {
699                          "type": "Identifier",
700                          "name": "y",
701                          "typeAnnotation": {
702                            "type": "ETSPrimitiveType",
703                            "loc": {
704                              "start": {
705                                "line": 20,
706                                "column": 26
707                              },
708                              "end": {
709                                "line": 20,
710                                "column": 29
711                              }
712                            }
713                          },
714                          "decorators": [],
715                          "loc": {
716                            "start": {
717                              "line": 20,
718                              "column": 23
719                            },
720                            "end": {
721                              "line": 20,
722                              "column": 29
723                            }
724                          }
725                        },
726                        "loc": {
727                          "start": {
728                            "line": 1,
729                            "column": 1
730                          },
731                          "end": {
732                            "line": 1,
733                            "column": 1
734                          }
735                        }
736                      }
737                    ],
738                    "returnType": {
739                      "type": "ETSPrimitiveType",
740                      "loc": {
741                        "start": {
742                          "line": 20,
743                          "column": 44
744                        },
745                        "end": {
746                          "line": 20,
747                          "column": 47
748                        }
749                      }
750                    },
751                    "body": {
752                      "type": "BlockStatement",
753                      "statements": [
754                        {
755                          "type": "ReturnStatement",
756                          "argument": {
757                            "type": "CallExpression",
758                            "callee": {
759                              "type": "Identifier",
760                              "name": "foo",
761                              "decorators": [],
762                              "loc": {
763                                "start": {
764                                  "line": 1,
765                                  "column": 1
766                                },
767                                "end": {
768                                  "line": 1,
769                                  "column": 1
770                                }
771                              }
772                            },
773                            "arguments": [
774                              {
775                                "type": "Identifier",
776                                "name": "x",
777                                "typeAnnotation": {
778                                  "type": "ETSPrimitiveType",
779                                  "loc": {
780                                    "start": {
781                                      "line": 20,
782                                      "column": 18
783                                    },
784                                    "end": {
785                                      "line": 20,
786                                      "column": 21
787                                    }
788                                  }
789                                },
790                                "decorators": [],
791                                "loc": {
792                                  "start": {
793                                    "line": 20,
794                                    "column": 15
795                                  },
796                                  "end": {
797                                    "line": 20,
798                                    "column": 21
799                                  }
800                                }
801                              },
802                              {
803                                "type": "Identifier",
804                                "name": "y",
805                                "typeAnnotation": {
806                                  "type": "ETSPrimitiveType",
807                                  "loc": {
808                                    "start": {
809                                      "line": 20,
810                                      "column": 26
811                                    },
812                                    "end": {
813                                      "line": 20,
814                                      "column": 29
815                                    }
816                                  }
817                                },
818                                "decorators": [],
819                                "loc": {
820                                  "start": {
821                                    "line": 20,
822                                    "column": 23
823                                  },
824                                  "end": {
825                                    "line": 20,
826                                    "column": 29
827                                  }
828                                }
829                              },
830                              {
831                                "type": "NumberLiteral",
832                                "value": 0,
833                                "loc": {
834                                  "start": {
835                                    "line": 20,
836                                    "column": 40
837                                  },
838                                  "end": {
839                                    "line": 20,
840                                    "column": 41
841                                  }
842                                }
843                              }
844                            ],
845                            "optional": false,
846                            "loc": {
847                              "start": {
848                                "line": 20,
849                                "column": 1
850                              },
851                              "end": {
852                                "line": 22,
853                                "column": 2
854                              }
855                            }
856                          },
857                          "loc": {
858                            "start": {
859                              "line": 1,
860                              "column": 1
861                            },
862                            "end": {
863                              "line": 1,
864                              "column": 1
865                            }
866                          }
867                        }
868                      ],
869                      "loc": {
870                        "start": {
871                          "line": 1,
872                          "column": 1
873                        },
874                        "end": {
875                          "line": 1,
876                          "column": 1
877                        }
878                      }
879                    },
880                    "loc": {
881                      "start": {
882                        "line": 658,
883                        "column": 1
884                      },
885                      "end": {
886                        "line": 658,
887                        "column": 1
888                      }
889                    }
890                  },
891                  "loc": {
892                    "start": {
893                      "line": 1,
894                      "column": 1
895                    },
896                    "end": {
897                      "line": 1,
898                      "column": 1
899                    }
900                  }
901                },
902                "overloads": [],
903                "decorators": [],
904                "loc": {
905                  "start": {
906                    "line": 20,
907                    "column": 1
908                  },
909                  "end": {
910                    "line": 1,
911                    "column": 1
912                  }
913                }
914              }
915            ],
916            "decorators": [],
917            "loc": {
918              "start": {
919                "line": 16,
920                "column": 1
921              },
922              "end": {
923                "line": 18,
924                "column": 2
925              }
926            }
927          }
928        ],
929        "loc": {
930          "start": {
931            "line": 1,
932            "column": 1
933          },
934          "end": {
935            "line": 1,
936            "column": 1
937          }
938        }
939      },
940      "loc": {
941        "start": {
942          "line": 1,
943          "column": 1
944        },
945        "end": {
946          "line": 1,
947          "column": 1
948        }
949      }
950    }
951  ],
952  "loc": {
953    "start": {
954      "line": 1,
955      "column": 1
956    },
957    "end": {
958      "line": 23,
959      "column": 1
960    }
961  }
962}
963