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": "widening_array_test",
124              "decorators": [],
125              "loc": {
126                "start": {
127                  "line": 16,
128                  "column": 10
129                },
130                "end": {
131                  "line": 16,
132                  "column": 29
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": "widening_array_test",
148                  "decorators": [],
149                  "loc": {
150                    "start": {
151                      "line": 16,
152                      "column": 10
153                    },
154                    "end": {
155                      "line": 16,
156                      "column": 29
157                    }
158                  }
159                },
160                "generator": false,
161                "async": false,
162                "expression": false,
163                "params": [],
164                "returnType": {
165                  "type": "ETSPrimitiveType",
166                  "loc": {
167                    "start": {
168                      "line": 16,
169                      "column": 33
170                    },
171                    "end": {
172                      "line": 16,
173                      "column": 37
174                    }
175                  }
176                },
177                "body": {
178                  "type": "BlockStatement",
179                  "statements": [
180                    {
181                      "type": "VariableDeclaration",
182                      "declarations": [
183                        {
184                          "type": "VariableDeclarator",
185                          "id": {
186                            "type": "Identifier",
187                            "name": "ints",
188                            "typeAnnotation": {
189                              "type": "TSArrayType",
190                              "elementType": {
191                                "type": "ETSTypeReference",
192                                "part": {
193                                  "type": "ETSTypeReferencePart",
194                                  "name": {
195                                    "type": "Identifier",
196                                    "name": "Int",
197                                    "decorators": [],
198                                    "loc": {
199                                      "start": {
200                                        "line": 17,
201                                        "column": 13
202                                      },
203                                      "end": {
204                                        "line": 17,
205                                        "column": 16
206                                      }
207                                    }
208                                  },
209                                  "loc": {
210                                    "start": {
211                                      "line": 17,
212                                      "column": 13
213                                    },
214                                    "end": {
215                                      "line": 17,
216                                      "column": 17
217                                    }
218                                  }
219                                },
220                                "loc": {
221                                  "start": {
222                                    "line": 17,
223                                    "column": 13
224                                  },
225                                  "end": {
226                                    "line": 17,
227                                    "column": 17
228                                  }
229                                }
230                              },
231                              "loc": {
232                                "start": {
233                                  "line": 17,
234                                  "column": 19
235                                },
236                                "end": {
237                                  "line": 17,
238                                  "column": 20
239                                }
240                              }
241                            },
242                            "decorators": [],
243                            "loc": {
244                              "start": {
245                                "line": 17,
246                                "column": 7
247                              },
248                              "end": {
249                                "line": 17,
250                                "column": 11
251                              }
252                            }
253                          },
254                          "init": {
255                            "type": "ArrayExpression",
256                            "elements": [
257                              {
258                                "type": "ETSNewClassInstanceExpression",
259                                "typeReference": {
260                                  "type": "ETSTypeReference",
261                                  "part": {
262                                    "type": "ETSTypeReferencePart",
263                                    "name": {
264                                      "type": "Identifier",
265                                      "name": "Int",
266                                      "decorators": [],
267                                      "loc": {
268                                        "start": {
269                                          "line": 17,
270                                          "column": 26
271                                        },
272                                        "end": {
273                                          "line": 17,
274                                          "column": 29
275                                        }
276                                      }
277                                    },
278                                    "loc": {
279                                      "start": {
280                                        "line": 17,
281                                        "column": 26
282                                      },
283                                      "end": {
284                                        "line": 17,
285                                        "column": 30
286                                      }
287                                    }
288                                  },
289                                  "loc": {
290                                    "start": {
291                                      "line": 17,
292                                      "column": 26
293                                    },
294                                    "end": {
295                                      "line": 17,
296                                      "column": 30
297                                    }
298                                  }
299                                },
300                                "arguments": [],
301                                "loc": {
302                                  "start": {
303                                    "line": 17,
304                                    "column": 22
305                                  },
306                                  "end": {
307                                    "line": 17,
308                                    "column": 32
309                                  }
310                                }
311                              }
312                            ],
313                            "loc": {
314                              "start": {
315                                "line": 17,
316                                "column": 21
317                              },
318                              "end": {
319                                "line": 17,
320                                "column": 32
321                              }
322                            }
323                          },
324                          "loc": {
325                            "start": {
326                              "line": 17,
327                              "column": 7
328                            },
329                            "end": {
330                              "line": 17,
331                              "column": 32
332                            }
333                          }
334                        }
335                      ],
336                      "kind": "let",
337                      "loc": {
338                        "start": {
339                          "line": 17,
340                          "column": 3
341                        },
342                        "end": {
343                          "line": 17,
344                          "column": 33
345                        }
346                      }
347                    },
348                    {
349                      "type": "VariableDeclaration",
350                      "declarations": [
351                        {
352                          "type": "VariableDeclarator",
353                          "id": {
354                            "type": "Identifier",
355                            "name": "objects",
356                            "typeAnnotation": {
357                              "type": "TSArrayType",
358                              "elementType": {
359                                "type": "ETSTypeReference",
360                                "part": {
361                                  "type": "ETSTypeReferencePart",
362                                  "name": {
363                                    "type": "Identifier",
364                                    "name": "Object",
365                                    "decorators": [],
366                                    "loc": {
367                                      "start": {
368                                        "line": 18,
369                                        "column": 16
370                                      },
371                                      "end": {
372                                        "line": 18,
373                                        "column": 22
374                                      }
375                                    }
376                                  },
377                                  "loc": {
378                                    "start": {
379                                      "line": 18,
380                                      "column": 16
381                                    },
382                                    "end": {
383                                      "line": 18,
384                                      "column": 23
385                                    }
386                                  }
387                                },
388                                "loc": {
389                                  "start": {
390                                    "line": 18,
391                                    "column": 16
392                                  },
393                                  "end": {
394                                    "line": 18,
395                                    "column": 23
396                                  }
397                                }
398                              },
399                              "loc": {
400                                "start": {
401                                  "line": 18,
402                                  "column": 25
403                                },
404                                "end": {
405                                  "line": 18,
406                                  "column": 26
407                                }
408                              }
409                            },
410                            "decorators": [],
411                            "loc": {
412                              "start": {
413                                "line": 18,
414                                "column": 7
415                              },
416                              "end": {
417                                "line": 18,
418                                "column": 14
419                              }
420                            }
421                          },
422                          "init": {
423                            "type": "TSAsExpression",
424                            "expression": {
425                              "type": "Identifier",
426                              "name": "ints",
427                              "decorators": [],
428                              "loc": {
429                                "start": {
430                                  "line": 18,
431                                  "column": 27
432                                },
433                                "end": {
434                                  "line": 18,
435                                  "column": 31
436                                }
437                              }
438                            },
439                            "typeAnnotation": {
440                              "type": "TSArrayType",
441                              "elementType": {
442                                "type": "ETSTypeReference",
443                                "part": {
444                                  "type": "ETSTypeReferencePart",
445                                  "name": {
446                                    "type": "Identifier",
447                                    "name": "Object",
448                                    "decorators": [],
449                                    "loc": {
450                                      "start": {
451                                        "line": 18,
452                                        "column": 35
453                                      },
454                                      "end": {
455                                        "line": 18,
456                                        "column": 41
457                                      }
458                                    }
459                                  },
460                                  "loc": {
461                                    "start": {
462                                      "line": 18,
463                                      "column": 35
464                                    },
465                                    "end": {
466                                      "line": 18,
467                                      "column": 42
468                                    }
469                                  }
470                                },
471                                "loc": {
472                                  "start": {
473                                    "line": 18,
474                                    "column": 35
475                                  },
476                                  "end": {
477                                    "line": 18,
478                                    "column": 42
479                                  }
480                                }
481                              },
482                              "loc": {
483                                "start": {
484                                  "line": 18,
485                                  "column": 43
486                                },
487                                "end": {
488                                  "line": 18,
489                                  "column": 44
490                                }
491                              }
492                            },
493                            "loc": {
494                              "start": {
495                                "line": 18,
496                                "column": 27
497                              },
498                              "end": {
499                                "line": 18,
500                                "column": 31
501                              }
502                            }
503                          },
504                          "loc": {
505                            "start": {
506                              "line": 18,
507                              "column": 7
508                            },
509                            "end": {
510                              "line": 18,
511                              "column": 31
512                            }
513                          }
514                        }
515                      ],
516                      "kind": "let",
517                      "loc": {
518                        "start": {
519                          "line": 18,
520                          "column": 3
521                        },
522                        "end": {
523                          "line": 18,
524                          "column": 44
525                        }
526                      }
527                    },
528                    {
529                      "type": "VariableDeclaration",
530                      "declarations": [
531                        {
532                          "type": "VariableDeclarator",
533                          "id": {
534                            "type": "Identifier",
535                            "name": "ints2",
536                            "typeAnnotation": {
537                              "type": "TSArrayType",
538                              "elementType": {
539                                "type": "ETSTypeReference",
540                                "part": {
541                                  "type": "ETSTypeReferencePart",
542                                  "name": {
543                                    "type": "Identifier",
544                                    "name": "Int",
545                                    "decorators": [],
546                                    "loc": {
547                                      "start": {
548                                        "line": 19,
549                                        "column": 14
550                                      },
551                                      "end": {
552                                        "line": 19,
553                                        "column": 17
554                                      }
555                                    }
556                                  },
557                                  "loc": {
558                                    "start": {
559                                      "line": 19,
560                                      "column": 14
561                                    },
562                                    "end": {
563                                      "line": 19,
564                                      "column": 18
565                                    }
566                                  }
567                                },
568                                "loc": {
569                                  "start": {
570                                    "line": 19,
571                                    "column": 14
572                                  },
573                                  "end": {
574                                    "line": 19,
575                                    "column": 18
576                                  }
577                                }
578                              },
579                              "loc": {
580                                "start": {
581                                  "line": 19,
582                                  "column": 20
583                                },
584                                "end": {
585                                  "line": 19,
586                                  "column": 21
587                                }
588                              }
589                            },
590                            "decorators": [],
591                            "loc": {
592                              "start": {
593                                "line": 19,
594                                "column": 7
595                              },
596                              "end": {
597                                "line": 19,
598                                "column": 12
599                              }
600                            }
601                          },
602                          "init": {
603                            "type": "TSAsExpression",
604                            "expression": {
605                              "type": "Identifier",
606                              "name": "objects",
607                              "decorators": [],
608                              "loc": {
609                                "start": {
610                                  "line": 19,
611                                  "column": 22
612                                },
613                                "end": {
614                                  "line": 19,
615                                  "column": 29
616                                }
617                              }
618                            },
619                            "typeAnnotation": {
620                              "type": "TSArrayType",
621                              "elementType": {
622                                "type": "ETSTypeReference",
623                                "part": {
624                                  "type": "ETSTypeReferencePart",
625                                  "name": {
626                                    "type": "Identifier",
627                                    "name": "Int",
628                                    "decorators": [],
629                                    "loc": {
630                                      "start": {
631                                        "line": 19,
632                                        "column": 33
633                                      },
634                                      "end": {
635                                        "line": 19,
636                                        "column": 36
637                                      }
638                                    }
639                                  },
640                                  "loc": {
641                                    "start": {
642                                      "line": 19,
643                                      "column": 33
644                                    },
645                                    "end": {
646                                      "line": 19,
647                                      "column": 37
648                                    }
649                                  }
650                                },
651                                "loc": {
652                                  "start": {
653                                    "line": 19,
654                                    "column": 33
655                                  },
656                                  "end": {
657                                    "line": 19,
658                                    "column": 37
659                                  }
660                                }
661                              },
662                              "loc": {
663                                "start": {
664                                  "line": 19,
665                                  "column": 38
666                                },
667                                "end": {
668                                  "line": 19,
669                                  "column": 39
670                                }
671                              }
672                            },
673                            "loc": {
674                              "start": {
675                                "line": 19,
676                                "column": 22
677                              },
678                              "end": {
679                                "line": 19,
680                                "column": 29
681                              }
682                            }
683                          },
684                          "loc": {
685                            "start": {
686                              "line": 19,
687                              "column": 7
688                            },
689                            "end": {
690                              "line": 19,
691                              "column": 29
692                            }
693                          }
694                        }
695                      ],
696                      "kind": "let",
697                      "loc": {
698                        "start": {
699                          "line": 19,
700                          "column": 3
701                        },
702                        "end": {
703                          "line": 19,
704                          "column": 39
705                        }
706                      }
707                    },
708                    {
709                      "type": "VariableDeclaration",
710                      "declarations": [
711                        {
712                          "type": "VariableDeclarator",
713                          "id": {
714                            "type": "Identifier",
715                            "name": "object",
716                            "decorators": [],
717                            "loc": {
718                              "start": {
719                                "line": 21,
720                                "column": 7
721                              },
722                              "end": {
723                                "line": 21,
724                                "column": 13
725                              }
726                            }
727                          },
728                          "init": {
729                            "type": "TSAsExpression",
730                            "expression": {
731                              "type": "Identifier",
732                              "name": "ints2",
733                              "decorators": [],
734                              "loc": {
735                                "start": {
736                                  "line": 21,
737                                  "column": 16
738                                },
739                                "end": {
740                                  "line": 21,
741                                  "column": 21
742                                }
743                              }
744                            },
745                            "typeAnnotation": {
746                              "type": "ETSTypeReference",
747                              "part": {
748                                "type": "ETSTypeReferencePart",
749                                "name": {
750                                  "type": "Identifier",
751                                  "name": "Object",
752                                  "decorators": [],
753                                  "loc": {
754                                    "start": {
755                                      "line": 21,
756                                      "column": 25
757                                    },
758                                    "end": {
759                                      "line": 21,
760                                      "column": 31
761                                    }
762                                  }
763                                },
764                                "loc": {
765                                  "start": {
766                                    "line": 21,
767                                    "column": 25
768                                  },
769                                  "end": {
770                                    "line": 21,
771                                    "column": 32
772                                  }
773                                }
774                              },
775                              "loc": {
776                                "start": {
777                                  "line": 21,
778                                  "column": 25
779                                },
780                                "end": {
781                                  "line": 21,
782                                  "column": 32
783                                }
784                              }
785                            },
786                            "loc": {
787                              "start": {
788                                "line": 21,
789                                "column": 16
790                              },
791                              "end": {
792                                "line": 21,
793                                "column": 21
794                              }
795                            }
796                          },
797                          "loc": {
798                            "start": {
799                              "line": 21,
800                              "column": 7
801                            },
802                            "end": {
803                              "line": 21,
804                              "column": 21
805                            }
806                          }
807                        }
808                      ],
809                      "kind": "let",
810                      "loc": {
811                        "start": {
812                          "line": 21,
813                          "column": 3
814                        },
815                        "end": {
816                          "line": 21,
817                          "column": 32
818                        }
819                      }
820                    }
821                  ],
822                  "loc": {
823                    "start": {
824                      "line": 16,
825                      "column": 38
826                    },
827                    "end": {
828                      "line": 22,
829                      "column": 2
830                    }
831                  }
832                },
833                "loc": {
834                  "start": {
835                    "line": 16,
836                    "column": 29
837                  },
838                  "end": {
839                    "line": 22,
840                    "column": 2
841                  }
842                }
843              },
844              "loc": {
845                "start": {
846                  "line": 16,
847                  "column": 29
848                },
849                "end": {
850                  "line": 22,
851                  "column": 2
852                }
853              }
854            },
855            "overloads": [],
856            "decorators": [],
857            "loc": {
858              "start": {
859                "line": 16,
860                "column": 1
861              },
862              "end": {
863                "line": 22,
864                "column": 2
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": 1,
883          "column": 1
884        },
885        "end": {
886          "line": 1,
887          "column": 1
888        }
889      }
890    }
891  ],
892  "loc": {
893    "start": {
894      "line": 1,
895      "column": 1
896    },
897    "end": {
898      "line": 23,
899      "column": 1
900    }
901  }
902}
903