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