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