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