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