1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ImportDeclaration",
6      "source": {
7        "type": "StringLiteral",
8        "value": "./internals",
9        "loc": {
10          "start": {
11            "line": 16,
12            "column": 37
13          },
14          "end": {
15            "line": 16,
16            "column": 50
17          }
18        }
19      },
20      "specifiers": [
21        {
22          "type": "ImportSpecifier",
23          "local": {
24            "type": "Identifier",
25            "name": "__memo_context_type",
26            "decorators": [],
27            "loc": {
28              "start": {
29                "line": 16,
30                "column": 10
31              },
32              "end": {
33                "line": 16,
34                "column": 29
35              }
36            }
37          },
38          "imported": {
39            "type": "Identifier",
40            "name": "__memo_context_type",
41            "decorators": [],
42            "loc": {
43              "start": {
44                "line": 16,
45                "column": 10
46              },
47              "end": {
48                "line": 16,
49                "column": 29
50              }
51            }
52          },
53          "loc": {
54            "start": {
55              "line": 16,
56              "column": 10
57            },
58            "end": {
59              "line": 16,
60              "column": 29
61            }
62          }
63        }
64      ],
65      "loc": {
66        "start": {
67          "line": 16,
68          "column": 1
69        },
70        "end": {
71          "line": 16,
72          "column": 51
73        }
74      }
75    },
76    {
77      "type": "ImportDeclaration",
78      "source": {
79        "type": "StringLiteral",
80        "value": "../import_tests/internals",
81        "loc": {
82          "start": {
83            "line": 17,
84            "column": 27
85          },
86          "end": {
87            "line": 17,
88            "column": 54
89          }
90        }
91      },
92      "specifiers": [
93        {
94          "type": "ImportSpecifier",
95          "local": {
96            "type": "Identifier",
97            "name": "__context",
98            "decorators": [],
99            "loc": {
100              "start": {
101                "line": 17,
102                "column": 10
103              },
104              "end": {
105                "line": 17,
106                "column": 19
107              }
108            }
109          },
110          "imported": {
111            "type": "Identifier",
112            "name": "__context",
113            "decorators": [],
114            "loc": {
115              "start": {
116                "line": 17,
117                "column": 10
118              },
119              "end": {
120                "line": 17,
121                "column": 19
122              }
123            }
124          },
125          "loc": {
126            "start": {
127              "line": 17,
128              "column": 10
129            },
130            "end": {
131              "line": 17,
132              "column": 19
133            }
134          }
135        }
136      ],
137      "loc": {
138        "start": {
139          "line": 17,
140          "column": 1
141        },
142        "end": {
143          "line": 17,
144          "column": 55
145        }
146      }
147    },
148    {
149      "type": "TSInterfaceDeclaration",
150      "body": {
151        "type": "TSInterfaceBody",
152        "body": [
153          {
154            "type": "MethodDefinition",
155            "key": {
156              "type": "Identifier",
157              "name": "name",
158              "decorators": [],
159              "loc": {
160                "start": {
161                  "line": 1,
162                  "column": 1
163                },
164                "end": {
165                  "line": 1,
166                  "column": 1
167                }
168              }
169            },
170            "kind": "method",
171            "accessibility": "public",
172            "static": false,
173            "optional": false,
174            "computed": false,
175            "value": {
176              "type": "FunctionExpression",
177              "function": {
178                "type": "ScriptFunction",
179                "id": {
180                  "type": "Identifier",
181                  "name": "name",
182                  "decorators": [],
183                  "loc": {
184                    "start": {
185                      "line": 1,
186                      "column": 1
187                    },
188                    "end": {
189                      "line": 1,
190                      "column": 1
191                    }
192                  }
193                },
194                "generator": false,
195                "async": false,
196                "expression": false,
197                "params": [],
198                "returnType": {
199                  "type": "ETSTypeReference",
200                  "part": {
201                    "type": "ETSTypeReferencePart",
202                    "name": {
203                      "type": "Identifier",
204                      "name": "string",
205                      "decorators": [],
206                      "loc": {
207                        "start": {
208                          "line": 20,
209                          "column": 12
210                        },
211                        "end": {
212                          "line": 20,
213                          "column": 18
214                        }
215                      }
216                    },
217                    "loc": {
218                      "start": {
219                        "line": 20,
220                        "column": 12
221                      },
222                      "end": {
223                        "line": 20,
224                        "column": 19
225                      }
226                    }
227                  },
228                  "loc": {
229                    "start": {
230                      "line": 20,
231                      "column": 12
232                    },
233                    "end": {
234                      "line": 20,
235                      "column": 19
236                    }
237                  }
238                },
239                "declare": true,
240                "loc": {
241                  "start": {
242                    "line": 20,
243                    "column": 5
244                  },
245                  "end": {
246                    "line": 20,
247                    "column": 19
248                  }
249                }
250              },
251              "loc": {
252                "start": {
253                  "line": 20,
254                  "column": 5
255                },
256                "end": {
257                  "line": 20,
258                  "column": 19
259                }
260              }
261            },
262            "overloads": [
263              {
264                "type": "MethodDefinition",
265                "key": {
266                  "type": "Identifier",
267                  "name": "name",
268                  "decorators": [],
269                  "loc": {
270                    "start": {
271                      "line": 1,
272                      "column": 1
273                    },
274                    "end": {
275                      "line": 1,
276                      "column": 1
277                    }
278                  }
279                },
280                "kind": "method",
281                "accessibility": "public",
282                "static": false,
283                "optional": false,
284                "computed": false,
285                "value": {
286                  "type": "FunctionExpression",
287                  "function": {
288                    "type": "ScriptFunction",
289                    "id": {
290                      "type": "Identifier",
291                      "name": "name",
292                      "decorators": [],
293                      "loc": {
294                        "start": {
295                          "line": 1,
296                          "column": 1
297                        },
298                        "end": {
299                          "line": 1,
300                          "column": 1
301                        }
302                      }
303                    },
304                    "generator": false,
305                    "async": false,
306                    "expression": false,
307                    "params": [
308                      {
309                        "type": "ETSParameterExpression",
310                        "name": {
311                          "type": "Identifier",
312                          "name": "name",
313                          "typeAnnotation": {
314                            "type": "ETSTypeReference",
315                            "part": {
316                              "type": "ETSTypeReferencePart",
317                              "name": {
318                                "type": "Identifier",
319                                "name": "string",
320                                "decorators": [],
321                                "loc": {
322                                  "start": {
323                                    "line": 20,
324                                    "column": 12
325                                  },
326                                  "end": {
327                                    "line": 20,
328                                    "column": 18
329                                  }
330                                }
331                              },
332                              "loc": {
333                                "start": {
334                                  "line": 20,
335                                  "column": 12
336                                },
337                                "end": {
338                                  "line": 20,
339                                  "column": 19
340                                }
341                              }
342                            },
343                            "loc": {
344                              "start": {
345                                "line": 20,
346                                "column": 12
347                              },
348                              "end": {
349                                "line": 20,
350                                "column": 19
351                              }
352                            }
353                          },
354                          "decorators": [],
355                          "loc": {
356                            "start": {
357                              "line": 20,
358                              "column": 5
359                            },
360                            "end": {
361                              "line": 20,
362                              "column": 9
363                            }
364                          }
365                        },
366                        "loc": {
367                          "start": {
368                            "line": 20,
369                            "column": 5
370                          },
371                          "end": {
372                            "line": 20,
373                            "column": 9
374                          }
375                        }
376                      }
377                    ],
378                    "declare": true,
379                    "loc": {
380                      "start": {
381                        "line": 20,
382                        "column": 5
383                      },
384                      "end": {
385                        "line": 20,
386                        "column": 19
387                      }
388                    }
389                  },
390                  "loc": {
391                    "start": {
392                      "line": 20,
393                      "column": 5
394                    },
395                    "end": {
396                      "line": 20,
397                      "column": 19
398                    }
399                  }
400                },
401                "overloads": [],
402                "decorators": [],
403                "loc": {
404                  "start": {
405                    "line": 20,
406                    "column": 5
407                  },
408                  "end": {
409                    "line": 20,
410                    "column": 19
411                  }
412                }
413              }
414            ],
415            "decorators": [],
416            "loc": {
417              "start": {
418                "line": 20,
419                "column": 5
420              },
421              "end": {
422                "line": 20,
423                "column": 19
424              }
425            }
426          },
427          {
428            "type": "MethodDefinition",
429            "key": {
430              "type": "Identifier",
431              "name": "name",
432              "decorators": [],
433              "loc": {
434                "start": {
435                  "line": 1,
436                  "column": 1
437                },
438                "end": {
439                  "line": 1,
440                  "column": 1
441                }
442              }
443            },
444            "kind": "method",
445            "accessibility": "public",
446            "static": false,
447            "optional": false,
448            "computed": false,
449            "value": {
450              "type": "FunctionExpression",
451              "function": {
452                "type": "ScriptFunction",
453                "id": {
454                  "type": "Identifier",
455                  "name": "name",
456                  "decorators": [],
457                  "loc": {
458                    "start": {
459                      "line": 1,
460                      "column": 1
461                    },
462                    "end": {
463                      "line": 1,
464                      "column": 1
465                    }
466                  }
467                },
468                "generator": false,
469                "async": false,
470                "expression": false,
471                "params": [
472                  {
473                    "type": "ETSParameterExpression",
474                    "name": {
475                      "type": "Identifier",
476                      "name": "name",
477                      "typeAnnotation": {
478                        "type": "ETSTypeReference",
479                        "part": {
480                          "type": "ETSTypeReferencePart",
481                          "name": {
482                            "type": "Identifier",
483                            "name": "string",
484                            "decorators": [],
485                            "loc": {
486                              "start": {
487                                "line": 20,
488                                "column": 12
489                              },
490                              "end": {
491                                "line": 20,
492                                "column": 18
493                              }
494                            }
495                          },
496                          "loc": {
497                            "start": {
498                              "line": 20,
499                              "column": 12
500                            },
501                            "end": {
502                              "line": 20,
503                              "column": 19
504                            }
505                          }
506                        },
507                        "loc": {
508                          "start": {
509                            "line": 20,
510                            "column": 12
511                          },
512                          "end": {
513                            "line": 20,
514                            "column": 19
515                          }
516                        }
517                      },
518                      "decorators": [],
519                      "loc": {
520                        "start": {
521                          "line": 20,
522                          "column": 5
523                        },
524                        "end": {
525                          "line": 20,
526                          "column": 9
527                        }
528                      }
529                    },
530                    "loc": {
531                      "start": {
532                        "line": 20,
533                        "column": 5
534                      },
535                      "end": {
536                        "line": 20,
537                        "column": 9
538                      }
539                    }
540                  }
541                ],
542                "declare": true,
543                "loc": {
544                  "start": {
545                    "line": 20,
546                    "column": 5
547                  },
548                  "end": {
549                    "line": 20,
550                    "column": 19
551                  }
552                }
553              },
554              "loc": {
555                "start": {
556                  "line": 20,
557                  "column": 5
558                },
559                "end": {
560                  "line": 20,
561                  "column": 19
562                }
563              }
564            },
565            "overloads": [],
566            "decorators": [],
567            "loc": {
568              "start": {
569                "line": 20,
570                "column": 5
571              },
572              "end": {
573                "line": 20,
574                "column": 19
575              }
576            }
577          }
578        ],
579        "loc": {
580          "start": {
581            "line": 19,
582            "column": 16
583          },
584          "end": {
585            "line": 21,
586            "column": 2
587          }
588        }
589      },
590      "id": {
591        "type": "Identifier",
592        "name": "Test",
593        "decorators": [],
594        "loc": {
595          "start": {
596            "line": 19,
597            "column": 11
598          },
599          "end": {
600            "line": 19,
601            "column": 15
602          }
603        }
604      },
605      "extends": [],
606      "loc": {
607        "start": {
608          "line": 19,
609          "column": 1
610        },
611        "end": {
612          "line": 22,
613          "column": 1
614        }
615      }
616    },
617    {
618      "type": "ClassDeclaration",
619      "definition": {
620        "id": {
621          "type": "Identifier",
622          "name": "ETSGLOBAL",
623          "decorators": [],
624          "loc": {
625            "start": {
626              "line": 1,
627              "column": 1
628            },
629            "end": {
630              "line": 1,
631              "column": 1
632            }
633          }
634        },
635        "superClass": null,
636        "implements": [],
637        "body": [
638          {
639            "type": "MethodDefinition",
640            "key": {
641              "type": "Identifier",
642              "name": "_$init$_",
643              "decorators": [],
644              "loc": {
645                "start": {
646                  "line": 1,
647                  "column": 1
648                },
649                "end": {
650                  "line": 1,
651                  "column": 1
652                }
653              }
654            },
655            "kind": "method",
656            "accessibility": "public",
657            "static": true,
658            "optional": false,
659            "computed": false,
660            "value": {
661              "type": "FunctionExpression",
662              "function": {
663                "type": "ScriptFunction",
664                "id": {
665                  "type": "Identifier",
666                  "name": "_$init$_",
667                  "decorators": [],
668                  "loc": {
669                    "start": {
670                      "line": 1,
671                      "column": 1
672                    },
673                    "end": {
674                      "line": 1,
675                      "column": 1
676                    }
677                  }
678                },
679                "generator": false,
680                "async": false,
681                "expression": false,
682                "params": [],
683                "body": {
684                  "type": "BlockStatement",
685                  "statements": [
686                    {
687                      "type": "VariableDeclaration",
688                      "declarations": [
689                        {
690                          "type": "VariableDeclarator",
691                          "id": {
692                            "type": "Identifier",
693                            "name": "__linker",
694                            "decorators": [],
695                            "loc": {
696                              "start": {
697                                "line": 1,
698                                "column": 3
699                              },
700                              "end": {
701                                "line": 1,
702                                "column": 3
703                              }
704                            }
705                          },
706                          "init": {
707                            "type": "CallExpression",
708                            "callee": {
709                              "type": "MemberExpression",
710                              "object": {
711                                "type": "CallExpression",
712                                "callee": {
713                                  "type": "MemberExpression",
714                                  "object": {
715                                    "type": "Identifier",
716                                    "name": "Class",
717                                    "decorators": [],
718                                    "loc": {
719                                      "start": {
720                                        "line": 1,
721                                        "column": 3
722                                      },
723                                      "end": {
724                                        "line": 1,
725                                        "column": 3
726                                      }
727                                    }
728                                  },
729                                  "property": {
730                                    "type": "Identifier",
731                                    "name": "ofCaller",
732                                    "decorators": [],
733                                    "loc": {
734                                      "start": {
735                                        "line": 1,
736                                        "column": 3
737                                      },
738                                      "end": {
739                                        "line": 1,
740                                        "column": 3
741                                      }
742                                    }
743                                  },
744                                  "computed": false,
745                                  "optional": false,
746                                  "loc": {
747                                    "start": {
748                                      "line": 1,
749                                      "column": 3
750                                    },
751                                    "end": {
752                                      "line": 1,
753                                      "column": 3
754                                    }
755                                  }
756                                },
757                                "arguments": [],
758                                "optional": false,
759                                "loc": {
760                                  "start": {
761                                    "line": 1,
762                                    "column": 3
763                                  },
764                                  "end": {
765                                    "line": 1,
766                                    "column": 3
767                                  }
768                                }
769                              },
770                              "property": {
771                                "type": "Identifier",
772                                "name": "getLinker",
773                                "decorators": [],
774                                "loc": {
775                                  "start": {
776                                    "line": 1,
777                                    "column": 3
778                                  },
779                                  "end": {
780                                    "line": 1,
781                                    "column": 3
782                                  }
783                                }
784                              },
785                              "computed": false,
786                              "optional": false,
787                              "loc": {
788                                "start": {
789                                  "line": 1,
790                                  "column": 3
791                                },
792                                "end": {
793                                  "line": 1,
794                                  "column": 3
795                                }
796                              }
797                            },
798                            "arguments": [],
799                            "optional": false,
800                            "loc": {
801                              "start": {
802                                "line": 1,
803                                "column": 3
804                              },
805                              "end": {
806                                "line": 1,
807                                "column": 3
808                              }
809                            }
810                          },
811                          "loc": {
812                            "start": {
813                              "line": 1,
814                              "column": 3
815                            },
816                            "end": {
817                              "line": 1,
818                              "column": 3
819                            }
820                          }
821                        }
822                      ],
823                      "kind": "const",
824                      "loc": {
825                        "start": {
826                          "line": 1,
827                          "column": 1
828                        },
829                        "end": {
830                          "line": 1,
831                          "column": 3
832                        }
833                      }
834                    },
835                    {
836                      "type": "ExpressionStatement",
837                      "expression": {
838                        "type": "CallExpression",
839                        "callee": {
840                          "type": "MemberExpression",
841                          "object": {
842                            "type": "Identifier",
843                            "name": "__linker",
844                            "decorators": [],
845                            "loc": {
846                              "start": {
847                                "line": 1,
848                                "column": 1
849                              },
850                              "end": {
851                                "line": 1,
852                                "column": 3
853                              }
854                            }
855                          },
856                          "property": {
857                            "type": "Identifier",
858                            "name": "loadClass",
859                            "decorators": [],
860                            "loc": {
861                              "start": {
862                                "line": 1,
863                                "column": 3
864                              },
865                              "end": {
866                                "line": 1,
867                                "column": 3
868                              }
869                            }
870                          },
871                          "computed": false,
872                          "optional": false,
873                          "loc": {
874                            "start": {
875                              "line": 1,
876                              "column": 1
877                            },
878                            "end": {
879                              "line": 1,
880                              "column": 3
881                            }
882                          }
883                        },
884                        "arguments": [
885                          {
886                            "type": "StringLiteral",
887                            "value": "internals.ETSGLOBAL",
888                            "loc": {
889                              "start": {
890                                "line": 1,
891                                "column": 3
892                              },
893                              "end": {
894                                "line": 1,
895                                "column": 3
896                              }
897                            }
898                          },
899                          {
900                            "type": "BooleanLiteral",
901                            "value": true,
902                            "loc": {
903                              "start": {
904                                "line": 1,
905                                "column": 3
906                              },
907                              "end": {
908                                "line": 1,
909                                "column": 3
910                              }
911                            }
912                          }
913                        ],
914                        "optional": false,
915                        "loc": {
916                          "start": {
917                            "line": 1,
918                            "column": 1
919                          },
920                          "end": {
921                            "line": 1,
922                            "column": 3
923                          }
924                        }
925                      },
926                      "loc": {
927                        "start": {
928                          "line": 1,
929                          "column": 1
930                        },
931                        "end": {
932                          "line": 1,
933                          "column": 3
934                        }
935                      }
936                    }
937                  ],
938                  "loc": {
939                    "start": {
940                      "line": 1,
941                      "column": 1
942                    },
943                    "end": {
944                      "line": 1,
945                      "column": 1
946                    }
947                  }
948                },
949                "loc": {
950                  "start": {
951                    "line": 1,
952                    "column": 1
953                  },
954                  "end": {
955                    "line": 1,
956                    "column": 1
957                  }
958                }
959              },
960              "loc": {
961                "start": {
962                  "line": 1,
963                  "column": 1
964                },
965                "end": {
966                  "line": 1,
967                  "column": 1
968                }
969              }
970            },
971            "overloads": [],
972            "decorators": [],
973            "loc": {
974              "start": {
975                "line": 1,
976                "column": 1
977              },
978              "end": {
979                "line": 1,
980                "column": 1
981              }
982            }
983          }
984        ],
985        "loc": {
986          "start": {
987            "line": 1,
988            "column": 1
989          },
990          "end": {
991            "line": 1,
992            "column": 1
993          }
994        }
995      },
996      "loc": {
997        "start": {
998          "line": 1,
999          "column": 1
1000        },
1001        "end": {
1002          "line": 1,
1003          "column": 1
1004        }
1005      }
1006    }
1007  ],
1008  "loc": {
1009    "start": {
1010      "line": 1,
1011      "column": 1
1012    },
1013    "end": {
1014      "line": 22,
1015      "column": 1
1016    }
1017  }
1018}
1019