1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "Base",
10          "loc": {
11            "start": {
12              "line": 17,
13              "column": 7
14            },
15            "end": {
16              "line": 17,
17              "column": 11
18            }
19          }
20        },
21        "superClass": null,
22        "implements": [],
23        "constructor": {
24          "type": "MethodDefinition",
25          "key": {
26            "type": "Identifier",
27            "name": "constructor",
28            "loc": {
29              "start": {
30                "line": 1,
31                "column": 1
32              },
33              "end": {
34                "line": 1,
35                "column": 1
36              }
37            }
38          },
39          "kind": "constructor",
40          "static": false,
41          "optional": false,
42          "computed": false,
43          "value": {
44            "type": "FunctionExpression",
45            "function": {
46              "type": "ScriptFunction",
47              "id": null,
48              "generator": false,
49              "async": false,
50              "expression": false,
51              "params": [],
52              "body": {
53                "type": "BlockStatement",
54                "statements": [],
55                "loc": {
56                  "start": {
57                    "line": 1,
58                    "column": 1
59                  },
60                  "end": {
61                    "line": 1,
62                    "column": 1
63                  }
64                }
65              },
66              "loc": {
67                "start": {
68                  "line": 1,
69                  "column": 1
70                },
71                "end": {
72                  "line": 1,
73                  "column": 1
74                }
75              }
76            },
77            "loc": {
78              "start": {
79                "line": 1,
80                "column": 1
81              },
82              "end": {
83                "line": 1,
84                "column": 1
85              }
86            }
87          },
88          "overloads": [],
89          "decorators": [],
90          "annotations": [],
91          "loc": {
92            "start": {
93              "line": 17,
94              "column": 1
95            },
96            "end": {
97              "line": 20,
98              "column": 2
99            }
100          }
101        },
102        "body": [
103          {
104            "type": "ClassProperty",
105            "key": {
106              "type": "Identifier",
107              "name": "prop",
108              "loc": {
109                "start": {
110                  "line": 18,
111                  "column": 12
112                },
113                "end": {
114                  "line": 18,
115                  "column": 16
116                }
117              }
118            },
119            "value": {
120              "type": "NumberLiteral",
121              "value": 100,
122              "loc": {
123                "start": {
124                  "line": 18,
125                  "column": 19
126                },
127                "end": {
128                  "line": 18,
129                  "column": 22
130                }
131              }
132            },
133            "static": true,
134            "readonly": false,
135            "declare": false,
136            "optional": false,
137            "computed": false,
138            "decorators": [],
139            "loc": {
140              "start": {
141                "line": 18,
142                "column": 5
143              },
144              "end": {
145                "line": 18,
146                "column": 22
147              }
148            }
149          },
150          {
151            "type": "MethodDefinition",
152            "key": {
153              "type": "Identifier",
154              "name": "test2",
155              "loc": {
156                "start": {
157                  "line": 19,
158                  "column": 12
159                },
160                "end": {
161                  "line": 19,
162                  "column": 17
163                }
164              }
165            },
166            "kind": "method",
167            "static": true,
168            "optional": false,
169            "computed": false,
170            "value": {
171              "type": "FunctionExpression",
172              "function": {
173                "type": "ScriptFunction",
174                "id": null,
175                "generator": false,
176                "async": false,
177                "expression": false,
178                "params": [],
179                "body": {
180                  "type": "BlockStatement",
181                  "statements": [],
182                  "loc": {
183                    "start": {
184                      "line": 19,
185                      "column": 20
186                    },
187                    "end": {
188                      "line": 19,
189                      "column": 23
190                    }
191                  }
192                },
193                "loc": {
194                  "start": {
195                    "line": 19,
196                    "column": 17
197                  },
198                  "end": {
199                    "line": 19,
200                    "column": 23
201                  }
202                }
203              },
204              "loc": {
205                "start": {
206                  "line": 19,
207                  "column": 17
208                },
209                "end": {
210                  "line": 19,
211                  "column": 23
212                }
213              }
214            },
215            "overloads": [],
216            "decorators": [],
217            "annotations": [],
218            "loc": {
219              "start": {
220                "line": 19,
221                "column": 5
222              },
223              "end": {
224                "line": 19,
225                "column": 23
226              }
227            }
228          }
229        ],
230        "indexSignatures": [],
231        "loc": {
232          "start": {
233            "line": 17,
234            "column": 12
235          },
236          "end": {
237            "line": 20,
238            "column": 2
239          }
240        }
241      },
242      "decorators": [],
243      "isAnnotationDeclaration": false,
244      "loc": {
245        "start": {
246          "line": 17,
247          "column": 1
248        },
249        "end": {
250          "line": 20,
251          "column": 2
252        }
253      }
254    },
255    {
256      "type": "ClassDeclaration",
257      "definition": {
258        "id": {
259          "type": "Identifier",
260          "name": "C",
261          "loc": {
262            "start": {
263              "line": 22,
264              "column": 7
265            },
266            "end": {
267              "line": 22,
268              "column": 8
269            }
270          }
271        },
272        "superClass": {
273          "type": "Identifier",
274          "name": "Base",
275          "loc": {
276            "start": {
277              "line": 22,
278              "column": 17
279            },
280            "end": {
281              "line": 22,
282              "column": 21
283            }
284          }
285        },
286        "implements": [],
287        "constructor": {
288          "type": "MethodDefinition",
289          "key": {
290            "type": "Identifier",
291            "name": "constructor",
292            "loc": {
293              "start": {
294                "line": 1,
295                "column": 1
296              },
297              "end": {
298                "line": 1,
299                "column": 1
300              }
301            }
302          },
303          "kind": "constructor",
304          "static": false,
305          "optional": false,
306          "computed": false,
307          "value": {
308            "type": "FunctionExpression",
309            "function": {
310              "type": "ScriptFunction",
311              "id": null,
312              "generator": false,
313              "async": false,
314              "expression": false,
315              "params": [
316                {
317                  "type": "RestElement",
318                  "argument": {
319                    "type": "Identifier",
320                    "name": "args",
321                    "loc": {
322                      "start": {
323                        "line": 1,
324                        "column": 1
325                      },
326                      "end": {
327                        "line": 1,
328                        "column": 1
329                      }
330                    }
331                  },
332                  "loc": {
333                    "start": {
334                      "line": 1,
335                      "column": 1
336                    },
337                    "end": {
338                      "line": 1,
339                      "column": 1
340                    }
341                  }
342                }
343              ],
344              "body": {
345                "type": "BlockStatement",
346                "statements": [
347                  {
348                    "type": "ExpressionStatement",
349                    "expression": {
350                      "type": "CallExpression",
351                      "callee": {
352                        "type": "Super",
353                        "loc": {
354                          "start": {
355                            "line": 1,
356                            "column": 1
357                          },
358                          "end": {
359                            "line": 1,
360                            "column": 1
361                          }
362                        }
363                      },
364                      "arguments": [
365                        {
366                          "type": "SpreadElement",
367                          "argument": {
368                            "type": "Identifier",
369                            "name": "args",
370                            "loc": {
371                              "start": {
372                                "line": 1,
373                                "column": 1
374                              },
375                              "end": {
376                                "line": 1,
377                                "column": 1
378                              }
379                            }
380                          },
381                          "loc": {
382                            "start": {
383                              "line": 1,
384                              "column": 1
385                            },
386                            "end": {
387                              "line": 1,
388                              "column": 1
389                            }
390                          }
391                        }
392                      ],
393                      "optional": false,
394                      "loc": {
395                        "start": {
396                          "line": 1,
397                          "column": 1
398                        },
399                        "end": {
400                          "line": 1,
401                          "column": 1
402                        }
403                      }
404                    },
405                    "loc": {
406                      "start": {
407                        "line": 1,
408                        "column": 1
409                      },
410                      "end": {
411                        "line": 1,
412                        "column": 1
413                      }
414                    }
415                  }
416                ],
417                "loc": {
418                  "start": {
419                    "line": 1,
420                    "column": 1
421                  },
422                  "end": {
423                    "line": 1,
424                    "column": 1
425                  }
426                }
427              },
428              "loc": {
429                "start": {
430                  "line": 1,
431                  "column": 1
432                },
433                "end": {
434                  "line": 1,
435                  "column": 1
436                }
437              }
438            },
439            "loc": {
440              "start": {
441                "line": 1,
442                "column": 1
443              },
444              "end": {
445                "line": 1,
446                "column": 1
447              }
448            }
449          },
450          "overloads": [],
451          "decorators": [],
452          "annotations": [],
453          "loc": {
454            "start": {
455              "line": 22,
456              "column": 1
457            },
458            "end": {
459              "line": 25,
460              "column": 2
461            }
462          }
463        },
464        "body": [
465          {
466            "type": "ClassProperty",
467            "key": {
468              "type": "Identifier",
469              "name": "childTest1",
470              "loc": {
471                "start": {
472                  "line": 23,
473                  "column": 12
474                },
475                "end": {
476                  "line": 23,
477                  "column": 22
478                }
479              }
480            },
481            "value": {
482              "type": "MemberExpression",
483              "object": {
484                "type": "Super",
485                "loc": {
486                  "start": {
487                    "line": 23,
488                    "column": 25
489                  },
490                  "end": {
491                    "line": 23,
492                    "column": 30
493                  }
494                }
495              },
496              "property": {
497                "type": "Identifier",
498                "name": "prop",
499                "loc": {
500                  "start": {
501                    "line": 23,
502                    "column": 31
503                  },
504                  "end": {
505                    "line": 23,
506                    "column": 35
507                  }
508                }
509              },
510              "computed": false,
511              "optional": false,
512              "loc": {
513                "start": {
514                  "line": 23,
515                  "column": 25
516                },
517                "end": {
518                  "line": 23,
519                  "column": 35
520                }
521              }
522            },
523            "static": true,
524            "readonly": false,
525            "declare": false,
526            "optional": false,
527            "computed": false,
528            "decorators": [],
529            "loc": {
530              "start": {
531                "line": 23,
532                "column": 5
533              },
534              "end": {
535                "line": 23,
536                "column": 35
537              }
538            }
539          },
540          {
541            "type": "ClassProperty",
542            "key": {
543              "type": "Identifier",
544              "name": "childTest2",
545              "loc": {
546                "start": {
547                  "line": 24,
548                  "column": 12
549                },
550                "end": {
551                  "line": 24,
552                  "column": 22
553                }
554              }
555            },
556            "value": {
557              "type": "CallExpression",
558              "callee": {
559                "type": "MemberExpression",
560                "object": {
561                  "type": "Super",
562                  "loc": {
563                    "start": {
564                      "line": 24,
565                      "column": 25
566                    },
567                    "end": {
568                      "line": 24,
569                      "column": 30
570                    }
571                  }
572                },
573                "property": {
574                  "type": "Identifier",
575                  "name": "test2",
576                  "loc": {
577                    "start": {
578                      "line": 24,
579                      "column": 31
580                    },
581                    "end": {
582                      "line": 24,
583                      "column": 36
584                    }
585                  }
586                },
587                "computed": false,
588                "optional": false,
589                "loc": {
590                  "start": {
591                    "line": 24,
592                    "column": 25
593                  },
594                  "end": {
595                    "line": 24,
596                    "column": 36
597                  }
598                }
599              },
600              "arguments": [],
601              "optional": false,
602              "loc": {
603                "start": {
604                  "line": 24,
605                  "column": 25
606                },
607                "end": {
608                  "line": 24,
609                  "column": 38
610                }
611              }
612            },
613            "static": true,
614            "readonly": false,
615            "declare": false,
616            "optional": false,
617            "computed": false,
618            "decorators": [],
619            "loc": {
620              "start": {
621                "line": 24,
622                "column": 5
623              },
624              "end": {
625                "line": 24,
626                "column": 38
627              }
628            }
629          }
630        ],
631        "indexSignatures": [],
632        "loc": {
633          "start": {
634            "line": 22,
635            "column": 22
636          },
637          "end": {
638            "line": 25,
639            "column": 2
640          }
641        }
642      },
643      "decorators": [],
644      "isAnnotationDeclaration": false,
645      "loc": {
646        "start": {
647          "line": 22,
648          "column": 1
649        },
650        "end": {
651          "line": 25,
652          "column": 2
653        }
654      }
655    }
656  ],
657  "loc": {
658    "start": {
659      "line": 1,
660      "column": 1
661    },
662    "end": {
663      "line": 26,
664      "column": 1
665    }
666  }
667}
668