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