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