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