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