1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "TSInterfaceDeclaration",
6      "body": {
7        "type": "TSInterfaceBody",
8        "body": [
9          {
10            "type": "MethodDefinition",
11            "key": {
12              "type": "Identifier",
13              "name": "field",
14              "decorators": [],
15              "loc": {
16                "start": {
17                  "line": 1,
18                  "column": 1
19                },
20                "end": {
21                  "line": 1,
22                  "column": 1
23                }
24              }
25            },
26            "kind": "method",
27            "accessibility": "public",
28            "static": false,
29            "optional": false,
30            "computed": false,
31            "value": {
32              "type": "FunctionExpression",
33              "function": {
34                "type": "ScriptFunction",
35                "id": {
36                  "type": "Identifier",
37                  "name": "field",
38                  "decorators": [],
39                  "loc": {
40                    "start": {
41                      "line": 1,
42                      "column": 1
43                    },
44                    "end": {
45                      "line": 1,
46                      "column": 1
47                    }
48                  }
49                },
50                "generator": false,
51                "async": false,
52                "expression": false,
53                "params": [],
54                "returnType": {
55                  "type": "ETSUnionType",
56                  "types": [
57                    {
58                      "type": "ETSUnionType",
59                      "types": [
60                        {
61                          "type": "ETSTypeReference",
62                          "part": {
63                            "type": "ETSTypeReferencePart",
64                            "name": {
65                              "type": "Identifier",
66                              "name": "Object",
67                              "decorators": [],
68                              "loc": {
69                                "start": {
70                                  "line": 18,
71                                  "column": 13
72                                },
73                                "end": {
74                                  "line": 18,
75                                  "column": 19
76                                }
77                              }
78                            },
79                            "loc": {
80                              "start": {
81                                "line": 18,
82                                "column": 13
83                              },
84                              "end": {
85                                "line": 18,
86                                "column": 21
87                              }
88                            }
89                          },
90                          "loc": {
91                            "start": {
92                              "line": 18,
93                              "column": 13
94                            },
95                            "end": {
96                              "line": 18,
97                              "column": 21
98                            }
99                          }
100                        },
101                        {
102                          "type": "ETSTypeReference",
103                          "part": {
104                            "type": "ETSTypeReferencePart",
105                            "name": {
106                              "type": "Identifier",
107                              "name": "String",
108                              "decorators": [],
109                              "loc": {
110                                "start": {
111                                  "line": 18,
112                                  "column": 22
113                                },
114                                "end": {
115                                  "line": 18,
116                                  "column": 28
117                                }
118                              }
119                            },
120                            "loc": {
121                              "start": {
122                                "line": 18,
123                                "column": 22
124                              },
125                              "end": {
126                                "line": 18,
127                                "column": 30
128                              }
129                            }
130                          },
131                          "loc": {
132                            "start": {
133                              "line": 18,
134                              "column": 22
135                            },
136                            "end": {
137                              "line": 18,
138                              "column": 30
139                            }
140                          }
141                        },
142                        {
143                          "type": "ETSTypeReference",
144                          "part": {
145                            "type": "ETSTypeReferencePart",
146                            "name": {
147                              "type": "Identifier",
148                              "name": "Number",
149                              "decorators": [],
150                              "loc": {
151                                "start": {
152                                  "line": 18,
153                                  "column": 31
154                                },
155                                "end": {
156                                  "line": 18,
157                                  "column": 37
158                                }
159                              }
160                            },
161                            "loc": {
162                              "start": {
163                                "line": 18,
164                                "column": 31
165                              },
166                              "end": {
167                                "line": 18,
168                                "column": 38
169                              }
170                            }
171                          },
172                          "loc": {
173                            "start": {
174                              "line": 18,
175                              "column": 31
176                            },
177                            "end": {
178                              "line": 18,
179                              "column": 38
180                            }
181                          }
182                        }
183                      ],
184                      "loc": {
185                        "start": {
186                          "line": 1,
187                          "column": 1
188                        },
189                        "end": {
190                          "line": 1,
191                          "column": 1
192                        }
193                      }
194                    },
195                    {
196                      "type": "ETSUndefinedType",
197                      "loc": {
198                        "start": {
199                          "line": 1,
200                          "column": 1
201                        },
202                        "end": {
203                          "line": 1,
204                          "column": 1
205                        }
206                      }
207                    }
208                  ],
209                  "loc": {
210                    "start": {
211                      "line": 1,
212                      "column": 1
213                    },
214                    "end": {
215                      "line": 1,
216                      "column": 1
217                    }
218                  }
219                },
220                "declare": true,
221                "loc": {
222                  "start": {
223                    "line": 18,
224                    "column": 4
225                  },
226                  "end": {
227                    "line": 18,
228                    "column": 38
229                  }
230                }
231              },
232              "loc": {
233                "start": {
234                  "line": 18,
235                  "column": 4
236                },
237                "end": {
238                  "line": 18,
239                  "column": 38
240                }
241              }
242            },
243            "overloads": [
244              {
245                "type": "MethodDefinition",
246                "key": {
247                  "type": "Identifier",
248                  "name": "field",
249                  "decorators": [],
250                  "loc": {
251                    "start": {
252                      "line": 1,
253                      "column": 1
254                    },
255                    "end": {
256                      "line": 1,
257                      "column": 1
258                    }
259                  }
260                },
261                "kind": "method",
262                "accessibility": "public",
263                "static": false,
264                "optional": false,
265                "computed": false,
266                "value": {
267                  "type": "FunctionExpression",
268                  "function": {
269                    "type": "ScriptFunction",
270                    "id": {
271                      "type": "Identifier",
272                      "name": "field",
273                      "decorators": [],
274                      "loc": {
275                        "start": {
276                          "line": 1,
277                          "column": 1
278                        },
279                        "end": {
280                          "line": 1,
281                          "column": 1
282                        }
283                      }
284                    },
285                    "generator": false,
286                    "async": false,
287                    "expression": false,
288                    "params": [
289                      {
290                        "type": "ETSParameterExpression",
291                        "name": {
292                          "type": "Identifier",
293                          "name": "field",
294                          "typeAnnotation": {
295                            "type": "ETSUnionType",
296                            "types": [
297                              {
298                                "type": "ETSUnionType",
299                                "types": [
300                                  {
301                                    "type": "ETSTypeReference",
302                                    "part": {
303                                      "type": "ETSTypeReferencePart",
304                                      "name": {
305                                        "type": "Identifier",
306                                        "name": "Object",
307                                        "decorators": [],
308                                        "loc": {
309                                          "start": {
310                                            "line": 18,
311                                            "column": 13
312                                          },
313                                          "end": {
314                                            "line": 18,
315                                            "column": 19
316                                          }
317                                        }
318                                      },
319                                      "loc": {
320                                        "start": {
321                                          "line": 18,
322                                          "column": 13
323                                        },
324                                        "end": {
325                                          "line": 18,
326                                          "column": 21
327                                        }
328                                      }
329                                    },
330                                    "loc": {
331                                      "start": {
332                                        "line": 18,
333                                        "column": 13
334                                      },
335                                      "end": {
336                                        "line": 18,
337                                        "column": 21
338                                      }
339                                    }
340                                  },
341                                  {
342                                    "type": "ETSTypeReference",
343                                    "part": {
344                                      "type": "ETSTypeReferencePart",
345                                      "name": {
346                                        "type": "Identifier",
347                                        "name": "String",
348                                        "decorators": [],
349                                        "loc": {
350                                          "start": {
351                                            "line": 18,
352                                            "column": 22
353                                          },
354                                          "end": {
355                                            "line": 18,
356                                            "column": 28
357                                          }
358                                        }
359                                      },
360                                      "loc": {
361                                        "start": {
362                                          "line": 18,
363                                          "column": 22
364                                        },
365                                        "end": {
366                                          "line": 18,
367                                          "column": 30
368                                        }
369                                      }
370                                    },
371                                    "loc": {
372                                      "start": {
373                                        "line": 18,
374                                        "column": 22
375                                      },
376                                      "end": {
377                                        "line": 18,
378                                        "column": 30
379                                      }
380                                    }
381                                  },
382                                  {
383                                    "type": "ETSTypeReference",
384                                    "part": {
385                                      "type": "ETSTypeReferencePart",
386                                      "name": {
387                                        "type": "Identifier",
388                                        "name": "Number",
389                                        "decorators": [],
390                                        "loc": {
391                                          "start": {
392                                            "line": 18,
393                                            "column": 31
394                                          },
395                                          "end": {
396                                            "line": 18,
397                                            "column": 37
398                                          }
399                                        }
400                                      },
401                                      "loc": {
402                                        "start": {
403                                          "line": 18,
404                                          "column": 31
405                                        },
406                                        "end": {
407                                          "line": 18,
408                                          "column": 38
409                                        }
410                                      }
411                                    },
412                                    "loc": {
413                                      "start": {
414                                        "line": 18,
415                                        "column": 31
416                                      },
417                                      "end": {
418                                        "line": 18,
419                                        "column": 38
420                                      }
421                                    }
422                                  }
423                                ],
424                                "loc": {
425                                  "start": {
426                                    "line": 1,
427                                    "column": 1
428                                  },
429                                  "end": {
430                                    "line": 1,
431                                    "column": 1
432                                  }
433                                }
434                              },
435                              {
436                                "type": "ETSUndefinedType",
437                                "loc": {
438                                  "start": {
439                                    "line": 1,
440                                    "column": 1
441                                  },
442                                  "end": {
443                                    "line": 1,
444                                    "column": 1
445                                  }
446                                }
447                              }
448                            ],
449                            "loc": {
450                              "start": {
451                                "line": 1,
452                                "column": 1
453                              },
454                              "end": {
455                                "line": 1,
456                                "column": 1
457                              }
458                            }
459                          },
460                          "decorators": [],
461                          "loc": {
462                            "start": {
463                              "line": 18,
464                              "column": 4
465                            },
466                            "end": {
467                              "line": 18,
468                              "column": 9
469                            }
470                          }
471                        },
472                        "loc": {
473                          "start": {
474                            "line": 18,
475                            "column": 4
476                          },
477                          "end": {
478                            "line": 18,
479                            "column": 9
480                          }
481                        }
482                      }
483                    ],
484                    "declare": true,
485                    "loc": {
486                      "start": {
487                        "line": 18,
488                        "column": 4
489                      },
490                      "end": {
491                        "line": 18,
492                        "column": 38
493                      }
494                    }
495                  },
496                  "loc": {
497                    "start": {
498                      "line": 18,
499                      "column": 4
500                    },
501                    "end": {
502                      "line": 18,
503                      "column": 38
504                    }
505                  }
506                },
507                "overloads": [],
508                "decorators": [],
509                "loc": {
510                  "start": {
511                    "line": 18,
512                    "column": 4
513                  },
514                  "end": {
515                    "line": 18,
516                    "column": 38
517                  }
518                }
519              }
520            ],
521            "decorators": [],
522            "loc": {
523              "start": {
524                "line": 18,
525                "column": 4
526              },
527              "end": {
528                "line": 18,
529                "column": 38
530              }
531            }
532          },
533          {
534            "type": "MethodDefinition",
535            "key": {
536              "type": "Identifier",
537              "name": "field",
538              "decorators": [],
539              "loc": {
540                "start": {
541                  "line": 1,
542                  "column": 1
543                },
544                "end": {
545                  "line": 1,
546                  "column": 1
547                }
548              }
549            },
550            "kind": "method",
551            "accessibility": "public",
552            "static": false,
553            "optional": false,
554            "computed": false,
555            "value": {
556              "type": "FunctionExpression",
557              "function": {
558                "type": "ScriptFunction",
559                "id": {
560                  "type": "Identifier",
561                  "name": "field",
562                  "decorators": [],
563                  "loc": {
564                    "start": {
565                      "line": 1,
566                      "column": 1
567                    },
568                    "end": {
569                      "line": 1,
570                      "column": 1
571                    }
572                  }
573                },
574                "generator": false,
575                "async": false,
576                "expression": false,
577                "params": [
578                  {
579                    "type": "ETSParameterExpression",
580                    "name": {
581                      "type": "Identifier",
582                      "name": "field",
583                      "typeAnnotation": {
584                        "type": "ETSUnionType",
585                        "types": [
586                          {
587                            "type": "ETSUnionType",
588                            "types": [
589                              {
590                                "type": "ETSTypeReference",
591                                "part": {
592                                  "type": "ETSTypeReferencePart",
593                                  "name": {
594                                    "type": "Identifier",
595                                    "name": "Object",
596                                    "decorators": [],
597                                    "loc": {
598                                      "start": {
599                                        "line": 18,
600                                        "column": 13
601                                      },
602                                      "end": {
603                                        "line": 18,
604                                        "column": 19
605                                      }
606                                    }
607                                  },
608                                  "loc": {
609                                    "start": {
610                                      "line": 18,
611                                      "column": 13
612                                    },
613                                    "end": {
614                                      "line": 18,
615                                      "column": 21
616                                    }
617                                  }
618                                },
619                                "loc": {
620                                  "start": {
621                                    "line": 18,
622                                    "column": 13
623                                  },
624                                  "end": {
625                                    "line": 18,
626                                    "column": 21
627                                  }
628                                }
629                              },
630                              {
631                                "type": "ETSTypeReference",
632                                "part": {
633                                  "type": "ETSTypeReferencePart",
634                                  "name": {
635                                    "type": "Identifier",
636                                    "name": "String",
637                                    "decorators": [],
638                                    "loc": {
639                                      "start": {
640                                        "line": 18,
641                                        "column": 22
642                                      },
643                                      "end": {
644                                        "line": 18,
645                                        "column": 28
646                                      }
647                                    }
648                                  },
649                                  "loc": {
650                                    "start": {
651                                      "line": 18,
652                                      "column": 22
653                                    },
654                                    "end": {
655                                      "line": 18,
656                                      "column": 30
657                                    }
658                                  }
659                                },
660                                "loc": {
661                                  "start": {
662                                    "line": 18,
663                                    "column": 22
664                                  },
665                                  "end": {
666                                    "line": 18,
667                                    "column": 30
668                                  }
669                                }
670                              },
671                              {
672                                "type": "ETSTypeReference",
673                                "part": {
674                                  "type": "ETSTypeReferencePart",
675                                  "name": {
676                                    "type": "Identifier",
677                                    "name": "Number",
678                                    "decorators": [],
679                                    "loc": {
680                                      "start": {
681                                        "line": 18,
682                                        "column": 31
683                                      },
684                                      "end": {
685                                        "line": 18,
686                                        "column": 37
687                                      }
688                                    }
689                                  },
690                                  "loc": {
691                                    "start": {
692                                      "line": 18,
693                                      "column": 31
694                                    },
695                                    "end": {
696                                      "line": 18,
697                                      "column": 38
698                                    }
699                                  }
700                                },
701                                "loc": {
702                                  "start": {
703                                    "line": 18,
704                                    "column": 31
705                                  },
706                                  "end": {
707                                    "line": 18,
708                                    "column": 38
709                                  }
710                                }
711                              }
712                            ],
713                            "loc": {
714                              "start": {
715                                "line": 1,
716                                "column": 1
717                              },
718                              "end": {
719                                "line": 1,
720                                "column": 1
721                              }
722                            }
723                          },
724                          {
725                            "type": "ETSUndefinedType",
726                            "loc": {
727                              "start": {
728                                "line": 1,
729                                "column": 1
730                              },
731                              "end": {
732                                "line": 1,
733                                "column": 1
734                              }
735                            }
736                          }
737                        ],
738                        "loc": {
739                          "start": {
740                            "line": 1,
741                            "column": 1
742                          },
743                          "end": {
744                            "line": 1,
745                            "column": 1
746                          }
747                        }
748                      },
749                      "decorators": [],
750                      "loc": {
751                        "start": {
752                          "line": 18,
753                          "column": 4
754                        },
755                        "end": {
756                          "line": 18,
757                          "column": 9
758                        }
759                      }
760                    },
761                    "loc": {
762                      "start": {
763                        "line": 18,
764                        "column": 4
765                      },
766                      "end": {
767                        "line": 18,
768                        "column": 9
769                      }
770                    }
771                  }
772                ],
773                "declare": true,
774                "loc": {
775                  "start": {
776                    "line": 18,
777                    "column": 4
778                  },
779                  "end": {
780                    "line": 18,
781                    "column": 38
782                  }
783                }
784              },
785              "loc": {
786                "start": {
787                  "line": 18,
788                  "column": 4
789                },
790                "end": {
791                  "line": 18,
792                  "column": 38
793                }
794              }
795            },
796            "overloads": [],
797            "decorators": [],
798            "loc": {
799              "start": {
800                "line": 18,
801                "column": 4
802              },
803              "end": {
804                "line": 18,
805                "column": 38
806              }
807            }
808          }
809        ],
810        "loc": {
811          "start": {
812            "line": 17,
813            "column": 1
814          },
815          "end": {
816            "line": 19,
817            "column": 2
818          }
819        }
820      },
821      "id": {
822        "type": "Identifier",
823        "name": "I",
824        "decorators": [],
825        "loc": {
826          "start": {
827            "line": 16,
828            "column": 11
829          },
830          "end": {
831            "line": 16,
832            "column": 12
833          }
834        }
835      },
836      "extends": [],
837      "loc": {
838        "start": {
839          "line": 16,
840          "column": 1
841        },
842        "end": {
843          "line": 21,
844          "column": 6
845        }
846      }
847    },
848    {
849      "type": "ClassDeclaration",
850      "definition": {
851        "id": {
852          "type": "Identifier",
853          "name": "C",
854          "decorators": [],
855          "loc": {
856            "start": {
857              "line": 21,
858              "column": 7
859            },
860            "end": {
861              "line": 21,
862              "column": 8
863            }
864          }
865        },
866        "superClass": null,
867        "implements": [
868          {
869            "type": "TSClassImplements",
870            "expression": {
871              "type": "ETSTypeReference",
872              "part": {
873                "type": "ETSTypeReferencePart",
874                "name": {
875                  "type": "Identifier",
876                  "name": "I",
877                  "decorators": [],
878                  "loc": {
879                    "start": {
880                      "line": 21,
881                      "column": 20
882                    },
883                    "end": {
884                      "line": 21,
885                      "column": 21
886                    }
887                  }
888                },
889                "loc": {
890                  "start": {
891                    "line": 21,
892                    "column": 20
893                  },
894                  "end": {
895                    "line": 22,
896                    "column": 2
897                  }
898                }
899              },
900              "loc": {
901                "start": {
902                  "line": 21,
903                  "column": 20
904                },
905                "end": {
906                  "line": 22,
907                  "column": 2
908                }
909              }
910            },
911            "loc": {
912              "start": {
913                "line": 21,
914                "column": 20
915              },
916              "end": {
917                "line": 22,
918                "column": 2
919              }
920            }
921          }
922        ],
923        "body": [
924          {
925            "type": "ClassProperty",
926            "key": {
927              "type": "Identifier",
928              "name": "field_",
929              "decorators": [],
930              "loc": {
931                "start": {
932                  "line": 23,
933                  "column": 4
934                },
935                "end": {
936                  "line": 23,
937                  "column": 10
938                }
939              }
940            },
941            "accessibility": "public",
942            "static": false,
943            "readonly": false,
944            "declare": false,
945            "optional": true,
946            "computed": false,
947            "typeAnnotation": {
948              "type": "ETSUnionType",
949              "types": [
950                {
951                  "type": "ETSTypeReference",
952                  "part": {
953                    "type": "ETSTypeReferencePart",
954                    "name": {
955                      "type": "Identifier",
956                      "name": "Object",
957                      "decorators": [],
958                      "loc": {
959                        "start": {
960                          "line": 23,
961                          "column": 14
962                        },
963                        "end": {
964                          "line": 23,
965                          "column": 20
966                        }
967                      }
968                    },
969                    "loc": {
970                      "start": {
971                        "line": 23,
972                        "column": 14
973                      },
974                      "end": {
975                        "line": 23,
976                        "column": 22
977                      }
978                    }
979                  },
980                  "loc": {
981                    "start": {
982                      "line": 23,
983                      "column": 14
984                    },
985                    "end": {
986                      "line": 23,
987                      "column": 22
988                    }
989                  }
990                },
991                {
992                  "type": "ETSTypeReference",
993                  "part": {
994                    "type": "ETSTypeReferencePart",
995                    "name": {
996                      "type": "Identifier",
997                      "name": "String",
998                      "decorators": [],
999                      "loc": {
1000                        "start": {
1001                          "line": 23,
1002                          "column": 23
1003                        },
1004                        "end": {
1005                          "line": 23,
1006                          "column": 29
1007                        }
1008                      }
1009                    },
1010                    "loc": {
1011                      "start": {
1012                        "line": 23,
1013                        "column": 23
1014                      },
1015                      "end": {
1016                        "line": 23,
1017                        "column": 30
1018                      }
1019                    }
1020                  },
1021                  "loc": {
1022                    "start": {
1023                      "line": 23,
1024                      "column": 23
1025                    },
1026                    "end": {
1027                      "line": 23,
1028                      "column": 30
1029                    }
1030                  }
1031                }
1032              ],
1033              "loc": {
1034                "start": {
1035                  "line": 23,
1036                  "column": 14
1037                },
1038                "end": {
1039                  "line": 23,
1040                  "column": 30
1041                }
1042              }
1043            },
1044            "definite": false,
1045            "decorators": [],
1046            "loc": {
1047              "start": {
1048                "line": 23,
1049                "column": 4
1050              },
1051              "end": {
1052                "line": 23,
1053                "column": 30
1054              }
1055            }
1056          },
1057          {
1058            "type": "MethodDefinition",
1059            "key": {
1060              "type": "Identifier",
1061              "name": "field",
1062              "decorators": [],
1063              "loc": {
1064                "start": {
1065                  "line": 1,
1066                  "column": 1
1067                },
1068                "end": {
1069                  "line": 1,
1070                  "column": 1
1071                }
1072              }
1073            },
1074            "kind": "get",
1075            "accessibility": "public",
1076            "static": false,
1077            "optional": false,
1078            "computed": false,
1079            "value": {
1080              "type": "FunctionExpression",
1081              "function": {
1082                "type": "ScriptFunction",
1083                "id": {
1084                  "type": "Identifier",
1085                  "name": "field",
1086                  "decorators": [],
1087                  "loc": {
1088                    "start": {
1089                      "line": 1,
1090                      "column": 1
1091                    },
1092                    "end": {
1093                      "line": 1,
1094                      "column": 1
1095                    }
1096                  }
1097                },
1098                "generator": false,
1099                "async": false,
1100                "expression": false,
1101                "params": [],
1102                "returnType": {
1103                  "type": "ETSUnionType",
1104                  "types": [
1105                    {
1106                      "type": "ETSTypeReference",
1107                      "part": {
1108                        "type": "ETSTypeReferencePart",
1109                        "name": {
1110                          "type": "Identifier",
1111                          "name": "Object",
1112                          "decorators": [],
1113                          "loc": {
1114                            "start": {
1115                              "line": 25,
1116                              "column": 18
1117                            },
1118                            "end": {
1119                              "line": 25,
1120                              "column": 24
1121                            }
1122                          }
1123                        },
1124                        "loc": {
1125                          "start": {
1126                            "line": 25,
1127                            "column": 18
1128                          },
1129                          "end": {
1130                            "line": 25,
1131                            "column": 26
1132                          }
1133                        }
1134                      },
1135                      "loc": {
1136                        "start": {
1137                          "line": 25,
1138                          "column": 18
1139                        },
1140                        "end": {
1141                          "line": 25,
1142                          "column": 26
1143                        }
1144                      }
1145                    },
1146                    {
1147                      "type": "ETSTypeReference",
1148                      "part": {
1149                        "type": "ETSTypeReferencePart",
1150                        "name": {
1151                          "type": "Identifier",
1152                          "name": "String",
1153                          "decorators": [],
1154                          "loc": {
1155                            "start": {
1156                              "line": 25,
1157                              "column": 27
1158                            },
1159                            "end": {
1160                              "line": 25,
1161                              "column": 33
1162                            }
1163                          }
1164                        },
1165                        "loc": {
1166                          "start": {
1167                            "line": 25,
1168                            "column": 27
1169                          },
1170                          "end": {
1171                            "line": 25,
1172                            "column": 35
1173                          }
1174                        }
1175                      },
1176                      "loc": {
1177                        "start": {
1178                          "line": 25,
1179                          "column": 27
1180                        },
1181                        "end": {
1182                          "line": 25,
1183                          "column": 35
1184                        }
1185                      }
1186                    },
1187                    {
1188                      "type": "ETSUndefinedType",
1189                      "loc": {
1190                        "start": {
1191                          "line": 25,
1192                          "column": 36
1193                        },
1194                        "end": {
1195                          "line": 25,
1196                          "column": 45
1197                        }
1198                      }
1199                    }
1200                  ],
1201                  "loc": {
1202                    "start": {
1203                      "line": 25,
1204                      "column": 18
1205                    },
1206                    "end": {
1207                      "line": 25,
1208                      "column": 45
1209                    }
1210                  }
1211                },
1212                "body": {
1213                  "type": "BlockStatement",
1214                  "statements": [
1215                    {
1216                      "type": "ReturnStatement",
1217                      "argument": {
1218                        "type": "MemberExpression",
1219                        "object": {
1220                          "type": "ThisExpression",
1221                          "loc": {
1222                            "start": {
1223                              "line": 26,
1224                              "column": 14
1225                            },
1226                            "end": {
1227                              "line": 26,
1228                              "column": 18
1229                            }
1230                          }
1231                        },
1232                        "property": {
1233                          "type": "Identifier",
1234                          "name": "field_",
1235                          "decorators": [],
1236                          "loc": {
1237                            "start": {
1238                              "line": 26,
1239                              "column": 19
1240                            },
1241                            "end": {
1242                              "line": 26,
1243                              "column": 25
1244                            }
1245                          }
1246                        },
1247                        "computed": false,
1248                        "optional": false,
1249                        "loc": {
1250                          "start": {
1251                            "line": 26,
1252                            "column": 14
1253                          },
1254                          "end": {
1255                            "line": 26,
1256                            "column": 25
1257                          }
1258                        }
1259                      },
1260                      "loc": {
1261                        "start": {
1262                          "line": 26,
1263                          "column": 7
1264                        },
1265                        "end": {
1266                          "line": 26,
1267                          "column": 26
1268                        }
1269                      }
1270                    }
1271                  ],
1272                  "loc": {
1273                    "start": {
1274                      "line": 25,
1275                      "column": 46
1276                    },
1277                    "end": {
1278                      "line": 27,
1279                      "column": 5
1280                    }
1281                  }
1282                },
1283                "loc": {
1284                  "start": {
1285                    "line": 25,
1286                    "column": 13
1287                  },
1288                  "end": {
1289                    "line": 27,
1290                    "column": 5
1291                  }
1292                }
1293              },
1294              "loc": {
1295                "start": {
1296                  "line": 25,
1297                  "column": 13
1298                },
1299                "end": {
1300                  "line": 27,
1301                  "column": 5
1302                }
1303              }
1304            },
1305            "overloads": [
1306              {
1307                "type": "MethodDefinition",
1308                "key": {
1309                  "type": "Identifier",
1310                  "name": "field",
1311                  "decorators": [],
1312                  "loc": {
1313                    "start": {
1314                      "line": 1,
1315                      "column": 1
1316                    },
1317                    "end": {
1318                      "line": 1,
1319                      "column": 1
1320                    }
1321                  }
1322                },
1323                "kind": "set",
1324                "accessibility": "public",
1325                "static": false,
1326                "optional": false,
1327                "computed": false,
1328                "value": {
1329                  "type": "FunctionExpression",
1330                  "function": {
1331                    "type": "ScriptFunction",
1332                    "id": {
1333                      "type": "Identifier",
1334                      "name": "field",
1335                      "decorators": [],
1336                      "loc": {
1337                        "start": {
1338                          "line": 1,
1339                          "column": 1
1340                        },
1341                        "end": {
1342                          "line": 1,
1343                          "column": 1
1344                        }
1345                      }
1346                    },
1347                    "generator": false,
1348                    "async": false,
1349                    "expression": false,
1350                    "params": [
1351                      {
1352                        "type": "ETSParameterExpression",
1353                        "name": {
1354                          "type": "Identifier",
1355                          "name": "o",
1356                          "typeAnnotation": {
1357                            "type": "ETSUnionType",
1358                            "types": [
1359                              {
1360                                "type": "ETSTypeReference",
1361                                "part": {
1362                                  "type": "ETSTypeReferencePart",
1363                                  "name": {
1364                                    "type": "Identifier",
1365                                    "name": "Object",
1366                                    "decorators": [],
1367                                    "loc": {
1368                                      "start": {
1369                                        "line": 29,
1370                                        "column": 18
1371                                      },
1372                                      "end": {
1373                                        "line": 29,
1374                                        "column": 24
1375                                      }
1376                                    }
1377                                  },
1378                                  "loc": {
1379                                    "start": {
1380                                      "line": 29,
1381                                      "column": 18
1382                                    },
1383                                    "end": {
1384                                      "line": 29,
1385                                      "column": 26
1386                                    }
1387                                  }
1388                                },
1389                                "loc": {
1390                                  "start": {
1391                                    "line": 29,
1392                                    "column": 18
1393                                  },
1394                                  "end": {
1395                                    "line": 29,
1396                                    "column": 26
1397                                  }
1398                                }
1399                              },
1400                              {
1401                                "type": "ETSTypeReference",
1402                                "part": {
1403                                  "type": "ETSTypeReferencePart",
1404                                  "name": {
1405                                    "type": "Identifier",
1406                                    "name": "String",
1407                                    "decorators": [],
1408                                    "loc": {
1409                                      "start": {
1410                                        "line": 29,
1411                                        "column": 27
1412                                      },
1413                                      "end": {
1414                                        "line": 29,
1415                                        "column": 33
1416                                      }
1417                                    }
1418                                  },
1419                                  "loc": {
1420                                    "start": {
1421                                      "line": 29,
1422                                      "column": 27
1423                                    },
1424                                    "end": {
1425                                      "line": 29,
1426                                      "column": 35
1427                                    }
1428                                  }
1429                                },
1430                                "loc": {
1431                                  "start": {
1432                                    "line": 29,
1433                                    "column": 27
1434                                  },
1435                                  "end": {
1436                                    "line": 29,
1437                                    "column": 35
1438                                  }
1439                                }
1440                              },
1441                              {
1442                                "type": "ETSUndefinedType",
1443                                "loc": {
1444                                  "start": {
1445                                    "line": 29,
1446                                    "column": 36
1447                                  },
1448                                  "end": {
1449                                    "line": 29,
1450                                    "column": 45
1451                                  }
1452                                }
1453                              }
1454                            ],
1455                            "loc": {
1456                              "start": {
1457                                "line": 29,
1458                                "column": 18
1459                              },
1460                              "end": {
1461                                "line": 29,
1462                                "column": 45
1463                              }
1464                            }
1465                          },
1466                          "decorators": [],
1467                          "loc": {
1468                            "start": {
1469                              "line": 29,
1470                              "column": 14
1471                            },
1472                            "end": {
1473                              "line": 29,
1474                              "column": 45
1475                            }
1476                          }
1477                        },
1478                        "loc": {
1479                          "start": {
1480                            "line": 29,
1481                            "column": 14
1482                          },
1483                          "end": {
1484                            "line": 29,
1485                            "column": 45
1486                          }
1487                        }
1488                      }
1489                    ],
1490                    "body": {
1491                      "type": "BlockStatement",
1492                      "statements": [
1493                        {
1494                          "type": "ExpressionStatement",
1495                          "expression": {
1496                            "type": "AssignmentExpression",
1497                            "operator": "=",
1498                            "left": {
1499                              "type": "MemberExpression",
1500                              "object": {
1501                                "type": "ThisExpression",
1502                                "loc": {
1503                                  "start": {
1504                                    "line": 30,
1505                                    "column": 7
1506                                  },
1507                                  "end": {
1508                                    "line": 30,
1509                                    "column": 11
1510                                  }
1511                                }
1512                              },
1513                              "property": {
1514                                "type": "Identifier",
1515                                "name": "field_",
1516                                "decorators": [],
1517                                "loc": {
1518                                  "start": {
1519                                    "line": 30,
1520                                    "column": 12
1521                                  },
1522                                  "end": {
1523                                    "line": 30,
1524                                    "column": 18
1525                                  }
1526                                }
1527                              },
1528                              "computed": false,
1529                              "optional": false,
1530                              "loc": {
1531                                "start": {
1532                                  "line": 30,
1533                                  "column": 7
1534                                },
1535                                "end": {
1536                                  "line": 30,
1537                                  "column": 18
1538                                }
1539                              }
1540                            },
1541                            "right": {
1542                              "type": "Identifier",
1543                              "name": "o",
1544                              "decorators": [],
1545                              "loc": {
1546                                "start": {
1547                                  "line": 30,
1548                                  "column": 21
1549                                },
1550                                "end": {
1551                                  "line": 30,
1552                                  "column": 22
1553                                }
1554                              }
1555                            },
1556                            "loc": {
1557                              "start": {
1558                                "line": 30,
1559                                "column": 7
1560                              },
1561                              "end": {
1562                                "line": 30,
1563                                "column": 22
1564                              }
1565                            }
1566                          },
1567                          "loc": {
1568                            "start": {
1569                              "line": 30,
1570                              "column": 7
1571                            },
1572                            "end": {
1573                              "line": 30,
1574                              "column": 23
1575                            }
1576                          }
1577                        }
1578                      ],
1579                      "loc": {
1580                        "start": {
1581                          "line": 29,
1582                          "column": 47
1583                        },
1584                        "end": {
1585                          "line": 31,
1586                          "column": 5
1587                        }
1588                      }
1589                    },
1590                    "loc": {
1591                      "start": {
1592                        "line": 29,
1593                        "column": 13
1594                      },
1595                      "end": {
1596                        "line": 31,
1597                        "column": 5
1598                      }
1599                    }
1600                  },
1601                  "loc": {
1602                    "start": {
1603                      "line": 29,
1604                      "column": 13
1605                    },
1606                    "end": {
1607                      "line": 31,
1608                      "column": 5
1609                    }
1610                  }
1611                },
1612                "overloads": [],
1613                "decorators": [],
1614                "loc": {
1615                  "start": {
1616                    "line": 29,
1617                    "column": 13
1618                  },
1619                  "end": {
1620                    "line": 31,
1621                    "column": 5
1622                  }
1623                }
1624              }
1625            ],
1626            "decorators": [],
1627            "loc": {
1628              "start": {
1629                "line": 25,
1630                "column": 13
1631              },
1632              "end": {
1633                "line": 27,
1634                "column": 5
1635              }
1636            }
1637          },
1638          {
1639            "type": "MethodDefinition",
1640            "key": {
1641              "type": "Identifier",
1642              "name": "constructor",
1643              "decorators": [],
1644              "loc": {
1645                "start": {
1646                  "line": 1,
1647                  "column": 1
1648                },
1649                "end": {
1650                  "line": 1,
1651                  "column": 1
1652                }
1653              }
1654            },
1655            "kind": "constructor",
1656            "static": false,
1657            "optional": false,
1658            "computed": false,
1659            "value": {
1660              "type": "FunctionExpression",
1661              "function": {
1662                "type": "ScriptFunction",
1663                "id": {
1664                  "type": "Identifier",
1665                  "name": "constructor",
1666                  "decorators": [],
1667                  "loc": {
1668                    "start": {
1669                      "line": 1,
1670                      "column": 1
1671                    },
1672                    "end": {
1673                      "line": 1,
1674                      "column": 1
1675                    }
1676                  }
1677                },
1678                "generator": false,
1679                "async": false,
1680                "expression": false,
1681                "params": [],
1682                "body": {
1683                  "type": "BlockStatement",
1684                  "statements": [],
1685                  "loc": {
1686                    "start": {
1687                      "line": 1,
1688                      "column": 1
1689                    },
1690                    "end": {
1691                      "line": 1,
1692                      "column": 1
1693                    }
1694                  }
1695                },
1696                "loc": {
1697                  "start": {
1698                    "line": 1,
1699                    "column": 1
1700                  },
1701                  "end": {
1702                    "line": 1,
1703                    "column": 1
1704                  }
1705                }
1706              },
1707              "loc": {
1708                "start": {
1709                  "line": 1,
1710                  "column": 1
1711                },
1712                "end": {
1713                  "line": 1,
1714                  "column": 1
1715                }
1716              }
1717            },
1718            "overloads": [],
1719            "decorators": [],
1720            "loc": {
1721              "start": {
1722                "line": 32,
1723                "column": 2
1724              },
1725              "end": {
1726                "line": 32,
1727                "column": 2
1728              }
1729            }
1730          }
1731        ],
1732        "loc": {
1733          "start": {
1734            "line": 22,
1735            "column": 1
1736          },
1737          "end": {
1738            "line": 32,
1739            "column": 2
1740          }
1741        }
1742      },
1743      "loc": {
1744        "start": {
1745          "line": 21,
1746          "column": 1
1747        },
1748        "end": {
1749          "line": 32,
1750          "column": 2
1751        }
1752      }
1753    },
1754    {
1755      "type": "ClassDeclaration",
1756      "definition": {
1757        "id": {
1758          "type": "Identifier",
1759          "name": "ETSGLOBAL",
1760          "decorators": [],
1761          "loc": {
1762            "start": {
1763              "line": 1,
1764              "column": 1
1765            },
1766            "end": {
1767              "line": 1,
1768              "column": 1
1769            }
1770          }
1771        },
1772        "superClass": null,
1773        "implements": [],
1774        "body": [
1775          {
1776            "type": "MethodDefinition",
1777            "key": {
1778              "type": "Identifier",
1779              "name": "_$init$_",
1780              "decorators": [],
1781              "loc": {
1782                "start": {
1783                  "line": 1,
1784                  "column": 1
1785                },
1786                "end": {
1787                  "line": 1,
1788                  "column": 1
1789                }
1790              }
1791            },
1792            "kind": "method",
1793            "accessibility": "public",
1794            "static": true,
1795            "optional": false,
1796            "computed": false,
1797            "value": {
1798              "type": "FunctionExpression",
1799              "function": {
1800                "type": "ScriptFunction",
1801                "id": {
1802                  "type": "Identifier",
1803                  "name": "_$init$_",
1804                  "decorators": [],
1805                  "loc": {
1806                    "start": {
1807                      "line": 1,
1808                      "column": 1
1809                    },
1810                    "end": {
1811                      "line": 1,
1812                      "column": 1
1813                    }
1814                  }
1815                },
1816                "generator": false,
1817                "async": false,
1818                "expression": false,
1819                "params": [],
1820                "body": {
1821                  "type": "BlockStatement",
1822                  "statements": [],
1823                  "loc": {
1824                    "start": {
1825                      "line": 1,
1826                      "column": 1
1827                    },
1828                    "end": {
1829                      "line": 1,
1830                      "column": 1
1831                    }
1832                  }
1833                },
1834                "loc": {
1835                  "start": {
1836                    "line": 1,
1837                    "column": 1
1838                  },
1839                  "end": {
1840                    "line": 1,
1841                    "column": 1
1842                  }
1843                }
1844              },
1845              "loc": {
1846                "start": {
1847                  "line": 1,
1848                  "column": 1
1849                },
1850                "end": {
1851                  "line": 1,
1852                  "column": 1
1853                }
1854              }
1855            },
1856            "overloads": [],
1857            "decorators": [],
1858            "loc": {
1859              "start": {
1860                "line": 1,
1861                "column": 1
1862              },
1863              "end": {
1864                "line": 1,
1865                "column": 1
1866              }
1867            }
1868          }
1869        ],
1870        "loc": {
1871          "start": {
1872            "line": 1,
1873            "column": 1
1874          },
1875          "end": {
1876            "line": 1,
1877            "column": 1
1878          }
1879        }
1880      },
1881      "loc": {
1882        "start": {
1883          "line": 1,
1884          "column": 1
1885        },
1886        "end": {
1887          "line": 1,
1888          "column": 1
1889        }
1890      }
1891    }
1892  ],
1893  "loc": {
1894    "start": {
1895      "line": 1,
1896      "column": 1
1897    },
1898    "end": {
1899      "line": 33,
1900      "column": 1
1901    }
1902  }
1903}
1904