1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "A",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7
15            },
16            "end": {
17              "line": 16,
18              "column": 8
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "foo_in_A",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 17,
34                  "column": 5
35                },
36                "end": {
37                  "line": 17,
38                  "column": 13
39                }
40              }
41            },
42            "kind": "method",
43            "accessibility": "public",
44            "static": false,
45            "optional": false,
46            "computed": false,
47            "value": {
48              "type": "FunctionExpression",
49              "function": {
50                "type": "ScriptFunction",
51                "id": {
52                  "type": "Identifier",
53                  "name": "foo_in_A",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 17,
58                      "column": 5
59                    },
60                    "end": {
61                      "line": 17,
62                      "column": 13
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [],
70                "returnType": {
71                  "type": "ETSPrimitiveType",
72                  "loc": {
73                    "start": {
74                      "line": 17,
75                      "column": 18
76                    },
77                    "end": {
78                      "line": 17,
79                      "column": 22
80                    }
81                  }
82                },
83                "body": {
84                  "type": "BlockStatement",
85                  "statements": [],
86                  "loc": {
87                    "start": {
88                      "line": 17,
89                      "column": 23
90                    },
91                    "end": {
92                      "line": 17,
93                      "column": 25
94                    }
95                  }
96                },
97                "loc": {
98                  "start": {
99                    "line": 17,
100                    "column": 13
101                  },
102                  "end": {
103                    "line": 17,
104                    "column": 25
105                  }
106                }
107              },
108              "loc": {
109                "start": {
110                  "line": 17,
111                  "column": 13
112                },
113                "end": {
114                  "line": 17,
115                  "column": 25
116                }
117              }
118            },
119            "overloads": [],
120            "decorators": [],
121            "loc": {
122              "start": {
123                "line": 17,
124                "column": 5
125              },
126              "end": {
127                "line": 17,
128                "column": 25
129              }
130            }
131          },
132          {
133            "type": "MethodDefinition",
134            "key": {
135              "type": "Identifier",
136              "name": "static_foo_in_A",
137              "decorators": [],
138              "loc": {
139                "start": {
140                  "line": 18,
141                  "column": 12
142                },
143                "end": {
144                  "line": 18,
145                  "column": 27
146                }
147              }
148            },
149            "kind": "method",
150            "accessibility": "public",
151            "static": true,
152            "optional": false,
153            "computed": false,
154            "value": {
155              "type": "FunctionExpression",
156              "function": {
157                "type": "ScriptFunction",
158                "id": {
159                  "type": "Identifier",
160                  "name": "static_foo_in_A",
161                  "decorators": [],
162                  "loc": {
163                    "start": {
164                      "line": 18,
165                      "column": 12
166                    },
167                    "end": {
168                      "line": 18,
169                      "column": 27
170                    }
171                  }
172                },
173                "generator": false,
174                "async": false,
175                "expression": false,
176                "params": [],
177                "returnType": {
178                  "type": "ETSPrimitiveType",
179                  "loc": {
180                    "start": {
181                      "line": 18,
182                      "column": 32
183                    },
184                    "end": {
185                      "line": 18,
186                      "column": 36
187                    }
188                  }
189                },
190                "body": {
191                  "type": "BlockStatement",
192                  "statements": [],
193                  "loc": {
194                    "start": {
195                      "line": 18,
196                      "column": 37
197                    },
198                    "end": {
199                      "line": 18,
200                      "column": 39
201                    }
202                  }
203                },
204                "loc": {
205                  "start": {
206                    "line": 18,
207                    "column": 27
208                  },
209                  "end": {
210                    "line": 18,
211                    "column": 39
212                  }
213                }
214              },
215              "loc": {
216                "start": {
217                  "line": 18,
218                  "column": 27
219                },
220                "end": {
221                  "line": 18,
222                  "column": 39
223                }
224              }
225            },
226            "overloads": [],
227            "decorators": [],
228            "loc": {
229              "start": {
230                "line": 18,
231                "column": 5
232              },
233              "end": {
234                "line": 18,
235                "column": 39
236              }
237            }
238          },
239          {
240            "type": "MethodDefinition",
241            "key": {
242              "type": "Identifier",
243              "name": "bar_in_A",
244              "decorators": [],
245              "loc": {
246                "start": {
247                  "line": 20,
248                  "column": 12
249                },
250                "end": {
251                  "line": 20,
252                  "column": 20
253                }
254              }
255            },
256            "kind": "method",
257            "accessibility": "public",
258            "static": true,
259            "optional": false,
260            "computed": false,
261            "value": {
262              "type": "FunctionExpression",
263              "function": {
264                "type": "ScriptFunction",
265                "id": {
266                  "type": "Identifier",
267                  "name": "bar_in_A",
268                  "decorators": [],
269                  "loc": {
270                    "start": {
271                      "line": 20,
272                      "column": 12
273                    },
274                    "end": {
275                      "line": 20,
276                      "column": 20
277                    }
278                  }
279                },
280                "generator": false,
281                "async": false,
282                "expression": false,
283                "params": [
284                  {
285                    "type": "ETSParameterExpression",
286                    "name": {
287                      "type": "Identifier",
288                      "name": "arg",
289                      "typeAnnotation": {
290                        "type": "ETSTypeReference",
291                        "part": {
292                          "type": "ETSTypeReferencePart",
293                          "name": {
294                            "type": "Identifier",
295                            "name": "A",
296                            "decorators": [],
297                            "loc": {
298                              "start": {
299                                "line": 20,
300                                "column": 26
301                              },
302                              "end": {
303                                "line": 20,
304                                "column": 27
305                              }
306                            }
307                          },
308                          "loc": {
309                            "start": {
310                              "line": 20,
311                              "column": 26
312                            },
313                            "end": {
314                              "line": 20,
315                              "column": 28
316                            }
317                          }
318                        },
319                        "loc": {
320                          "start": {
321                            "line": 20,
322                            "column": 26
323                          },
324                          "end": {
325                            "line": 20,
326                            "column": 28
327                          }
328                        }
329                      },
330                      "decorators": [],
331                      "loc": {
332                        "start": {
333                          "line": 20,
334                          "column": 21
335                        },
336                        "end": {
337                          "line": 20,
338                          "column": 28
339                        }
340                      }
341                    },
342                    "loc": {
343                      "start": {
344                        "line": 20,
345                        "column": 21
346                      },
347                      "end": {
348                        "line": 20,
349                        "column": 28
350                      }
351                    }
352                  }
353                ],
354                "returnType": {
355                  "type": "ETSPrimitiveType",
356                  "loc": {
357                    "start": {
358                      "line": 20,
359                      "column": 31
360                    },
361                    "end": {
362                      "line": 20,
363                      "column": 35
364                    }
365                  }
366                },
367                "body": {
368                  "type": "BlockStatement",
369                  "statements": [
370                    {
371                      "type": "ExpressionStatement",
372                      "expression": {
373                        "type": "CallExpression",
374                        "callee": {
375                          "type": "MemberExpression",
376                          "object": {
377                            "type": "Identifier",
378                            "name": "arg",
379                            "decorators": [],
380                            "loc": {
381                              "start": {
382                                "line": 21,
383                                "column": 9
384                              },
385                              "end": {
386                                "line": 21,
387                                "column": 12
388                              }
389                            }
390                          },
391                          "property": {
392                            "type": "Identifier",
393                            "name": "foo_in_A",
394                            "decorators": [],
395                            "loc": {
396                              "start": {
397                                "line": 21,
398                                "column": 13
399                              },
400                              "end": {
401                                "line": 21,
402                                "column": 21
403                              }
404                            }
405                          },
406                          "computed": false,
407                          "optional": false,
408                          "loc": {
409                            "start": {
410                              "line": 21,
411                              "column": 9
412                            },
413                            "end": {
414                              "line": 21,
415                              "column": 21
416                            }
417                          }
418                        },
419                        "arguments": [],
420                        "optional": false,
421                        "loc": {
422                          "start": {
423                            "line": 21,
424                            "column": 9
425                          },
426                          "end": {
427                            "line": 21,
428                            "column": 23
429                          }
430                        }
431                      },
432                      "loc": {
433                        "start": {
434                          "line": 21,
435                          "column": 9
436                        },
437                        "end": {
438                          "line": 21,
439                          "column": 23
440                        }
441                      }
442                    },
443                    {
444                      "type": "ExpressionStatement",
445                      "expression": {
446                        "type": "CallExpression",
447                        "callee": {
448                          "type": "MemberExpression",
449                          "object": {
450                            "type": "Identifier",
451                            "name": "A",
452                            "decorators": [],
453                            "loc": {
454                              "start": {
455                                "line": 22,
456                                "column": 9
457                              },
458                              "end": {
459                                "line": 22,
460                                "column": 10
461                              }
462                            }
463                          },
464                          "property": {
465                            "type": "Identifier",
466                            "name": "static_foo_in_A",
467                            "decorators": [],
468                            "loc": {
469                              "start": {
470                                "line": 22,
471                                "column": 11
472                              },
473                              "end": {
474                                "line": 22,
475                                "column": 26
476                              }
477                            }
478                          },
479                          "computed": false,
480                          "optional": false,
481                          "loc": {
482                            "start": {
483                              "line": 22,
484                              "column": 9
485                            },
486                            "end": {
487                              "line": 22,
488                              "column": 26
489                            }
490                          }
491                        },
492                        "arguments": [],
493                        "optional": false,
494                        "loc": {
495                          "start": {
496                            "line": 22,
497                            "column": 9
498                          },
499                          "end": {
500                            "line": 22,
501                            "column": 28
502                          }
503                        }
504                      },
505                      "loc": {
506                        "start": {
507                          "line": 22,
508                          "column": 9
509                        },
510                        "end": {
511                          "line": 22,
512                          "column": 28
513                        }
514                      }
515                    }
516                  ],
517                  "loc": {
518                    "start": {
519                      "line": 20,
520                      "column": 36
521                    },
522                    "end": {
523                      "line": 23,
524                      "column": 6
525                    }
526                  }
527                },
528                "loc": {
529                  "start": {
530                    "line": 20,
531                    "column": 20
532                  },
533                  "end": {
534                    "line": 23,
535                    "column": 6
536                  }
537                }
538              },
539              "loc": {
540                "start": {
541                  "line": 20,
542                  "column": 20
543                },
544                "end": {
545                  "line": 23,
546                  "column": 6
547                }
548              }
549            },
550            "overloads": [],
551            "decorators": [],
552            "loc": {
553              "start": {
554                "line": 20,
555                "column": 5
556              },
557              "end": {
558                "line": 23,
559                "column": 6
560              }
561            }
562          },
563          {
564            "type": "MethodDefinition",
565            "key": {
566              "type": "Identifier",
567              "name": "constructor",
568              "decorators": [],
569              "loc": {
570                "start": {
571                  "line": 1,
572                  "column": 1
573                },
574                "end": {
575                  "line": 1,
576                  "column": 1
577                }
578              }
579            },
580            "kind": "constructor",
581            "static": false,
582            "optional": false,
583            "computed": false,
584            "value": {
585              "type": "FunctionExpression",
586              "function": {
587                "type": "ScriptFunction",
588                "id": {
589                  "type": "Identifier",
590                  "name": "constructor",
591                  "decorators": [],
592                  "loc": {
593                    "start": {
594                      "line": 1,
595                      "column": 1
596                    },
597                    "end": {
598                      "line": 1,
599                      "column": 1
600                    }
601                  }
602                },
603                "generator": false,
604                "async": false,
605                "expression": false,
606                "params": [],
607                "body": {
608                  "type": "BlockStatement",
609                  "statements": [],
610                  "loc": {
611                    "start": {
612                      "line": 1,
613                      "column": 1
614                    },
615                    "end": {
616                      "line": 1,
617                      "column": 1
618                    }
619                  }
620                },
621                "loc": {
622                  "start": {
623                    "line": 1,
624                    "column": 1
625                  },
626                  "end": {
627                    "line": 1,
628                    "column": 1
629                  }
630                }
631              },
632              "loc": {
633                "start": {
634                  "line": 1,
635                  "column": 1
636                },
637                "end": {
638                  "line": 1,
639                  "column": 1
640                }
641              }
642            },
643            "overloads": [],
644            "decorators": [],
645            "loc": {
646              "start": {
647                "line": 24,
648                "column": 2
649              },
650              "end": {
651                "line": 24,
652                "column": 2
653              }
654            }
655          }
656        ],
657        "loc": {
658          "start": {
659            "line": 16,
660            "column": 9
661          },
662          "end": {
663            "line": 24,
664            "column": 2
665          }
666        }
667      },
668      "loc": {
669        "start": {
670          "line": 16,
671          "column": 1
672        },
673        "end": {
674          "line": 24,
675          "column": 2
676        }
677      }
678    },
679    {
680      "type": "ClassDeclaration",
681      "definition": {
682        "id": {
683          "type": "Identifier",
684          "name": "B",
685          "decorators": [],
686          "loc": {
687            "start": {
688              "line": 26,
689              "column": 7
690            },
691            "end": {
692              "line": 26,
693              "column": 8
694            }
695          }
696        },
697        "superClass": null,
698        "implements": [],
699        "body": [
700          {
701            "type": "MethodDefinition",
702            "key": {
703              "type": "Identifier",
704              "name": "foo_in_B",
705              "decorators": [],
706              "loc": {
707                "start": {
708                  "line": 27,
709                  "column": 5
710                },
711                "end": {
712                  "line": 27,
713                  "column": 13
714                }
715              }
716            },
717            "kind": "method",
718            "accessibility": "public",
719            "static": false,
720            "optional": false,
721            "computed": false,
722            "value": {
723              "type": "FunctionExpression",
724              "function": {
725                "type": "ScriptFunction",
726                "id": {
727                  "type": "Identifier",
728                  "name": "foo_in_B",
729                  "decorators": [],
730                  "loc": {
731                    "start": {
732                      "line": 27,
733                      "column": 5
734                    },
735                    "end": {
736                      "line": 27,
737                      "column": 13
738                    }
739                  }
740                },
741                "generator": false,
742                "async": false,
743                "expression": false,
744                "params": [],
745                "returnType": {
746                  "type": "ETSPrimitiveType",
747                  "loc": {
748                    "start": {
749                      "line": 27,
750                      "column": 18
751                    },
752                    "end": {
753                      "line": 27,
754                      "column": 22
755                    }
756                  }
757                },
758                "body": {
759                  "type": "BlockStatement",
760                  "statements": [],
761                  "loc": {
762                    "start": {
763                      "line": 27,
764                      "column": 23
765                    },
766                    "end": {
767                      "line": 27,
768                      "column": 25
769                    }
770                  }
771                },
772                "loc": {
773                  "start": {
774                    "line": 27,
775                    "column": 13
776                  },
777                  "end": {
778                    "line": 27,
779                    "column": 25
780                  }
781                }
782              },
783              "loc": {
784                "start": {
785                  "line": 27,
786                  "column": 13
787                },
788                "end": {
789                  "line": 27,
790                  "column": 25
791                }
792              }
793            },
794            "overloads": [],
795            "decorators": [],
796            "loc": {
797              "start": {
798                "line": 27,
799                "column": 5
800              },
801              "end": {
802                "line": 27,
803                "column": 25
804              }
805            }
806          },
807          {
808            "type": "MethodDefinition",
809            "key": {
810              "type": "Identifier",
811              "name": "static_foo_in_B",
812              "decorators": [],
813              "loc": {
814                "start": {
815                  "line": 28,
816                  "column": 12
817                },
818                "end": {
819                  "line": 28,
820                  "column": 27
821                }
822              }
823            },
824            "kind": "method",
825            "accessibility": "public",
826            "static": true,
827            "optional": false,
828            "computed": false,
829            "value": {
830              "type": "FunctionExpression",
831              "function": {
832                "type": "ScriptFunction",
833                "id": {
834                  "type": "Identifier",
835                  "name": "static_foo_in_B",
836                  "decorators": [],
837                  "loc": {
838                    "start": {
839                      "line": 28,
840                      "column": 12
841                    },
842                    "end": {
843                      "line": 28,
844                      "column": 27
845                    }
846                  }
847                },
848                "generator": false,
849                "async": false,
850                "expression": false,
851                "params": [],
852                "returnType": {
853                  "type": "ETSPrimitiveType",
854                  "loc": {
855                    "start": {
856                      "line": 28,
857                      "column": 32
858                    },
859                    "end": {
860                      "line": 28,
861                      "column": 36
862                    }
863                  }
864                },
865                "body": {
866                  "type": "BlockStatement",
867                  "statements": [],
868                  "loc": {
869                    "start": {
870                      "line": 28,
871                      "column": 37
872                    },
873                    "end": {
874                      "line": 28,
875                      "column": 39
876                    }
877                  }
878                },
879                "loc": {
880                  "start": {
881                    "line": 28,
882                    "column": 27
883                  },
884                  "end": {
885                    "line": 28,
886                    "column": 39
887                  }
888                }
889              },
890              "loc": {
891                "start": {
892                  "line": 28,
893                  "column": 27
894                },
895                "end": {
896                  "line": 28,
897                  "column": 39
898                }
899              }
900            },
901            "overloads": [],
902            "decorators": [],
903            "loc": {
904              "start": {
905                "line": 28,
906                "column": 5
907              },
908              "end": {
909                "line": 28,
910                "column": 39
911              }
912            }
913          },
914          {
915            "type": "MethodDefinition",
916            "key": {
917              "type": "Identifier",
918              "name": "bar_in_B",
919              "decorators": [],
920              "loc": {
921                "start": {
922                  "line": 30,
923                  "column": 12
924                },
925                "end": {
926                  "line": 30,
927                  "column": 20
928                }
929              }
930            },
931            "kind": "method",
932            "accessibility": "public",
933            "static": true,
934            "optional": false,
935            "computed": false,
936            "value": {
937              "type": "FunctionExpression",
938              "function": {
939                "type": "ScriptFunction",
940                "id": {
941                  "type": "Identifier",
942                  "name": "bar_in_B",
943                  "decorators": [],
944                  "loc": {
945                    "start": {
946                      "line": 30,
947                      "column": 12
948                    },
949                    "end": {
950                      "line": 30,
951                      "column": 20
952                    }
953                  }
954                },
955                "generator": false,
956                "async": false,
957                "expression": false,
958                "params": [
959                  {
960                    "type": "ETSParameterExpression",
961                    "name": {
962                      "type": "Identifier",
963                      "name": "arg",
964                      "typeAnnotation": {
965                        "type": "ETSTypeReference",
966                        "part": {
967                          "type": "ETSTypeReferencePart",
968                          "name": {
969                            "type": "Identifier",
970                            "name": "A",
971                            "decorators": [],
972                            "loc": {
973                              "start": {
974                                "line": 30,
975                                "column": 26
976                              },
977                              "end": {
978                                "line": 30,
979                                "column": 27
980                              }
981                            }
982                          },
983                          "loc": {
984                            "start": {
985                              "line": 30,
986                              "column": 26
987                            },
988                            "end": {
989                              "line": 30,
990                              "column": 28
991                            }
992                          }
993                        },
994                        "loc": {
995                          "start": {
996                            "line": 30,
997                            "column": 26
998                          },
999                          "end": {
1000                            "line": 30,
1001                            "column": 28
1002                          }
1003                        }
1004                      },
1005                      "decorators": [],
1006                      "loc": {
1007                        "start": {
1008                          "line": 30,
1009                          "column": 21
1010                        },
1011                        "end": {
1012                          "line": 30,
1013                          "column": 28
1014                        }
1015                      }
1016                    },
1017                    "loc": {
1018                      "start": {
1019                        "line": 30,
1020                        "column": 21
1021                      },
1022                      "end": {
1023                        "line": 30,
1024                        "column": 28
1025                      }
1026                    }
1027                  }
1028                ],
1029                "returnType": {
1030                  "type": "ETSPrimitiveType",
1031                  "loc": {
1032                    "start": {
1033                      "line": 30,
1034                      "column": 31
1035                    },
1036                    "end": {
1037                      "line": 30,
1038                      "column": 35
1039                    }
1040                  }
1041                },
1042                "body": {
1043                  "type": "BlockStatement",
1044                  "statements": [
1045                    {
1046                      "type": "ExpressionStatement",
1047                      "expression": {
1048                        "type": "CallExpression",
1049                        "callee": {
1050                          "type": "MemberExpression",
1051                          "object": {
1052                            "type": "Identifier",
1053                            "name": "arg",
1054                            "decorators": [],
1055                            "loc": {
1056                              "start": {
1057                                "line": 31,
1058                                "column": 9
1059                              },
1060                              "end": {
1061                                "line": 31,
1062                                "column": 12
1063                              }
1064                            }
1065                          },
1066                          "property": {
1067                            "type": "Identifier",
1068                            "name": "foo_in_A",
1069                            "decorators": [],
1070                            "loc": {
1071                              "start": {
1072                                "line": 31,
1073                                "column": 13
1074                              },
1075                              "end": {
1076                                "line": 31,
1077                                "column": 21
1078                              }
1079                            }
1080                          },
1081                          "computed": false,
1082                          "optional": false,
1083                          "loc": {
1084                            "start": {
1085                              "line": 31,
1086                              "column": 9
1087                            },
1088                            "end": {
1089                              "line": 31,
1090                              "column": 21
1091                            }
1092                          }
1093                        },
1094                        "arguments": [],
1095                        "optional": false,
1096                        "loc": {
1097                          "start": {
1098                            "line": 31,
1099                            "column": 9
1100                          },
1101                          "end": {
1102                            "line": 31,
1103                            "column": 23
1104                          }
1105                        }
1106                      },
1107                      "loc": {
1108                        "start": {
1109                          "line": 31,
1110                          "column": 9
1111                        },
1112                        "end": {
1113                          "line": 31,
1114                          "column": 23
1115                        }
1116                      }
1117                    },
1118                    {
1119                      "type": "ExpressionStatement",
1120                      "expression": {
1121                        "type": "CallExpression",
1122                        "callee": {
1123                          "type": "MemberExpression",
1124                          "object": {
1125                            "type": "Identifier",
1126                            "name": "A",
1127                            "decorators": [],
1128                            "loc": {
1129                              "start": {
1130                                "line": 32,
1131                                "column": 9
1132                              },
1133                              "end": {
1134                                "line": 32,
1135                                "column": 10
1136                              }
1137                            }
1138                          },
1139                          "property": {
1140                            "type": "Identifier",
1141                            "name": "static_foo_in_A",
1142                            "decorators": [],
1143                            "loc": {
1144                              "start": {
1145                                "line": 32,
1146                                "column": 11
1147                              },
1148                              "end": {
1149                                "line": 32,
1150                                "column": 26
1151                              }
1152                            }
1153                          },
1154                          "computed": false,
1155                          "optional": false,
1156                          "loc": {
1157                            "start": {
1158                              "line": 32,
1159                              "column": 9
1160                            },
1161                            "end": {
1162                              "line": 32,
1163                              "column": 26
1164                            }
1165                          }
1166                        },
1167                        "arguments": [],
1168                        "optional": false,
1169                        "loc": {
1170                          "start": {
1171                            "line": 32,
1172                            "column": 9
1173                          },
1174                          "end": {
1175                            "line": 32,
1176                            "column": 28
1177                          }
1178                        }
1179                      },
1180                      "loc": {
1181                        "start": {
1182                          "line": 32,
1183                          "column": 9
1184                        },
1185                        "end": {
1186                          "line": 32,
1187                          "column": 28
1188                        }
1189                      }
1190                    },
1191                    {
1192                      "type": "ExpressionStatement",
1193                      "expression": {
1194                        "type": "CallExpression",
1195                        "callee": {
1196                          "type": "MemberExpression",
1197                          "object": {
1198                            "type": "Identifier",
1199                            "name": "B",
1200                            "decorators": [],
1201                            "loc": {
1202                              "start": {
1203                                "line": 33,
1204                                "column": 9
1205                              },
1206                              "end": {
1207                                "line": 33,
1208                                "column": 10
1209                              }
1210                            }
1211                          },
1212                          "property": {
1213                            "type": "Identifier",
1214                            "name": "static_foo_in_B",
1215                            "decorators": [],
1216                            "loc": {
1217                              "start": {
1218                                "line": 33,
1219                                "column": 11
1220                              },
1221                              "end": {
1222                                "line": 33,
1223                                "column": 26
1224                              }
1225                            }
1226                          },
1227                          "computed": false,
1228                          "optional": false,
1229                          "loc": {
1230                            "start": {
1231                              "line": 33,
1232                              "column": 9
1233                            },
1234                            "end": {
1235                              "line": 33,
1236                              "column": 26
1237                            }
1238                          }
1239                        },
1240                        "arguments": [],
1241                        "optional": false,
1242                        "loc": {
1243                          "start": {
1244                            "line": 33,
1245                            "column": 9
1246                          },
1247                          "end": {
1248                            "line": 33,
1249                            "column": 28
1250                          }
1251                        }
1252                      },
1253                      "loc": {
1254                        "start": {
1255                          "line": 33,
1256                          "column": 9
1257                        },
1258                        "end": {
1259                          "line": 33,
1260                          "column": 29
1261                        }
1262                      }
1263                    },
1264                    {
1265                      "type": "VariableDeclaration",
1266                      "declarations": [
1267                        {
1268                          "type": "VariableDeclarator",
1269                          "id": {
1270                            "type": "Identifier",
1271                            "name": "b_instance",
1272                            "decorators": [],
1273                            "loc": {
1274                              "start": {
1275                                "line": 35,
1276                                "column": 13
1277                              },
1278                              "end": {
1279                                "line": 35,
1280                                "column": 23
1281                              }
1282                            }
1283                          },
1284                          "init": {
1285                            "type": "ETSNewClassInstanceExpression",
1286                            "typeReference": {
1287                              "type": "ETSTypeReference",
1288                              "part": {
1289                                "type": "ETSTypeReferencePart",
1290                                "name": {
1291                                  "type": "Identifier",
1292                                  "name": "B",
1293                                  "decorators": [],
1294                                  "loc": {
1295                                    "start": {
1296                                      "line": 35,
1297                                      "column": 30
1298                                    },
1299                                    "end": {
1300                                      "line": 35,
1301                                      "column": 31
1302                                    }
1303                                  }
1304                                },
1305                                "loc": {
1306                                  "start": {
1307                                    "line": 35,
1308                                    "column": 30
1309                                  },
1310                                  "end": {
1311                                    "line": 35,
1312                                    "column": 32
1313                                  }
1314                                }
1315                              },
1316                              "loc": {
1317                                "start": {
1318                                  "line": 35,
1319                                  "column": 30
1320                                },
1321                                "end": {
1322                                  "line": 35,
1323                                  "column": 32
1324                                }
1325                              }
1326                            },
1327                            "arguments": [],
1328                            "loc": {
1329                              "start": {
1330                                "line": 35,
1331                                "column": 26
1332                              },
1333                              "end": {
1334                                "line": 36,
1335                                "column": 19
1336                              }
1337                            }
1338                          },
1339                          "loc": {
1340                            "start": {
1341                              "line": 35,
1342                              "column": 13
1343                            },
1344                            "end": {
1345                              "line": 36,
1346                              "column": 19
1347                            }
1348                          }
1349                        }
1350                      ],
1351                      "kind": "let",
1352                      "loc": {
1353                        "start": {
1354                          "line": 35,
1355                          "column": 9
1356                        },
1357                        "end": {
1358                          "line": 36,
1359                          "column": 19
1360                        }
1361                      }
1362                    },
1363                    {
1364                      "type": "ExpressionStatement",
1365                      "expression": {
1366                        "type": "CallExpression",
1367                        "callee": {
1368                          "type": "MemberExpression",
1369                          "object": {
1370                            "type": "Identifier",
1371                            "name": "b_instance",
1372                            "decorators": [],
1373                            "loc": {
1374                              "start": {
1375                                "line": 36,
1376                                "column": 9
1377                              },
1378                              "end": {
1379                                "line": 36,
1380                                "column": 19
1381                              }
1382                            }
1383                          },
1384                          "property": {
1385                            "type": "Identifier",
1386                            "name": "foo_in_B",
1387                            "decorators": [],
1388                            "loc": {
1389                              "start": {
1390                                "line": 36,
1391                                "column": 20
1392                              },
1393                              "end": {
1394                                "line": 36,
1395                                "column": 28
1396                              }
1397                            }
1398                          },
1399                          "computed": false,
1400                          "optional": false,
1401                          "loc": {
1402                            "start": {
1403                              "line": 36,
1404                              "column": 9
1405                            },
1406                            "end": {
1407                              "line": 36,
1408                              "column": 28
1409                            }
1410                          }
1411                        },
1412                        "arguments": [],
1413                        "optional": false,
1414                        "loc": {
1415                          "start": {
1416                            "line": 36,
1417                            "column": 9
1418                          },
1419                          "end": {
1420                            "line": 36,
1421                            "column": 30
1422                          }
1423                        }
1424                      },
1425                      "loc": {
1426                        "start": {
1427                          "line": 36,
1428                          "column": 9
1429                        },
1430                        "end": {
1431                          "line": 36,
1432                          "column": 30
1433                        }
1434                      }
1435                    }
1436                  ],
1437                  "loc": {
1438                    "start": {
1439                      "line": 30,
1440                      "column": 36
1441                    },
1442                    "end": {
1443                      "line": 37,
1444                      "column": 6
1445                    }
1446                  }
1447                },
1448                "loc": {
1449                  "start": {
1450                    "line": 30,
1451                    "column": 20
1452                  },
1453                  "end": {
1454                    "line": 37,
1455                    "column": 6
1456                  }
1457                }
1458              },
1459              "loc": {
1460                "start": {
1461                  "line": 30,
1462                  "column": 20
1463                },
1464                "end": {
1465                  "line": 37,
1466                  "column": 6
1467                }
1468              }
1469            },
1470            "overloads": [],
1471            "decorators": [],
1472            "loc": {
1473              "start": {
1474                "line": 30,
1475                "column": 5
1476              },
1477              "end": {
1478                "line": 37,
1479                "column": 6
1480              }
1481            }
1482          },
1483          {
1484            "type": "MethodDefinition",
1485            "key": {
1486              "type": "Identifier",
1487              "name": "constructor",
1488              "decorators": [],
1489              "loc": {
1490                "start": {
1491                  "line": 1,
1492                  "column": 1
1493                },
1494                "end": {
1495                  "line": 1,
1496                  "column": 1
1497                }
1498              }
1499            },
1500            "kind": "constructor",
1501            "static": false,
1502            "optional": false,
1503            "computed": false,
1504            "value": {
1505              "type": "FunctionExpression",
1506              "function": {
1507                "type": "ScriptFunction",
1508                "id": {
1509                  "type": "Identifier",
1510                  "name": "constructor",
1511                  "decorators": [],
1512                  "loc": {
1513                    "start": {
1514                      "line": 1,
1515                      "column": 1
1516                    },
1517                    "end": {
1518                      "line": 1,
1519                      "column": 1
1520                    }
1521                  }
1522                },
1523                "generator": false,
1524                "async": false,
1525                "expression": false,
1526                "params": [],
1527                "body": {
1528                  "type": "BlockStatement",
1529                  "statements": [],
1530                  "loc": {
1531                    "start": {
1532                      "line": 1,
1533                      "column": 1
1534                    },
1535                    "end": {
1536                      "line": 1,
1537                      "column": 1
1538                    }
1539                  }
1540                },
1541                "loc": {
1542                  "start": {
1543                    "line": 1,
1544                    "column": 1
1545                  },
1546                  "end": {
1547                    "line": 1,
1548                    "column": 1
1549                  }
1550                }
1551              },
1552              "loc": {
1553                "start": {
1554                  "line": 1,
1555                  "column": 1
1556                },
1557                "end": {
1558                  "line": 1,
1559                  "column": 1
1560                }
1561              }
1562            },
1563            "overloads": [],
1564            "decorators": [],
1565            "loc": {
1566              "start": {
1567                "line": 38,
1568                "column": 2
1569              },
1570              "end": {
1571                "line": 38,
1572                "column": 2
1573              }
1574            }
1575          }
1576        ],
1577        "loc": {
1578          "start": {
1579            "line": 26,
1580            "column": 9
1581          },
1582          "end": {
1583            "line": 38,
1584            "column": 2
1585          }
1586        }
1587      },
1588      "loc": {
1589        "start": {
1590          "line": 26,
1591          "column": 1
1592        },
1593        "end": {
1594          "line": 38,
1595          "column": 2
1596        }
1597      }
1598    },
1599    {
1600      "type": "ClassDeclaration",
1601      "definition": {
1602        "id": {
1603          "type": "Identifier",
1604          "name": "C",
1605          "decorators": [],
1606          "loc": {
1607            "start": {
1608              "line": 40,
1609              "column": 7
1610            },
1611            "end": {
1612              "line": 40,
1613              "column": 8
1614            }
1615          }
1616        },
1617        "superClass": {
1618          "type": "ETSTypeReference",
1619          "part": {
1620            "type": "ETSTypeReferencePart",
1621            "name": {
1622              "type": "Identifier",
1623              "name": "A",
1624              "decorators": [],
1625              "loc": {
1626                "start": {
1627                  "line": 40,
1628                  "column": 17
1629                },
1630                "end": {
1631                  "line": 40,
1632                  "column": 18
1633                }
1634              }
1635            },
1636            "loc": {
1637              "start": {
1638                "line": 40,
1639                "column": 17
1640              },
1641              "end": {
1642                "line": 40,
1643                "column": 20
1644              }
1645            }
1646          },
1647          "loc": {
1648            "start": {
1649              "line": 40,
1650              "column": 17
1651            },
1652            "end": {
1653              "line": 40,
1654              "column": 20
1655            }
1656          }
1657        },
1658        "implements": [],
1659        "body": [
1660          {
1661            "type": "MethodDefinition",
1662            "key": {
1663              "type": "Identifier",
1664              "name": "foo_in_C",
1665              "decorators": [],
1666              "loc": {
1667                "start": {
1668                  "line": 41,
1669                  "column": 5
1670                },
1671                "end": {
1672                  "line": 41,
1673                  "column": 13
1674                }
1675              }
1676            },
1677            "kind": "method",
1678            "accessibility": "public",
1679            "static": false,
1680            "optional": false,
1681            "computed": false,
1682            "value": {
1683              "type": "FunctionExpression",
1684              "function": {
1685                "type": "ScriptFunction",
1686                "id": {
1687                  "type": "Identifier",
1688                  "name": "foo_in_C",
1689                  "decorators": [],
1690                  "loc": {
1691                    "start": {
1692                      "line": 41,
1693                      "column": 5
1694                    },
1695                    "end": {
1696                      "line": 41,
1697                      "column": 13
1698                    }
1699                  }
1700                },
1701                "generator": false,
1702                "async": false,
1703                "expression": false,
1704                "params": [],
1705                "returnType": {
1706                  "type": "ETSPrimitiveType",
1707                  "loc": {
1708                    "start": {
1709                      "line": 41,
1710                      "column": 18
1711                    },
1712                    "end": {
1713                      "line": 41,
1714                      "column": 22
1715                    }
1716                  }
1717                },
1718                "body": {
1719                  "type": "BlockStatement",
1720                  "statements": [],
1721                  "loc": {
1722                    "start": {
1723                      "line": 41,
1724                      "column": 23
1725                    },
1726                    "end": {
1727                      "line": 41,
1728                      "column": 25
1729                    }
1730                  }
1731                },
1732                "loc": {
1733                  "start": {
1734                    "line": 41,
1735                    "column": 13
1736                  },
1737                  "end": {
1738                    "line": 41,
1739                    "column": 25
1740                  }
1741                }
1742              },
1743              "loc": {
1744                "start": {
1745                  "line": 41,
1746                  "column": 13
1747                },
1748                "end": {
1749                  "line": 41,
1750                  "column": 25
1751                }
1752              }
1753            },
1754            "overloads": [],
1755            "decorators": [],
1756            "loc": {
1757              "start": {
1758                "line": 41,
1759                "column": 5
1760              },
1761              "end": {
1762                "line": 41,
1763                "column": 25
1764              }
1765            }
1766          },
1767          {
1768            "type": "MethodDefinition",
1769            "key": {
1770              "type": "Identifier",
1771              "name": "static_foo_in_C",
1772              "decorators": [],
1773              "loc": {
1774                "start": {
1775                  "line": 42,
1776                  "column": 12
1777                },
1778                "end": {
1779                  "line": 42,
1780                  "column": 27
1781                }
1782              }
1783            },
1784            "kind": "method",
1785            "accessibility": "public",
1786            "static": true,
1787            "optional": false,
1788            "computed": false,
1789            "value": {
1790              "type": "FunctionExpression",
1791              "function": {
1792                "type": "ScriptFunction",
1793                "id": {
1794                  "type": "Identifier",
1795                  "name": "static_foo_in_C",
1796                  "decorators": [],
1797                  "loc": {
1798                    "start": {
1799                      "line": 42,
1800                      "column": 12
1801                    },
1802                    "end": {
1803                      "line": 42,
1804                      "column": 27
1805                    }
1806                  }
1807                },
1808                "generator": false,
1809                "async": false,
1810                "expression": false,
1811                "params": [],
1812                "returnType": {
1813                  "type": "ETSPrimitiveType",
1814                  "loc": {
1815                    "start": {
1816                      "line": 42,
1817                      "column": 32
1818                    },
1819                    "end": {
1820                      "line": 42,
1821                      "column": 36
1822                    }
1823                  }
1824                },
1825                "body": {
1826                  "type": "BlockStatement",
1827                  "statements": [],
1828                  "loc": {
1829                    "start": {
1830                      "line": 42,
1831                      "column": 37
1832                    },
1833                    "end": {
1834                      "line": 42,
1835                      "column": 39
1836                    }
1837                  }
1838                },
1839                "loc": {
1840                  "start": {
1841                    "line": 42,
1842                    "column": 27
1843                  },
1844                  "end": {
1845                    "line": 42,
1846                    "column": 39
1847                  }
1848                }
1849              },
1850              "loc": {
1851                "start": {
1852                  "line": 42,
1853                  "column": 27
1854                },
1855                "end": {
1856                  "line": 42,
1857                  "column": 39
1858                }
1859              }
1860            },
1861            "overloads": [],
1862            "decorators": [],
1863            "loc": {
1864              "start": {
1865                "line": 42,
1866                "column": 5
1867              },
1868              "end": {
1869                "line": 42,
1870                "column": 39
1871              }
1872            }
1873          },
1874          {
1875            "type": "MethodDefinition",
1876            "key": {
1877              "type": "Identifier",
1878              "name": "bar_in_C",
1879              "decorators": [],
1880              "loc": {
1881                "start": {
1882                  "line": 44,
1883                  "column": 12
1884                },
1885                "end": {
1886                  "line": 44,
1887                  "column": 20
1888                }
1889              }
1890            },
1891            "kind": "method",
1892            "accessibility": "public",
1893            "static": true,
1894            "optional": false,
1895            "computed": false,
1896            "value": {
1897              "type": "FunctionExpression",
1898              "function": {
1899                "type": "ScriptFunction",
1900                "id": {
1901                  "type": "Identifier",
1902                  "name": "bar_in_C",
1903                  "decorators": [],
1904                  "loc": {
1905                    "start": {
1906                      "line": 44,
1907                      "column": 12
1908                    },
1909                    "end": {
1910                      "line": 44,
1911                      "column": 20
1912                    }
1913                  }
1914                },
1915                "generator": false,
1916                "async": false,
1917                "expression": false,
1918                "params": [
1919                  {
1920                    "type": "ETSParameterExpression",
1921                    "name": {
1922                      "type": "Identifier",
1923                      "name": "arg",
1924                      "typeAnnotation": {
1925                        "type": "ETSTypeReference",
1926                        "part": {
1927                          "type": "ETSTypeReferencePart",
1928                          "name": {
1929                            "type": "Identifier",
1930                            "name": "A",
1931                            "decorators": [],
1932                            "loc": {
1933                              "start": {
1934                                "line": 44,
1935                                "column": 26
1936                              },
1937                              "end": {
1938                                "line": 44,
1939                                "column": 27
1940                              }
1941                            }
1942                          },
1943                          "loc": {
1944                            "start": {
1945                              "line": 44,
1946                              "column": 26
1947                            },
1948                            "end": {
1949                              "line": 44,
1950                              "column": 28
1951                            }
1952                          }
1953                        },
1954                        "loc": {
1955                          "start": {
1956                            "line": 44,
1957                            "column": 26
1958                          },
1959                          "end": {
1960                            "line": 44,
1961                            "column": 28
1962                          }
1963                        }
1964                      },
1965                      "decorators": [],
1966                      "loc": {
1967                        "start": {
1968                          "line": 44,
1969                          "column": 21
1970                        },
1971                        "end": {
1972                          "line": 44,
1973                          "column": 28
1974                        }
1975                      }
1976                    },
1977                    "loc": {
1978                      "start": {
1979                        "line": 44,
1980                        "column": 21
1981                      },
1982                      "end": {
1983                        "line": 44,
1984                        "column": 28
1985                      }
1986                    }
1987                  }
1988                ],
1989                "returnType": {
1990                  "type": "ETSPrimitiveType",
1991                  "loc": {
1992                    "start": {
1993                      "line": 44,
1994                      "column": 31
1995                    },
1996                    "end": {
1997                      "line": 44,
1998                      "column": 35
1999                    }
2000                  }
2001                },
2002                "body": {
2003                  "type": "BlockStatement",
2004                  "statements": [
2005                    {
2006                      "type": "ExpressionStatement",
2007                      "expression": {
2008                        "type": "CallExpression",
2009                        "callee": {
2010                          "type": "MemberExpression",
2011                          "object": {
2012                            "type": "Identifier",
2013                            "name": "arg",
2014                            "decorators": [],
2015                            "loc": {
2016                              "start": {
2017                                "line": 45,
2018                                "column": 9
2019                              },
2020                              "end": {
2021                                "line": 45,
2022                                "column": 12
2023                              }
2024                            }
2025                          },
2026                          "property": {
2027                            "type": "Identifier",
2028                            "name": "foo_in_A",
2029                            "decorators": [],
2030                            "loc": {
2031                              "start": {
2032                                "line": 45,
2033                                "column": 13
2034                              },
2035                              "end": {
2036                                "line": 45,
2037                                "column": 21
2038                              }
2039                            }
2040                          },
2041                          "computed": false,
2042                          "optional": false,
2043                          "loc": {
2044                            "start": {
2045                              "line": 45,
2046                              "column": 9
2047                            },
2048                            "end": {
2049                              "line": 45,
2050                              "column": 21
2051                            }
2052                          }
2053                        },
2054                        "arguments": [],
2055                        "optional": false,
2056                        "loc": {
2057                          "start": {
2058                            "line": 45,
2059                            "column": 9
2060                          },
2061                          "end": {
2062                            "line": 45,
2063                            "column": 23
2064                          }
2065                        }
2066                      },
2067                      "loc": {
2068                        "start": {
2069                          "line": 45,
2070                          "column": 9
2071                        },
2072                        "end": {
2073                          "line": 45,
2074                          "column": 23
2075                        }
2076                      }
2077                    },
2078                    {
2079                      "type": "ExpressionStatement",
2080                      "expression": {
2081                        "type": "CallExpression",
2082                        "callee": {
2083                          "type": "MemberExpression",
2084                          "object": {
2085                            "type": "Identifier",
2086                            "name": "A",
2087                            "decorators": [],
2088                            "loc": {
2089                              "start": {
2090                                "line": 46,
2091                                "column": 9
2092                              },
2093                              "end": {
2094                                "line": 46,
2095                                "column": 10
2096                              }
2097                            }
2098                          },
2099                          "property": {
2100                            "type": "Identifier",
2101                            "name": "static_foo_in_A",
2102                            "decorators": [],
2103                            "loc": {
2104                              "start": {
2105                                "line": 46,
2106                                "column": 11
2107                              },
2108                              "end": {
2109                                "line": 46,
2110                                "column": 26
2111                              }
2112                            }
2113                          },
2114                          "computed": false,
2115                          "optional": false,
2116                          "loc": {
2117                            "start": {
2118                              "line": 46,
2119                              "column": 9
2120                            },
2121                            "end": {
2122                              "line": 46,
2123                              "column": 26
2124                            }
2125                          }
2126                        },
2127                        "arguments": [],
2128                        "optional": false,
2129                        "loc": {
2130                          "start": {
2131                            "line": 46,
2132                            "column": 9
2133                          },
2134                          "end": {
2135                            "line": 46,
2136                            "column": 28
2137                          }
2138                        }
2139                      },
2140                      "loc": {
2141                        "start": {
2142                          "line": 46,
2143                          "column": 9
2144                        },
2145                        "end": {
2146                          "line": 46,
2147                          "column": 28
2148                        }
2149                      }
2150                    },
2151                    {
2152                      "type": "ExpressionStatement",
2153                      "expression": {
2154                        "type": "CallExpression",
2155                        "callee": {
2156                          "type": "MemberExpression",
2157                          "object": {
2158                            "type": "Identifier",
2159                            "name": "C",
2160                            "decorators": [],
2161                            "loc": {
2162                              "start": {
2163                                "line": 47,
2164                                "column": 9
2165                              },
2166                              "end": {
2167                                "line": 47,
2168                                "column": 10
2169                              }
2170                            }
2171                          },
2172                          "property": {
2173                            "type": "Identifier",
2174                            "name": "static_foo_in_C",
2175                            "decorators": [],
2176                            "loc": {
2177                              "start": {
2178                                "line": 47,
2179                                "column": 11
2180                              },
2181                              "end": {
2182                                "line": 47,
2183                                "column": 26
2184                              }
2185                            }
2186                          },
2187                          "computed": false,
2188                          "optional": false,
2189                          "loc": {
2190                            "start": {
2191                              "line": 47,
2192                              "column": 9
2193                            },
2194                            "end": {
2195                              "line": 47,
2196                              "column": 26
2197                            }
2198                          }
2199                        },
2200                        "arguments": [],
2201                        "optional": false,
2202                        "loc": {
2203                          "start": {
2204                            "line": 47,
2205                            "column": 9
2206                          },
2207                          "end": {
2208                            "line": 47,
2209                            "column": 28
2210                          }
2211                        }
2212                      },
2213                      "loc": {
2214                        "start": {
2215                          "line": 47,
2216                          "column": 9
2217                        },
2218                        "end": {
2219                          "line": 47,
2220                          "column": 29
2221                        }
2222                      }
2223                    },
2224                    {
2225                      "type": "VariableDeclaration",
2226                      "declarations": [
2227                        {
2228                          "type": "VariableDeclarator",
2229                          "id": {
2230                            "type": "Identifier",
2231                            "name": "c_instance",
2232                            "decorators": [],
2233                            "loc": {
2234                              "start": {
2235                                "line": 49,
2236                                "column": 13
2237                              },
2238                              "end": {
2239                                "line": 49,
2240                                "column": 23
2241                              }
2242                            }
2243                          },
2244                          "init": {
2245                            "type": "ETSNewClassInstanceExpression",
2246                            "typeReference": {
2247                              "type": "ETSTypeReference",
2248                              "part": {
2249                                "type": "ETSTypeReferencePart",
2250                                "name": {
2251                                  "type": "Identifier",
2252                                  "name": "C",
2253                                  "decorators": [],
2254                                  "loc": {
2255                                    "start": {
2256                                      "line": 49,
2257                                      "column": 30
2258                                    },
2259                                    "end": {
2260                                      "line": 49,
2261                                      "column": 31
2262                                    }
2263                                  }
2264                                },
2265                                "loc": {
2266                                  "start": {
2267                                    "line": 49,
2268                                    "column": 30
2269                                  },
2270                                  "end": {
2271                                    "line": 49,
2272                                    "column": 32
2273                                  }
2274                                }
2275                              },
2276                              "loc": {
2277                                "start": {
2278                                  "line": 49,
2279                                  "column": 30
2280                                },
2281                                "end": {
2282                                  "line": 49,
2283                                  "column": 32
2284                                }
2285                              }
2286                            },
2287                            "arguments": [],
2288                            "loc": {
2289                              "start": {
2290                                "line": 49,
2291                                "column": 26
2292                              },
2293                              "end": {
2294                                "line": 50,
2295                                "column": 19
2296                              }
2297                            }
2298                          },
2299                          "loc": {
2300                            "start": {
2301                              "line": 49,
2302                              "column": 13
2303                            },
2304                            "end": {
2305                              "line": 50,
2306                              "column": 19
2307                            }
2308                          }
2309                        }
2310                      ],
2311                      "kind": "let",
2312                      "loc": {
2313                        "start": {
2314                          "line": 49,
2315                          "column": 9
2316                        },
2317                        "end": {
2318                          "line": 50,
2319                          "column": 19
2320                        }
2321                      }
2322                    },
2323                    {
2324                      "type": "ExpressionStatement",
2325                      "expression": {
2326                        "type": "CallExpression",
2327                        "callee": {
2328                          "type": "MemberExpression",
2329                          "object": {
2330                            "type": "Identifier",
2331                            "name": "c_instance",
2332                            "decorators": [],
2333                            "loc": {
2334                              "start": {
2335                                "line": 50,
2336                                "column": 9
2337                              },
2338                              "end": {
2339                                "line": 50,
2340                                "column": 19
2341                              }
2342                            }
2343                          },
2344                          "property": {
2345                            "type": "Identifier",
2346                            "name": "foo_in_C",
2347                            "decorators": [],
2348                            "loc": {
2349                              "start": {
2350                                "line": 50,
2351                                "column": 20
2352                              },
2353                              "end": {
2354                                "line": 50,
2355                                "column": 28
2356                              }
2357                            }
2358                          },
2359                          "computed": false,
2360                          "optional": false,
2361                          "loc": {
2362                            "start": {
2363                              "line": 50,
2364                              "column": 9
2365                            },
2366                            "end": {
2367                              "line": 50,
2368                              "column": 28
2369                            }
2370                          }
2371                        },
2372                        "arguments": [],
2373                        "optional": false,
2374                        "loc": {
2375                          "start": {
2376                            "line": 50,
2377                            "column": 9
2378                          },
2379                          "end": {
2380                            "line": 50,
2381                            "column": 30
2382                          }
2383                        }
2384                      },
2385                      "loc": {
2386                        "start": {
2387                          "line": 50,
2388                          "column": 9
2389                        },
2390                        "end": {
2391                          "line": 50,
2392                          "column": 30
2393                        }
2394                      }
2395                    },
2396                    {
2397                      "type": "ExpressionStatement",
2398                      "expression": {
2399                        "type": "CallExpression",
2400                        "callee": {
2401                          "type": "MemberExpression",
2402                          "object": {
2403                            "type": "Identifier",
2404                            "name": "c_instance",
2405                            "decorators": [],
2406                            "loc": {
2407                              "start": {
2408                                "line": 51,
2409                                "column": 9
2410                              },
2411                              "end": {
2412                                "line": 51,
2413                                "column": 19
2414                              }
2415                            }
2416                          },
2417                          "property": {
2418                            "type": "Identifier",
2419                            "name": "foo_in_A",
2420                            "decorators": [],
2421                            "loc": {
2422                              "start": {
2423                                "line": 51,
2424                                "column": 20
2425                              },
2426                              "end": {
2427                                "line": 51,
2428                                "column": 28
2429                              }
2430                            }
2431                          },
2432                          "computed": false,
2433                          "optional": false,
2434                          "loc": {
2435                            "start": {
2436                              "line": 51,
2437                              "column": 9
2438                            },
2439                            "end": {
2440                              "line": 51,
2441                              "column": 28
2442                            }
2443                          }
2444                        },
2445                        "arguments": [],
2446                        "optional": false,
2447                        "loc": {
2448                          "start": {
2449                            "line": 51,
2450                            "column": 9
2451                          },
2452                          "end": {
2453                            "line": 51,
2454                            "column": 30
2455                          }
2456                        }
2457                      },
2458                      "loc": {
2459                        "start": {
2460                          "line": 51,
2461                          "column": 9
2462                        },
2463                        "end": {
2464                          "line": 51,
2465                          "column": 30
2466                        }
2467                      }
2468                    }
2469                  ],
2470                  "loc": {
2471                    "start": {
2472                      "line": 44,
2473                      "column": 36
2474                    },
2475                    "end": {
2476                      "line": 52,
2477                      "column": 6
2478                    }
2479                  }
2480                },
2481                "loc": {
2482                  "start": {
2483                    "line": 44,
2484                    "column": 20
2485                  },
2486                  "end": {
2487                    "line": 52,
2488                    "column": 6
2489                  }
2490                }
2491              },
2492              "loc": {
2493                "start": {
2494                  "line": 44,
2495                  "column": 20
2496                },
2497                "end": {
2498                  "line": 52,
2499                  "column": 6
2500                }
2501              }
2502            },
2503            "overloads": [],
2504            "decorators": [],
2505            "loc": {
2506              "start": {
2507                "line": 44,
2508                "column": 5
2509              },
2510              "end": {
2511                "line": 52,
2512                "column": 6
2513              }
2514            }
2515          },
2516          {
2517            "type": "MethodDefinition",
2518            "key": {
2519              "type": "Identifier",
2520              "name": "constructor",
2521              "decorators": [],
2522              "loc": {
2523                "start": {
2524                  "line": 1,
2525                  "column": 1
2526                },
2527                "end": {
2528                  "line": 1,
2529                  "column": 1
2530                }
2531              }
2532            },
2533            "kind": "constructor",
2534            "static": false,
2535            "optional": false,
2536            "computed": false,
2537            "value": {
2538              "type": "FunctionExpression",
2539              "function": {
2540                "type": "ScriptFunction",
2541                "id": {
2542                  "type": "Identifier",
2543                  "name": "constructor",
2544                  "decorators": [],
2545                  "loc": {
2546                    "start": {
2547                      "line": 1,
2548                      "column": 1
2549                    },
2550                    "end": {
2551                      "line": 1,
2552                      "column": 1
2553                    }
2554                  }
2555                },
2556                "generator": false,
2557                "async": false,
2558                "expression": false,
2559                "params": [],
2560                "body": {
2561                  "type": "BlockStatement",
2562                  "statements": [],
2563                  "loc": {
2564                    "start": {
2565                      "line": 1,
2566                      "column": 1
2567                    },
2568                    "end": {
2569                      "line": 1,
2570                      "column": 1
2571                    }
2572                  }
2573                },
2574                "loc": {
2575                  "start": {
2576                    "line": 1,
2577                    "column": 1
2578                  },
2579                  "end": {
2580                    "line": 1,
2581                    "column": 1
2582                  }
2583                }
2584              },
2585              "loc": {
2586                "start": {
2587                  "line": 1,
2588                  "column": 1
2589                },
2590                "end": {
2591                  "line": 1,
2592                  "column": 1
2593                }
2594              }
2595            },
2596            "overloads": [],
2597            "decorators": [],
2598            "loc": {
2599              "start": {
2600                "line": 53,
2601                "column": 2
2602              },
2603              "end": {
2604                "line": 53,
2605                "column": 2
2606              }
2607            }
2608          }
2609        ],
2610        "loc": {
2611          "start": {
2612            "line": 40,
2613            "column": 19
2614          },
2615          "end": {
2616            "line": 53,
2617            "column": 2
2618          }
2619        }
2620      },
2621      "loc": {
2622        "start": {
2623          "line": 40,
2624          "column": 1
2625        },
2626        "end": {
2627          "line": 53,
2628          "column": 2
2629        }
2630      }
2631    },
2632    {
2633      "type": "ClassDeclaration",
2634      "definition": {
2635        "id": {
2636          "type": "Identifier",
2637          "name": "ETSGLOBAL",
2638          "decorators": [],
2639          "loc": {
2640            "start": {
2641              "line": 1,
2642              "column": 1
2643            },
2644            "end": {
2645              "line": 1,
2646              "column": 1
2647            }
2648          }
2649        },
2650        "superClass": null,
2651        "implements": [],
2652        "body": [
2653          {
2654            "type": "MethodDefinition",
2655            "key": {
2656              "type": "Identifier",
2657              "name": "_$init$_",
2658              "decorators": [],
2659              "loc": {
2660                "start": {
2661                  "line": 1,
2662                  "column": 1
2663                },
2664                "end": {
2665                  "line": 1,
2666                  "column": 1
2667                }
2668              }
2669            },
2670            "kind": "method",
2671            "accessibility": "public",
2672            "static": true,
2673            "optional": false,
2674            "computed": false,
2675            "value": {
2676              "type": "FunctionExpression",
2677              "function": {
2678                "type": "ScriptFunction",
2679                "id": {
2680                  "type": "Identifier",
2681                  "name": "_$init$_",
2682                  "decorators": [],
2683                  "loc": {
2684                    "start": {
2685                      "line": 1,
2686                      "column": 1
2687                    },
2688                    "end": {
2689                      "line": 1,
2690                      "column": 1
2691                    }
2692                  }
2693                },
2694                "generator": false,
2695                "async": false,
2696                "expression": false,
2697                "params": [],
2698                "body": {
2699                  "type": "BlockStatement",
2700                  "statements": [],
2701                  "loc": {
2702                    "start": {
2703                      "line": 1,
2704                      "column": 1
2705                    },
2706                    "end": {
2707                      "line": 1,
2708                      "column": 1
2709                    }
2710                  }
2711                },
2712                "loc": {
2713                  "start": {
2714                    "line": 1,
2715                    "column": 1
2716                  },
2717                  "end": {
2718                    "line": 1,
2719                    "column": 1
2720                  }
2721                }
2722              },
2723              "loc": {
2724                "start": {
2725                  "line": 1,
2726                  "column": 1
2727                },
2728                "end": {
2729                  "line": 1,
2730                  "column": 1
2731                }
2732              }
2733            },
2734            "overloads": [],
2735            "decorators": [],
2736            "loc": {
2737              "start": {
2738                "line": 1,
2739                "column": 1
2740              },
2741              "end": {
2742                "line": 1,
2743                "column": 1
2744              }
2745            }
2746          }
2747        ],
2748        "loc": {
2749          "start": {
2750            "line": 1,
2751            "column": 1
2752          },
2753          "end": {
2754            "line": 1,
2755            "column": 1
2756          }
2757        }
2758      },
2759      "loc": {
2760        "start": {
2761          "line": 1,
2762          "column": 1
2763        },
2764        "end": {
2765          "line": 1,
2766          "column": 1
2767        }
2768      }
2769    }
2770  ],
2771  "loc": {
2772    "start": {
2773      "line": 1,
2774      "column": 1
2775    },
2776    "end": {
2777      "line": 54,
2778      "column": 1
2779    }
2780  }
2781}
2782