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