1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "VariableDeclaration",
6      "declarations": [
7        {
8          "type": "VariableDeclarator",
9          "id": {
10            "type": "Identifier",
11            "name": "var1",
12            "decorators": [],
13            "loc": {
14              "start": {
15                "line": 17,
16                "column": 5
17              },
18              "end": {
19                "line": 17,
20                "column": 9
21              }
22            }
23          },
24          "init": null,
25          "loc": {
26            "start": {
27              "line": 17,
28              "column": 5
29            },
30            "end": {
31              "line": 17,
32              "column": 9
33            }
34          }
35        }
36      ],
37      "kind": "var",
38      "loc": {
39        "start": {
40          "line": 17,
41          "column": 1
42        },
43        "end": {
44          "line": 17,
45          "column": 10
46        }
47      }
48    },
49    {
50      "type": "VariableDeclaration",
51      "declarations": [
52        {
53          "type": "VariableDeclarator",
54          "id": {
55            "type": "Identifier",
56            "name": "var2",
57            "decorators": [],
58            "loc": {
59              "start": {
60                "line": 18,
61                "column": 13
62              },
63              "end": {
64                "line": 18,
65                "column": 17
66              }
67            }
68          },
69          "init": null,
70          "loc": {
71            "start": {
72              "line": 18,
73              "column": 13
74            },
75            "end": {
76              "line": 18,
77              "column": 17
78            }
79          }
80        }
81      ],
82      "kind": "var",
83      "declare": true,
84      "loc": {
85        "start": {
86          "line": 18,
87          "column": 9
88        },
89        "end": {
90          "line": 18,
91          "column": 18
92        }
93      }
94    },
95    {
96      "type": "VariableDeclaration",
97      "declarations": [
98        {
99          "type": "VariableDeclarator",
100          "id": {
101            "type": "Identifier",
102            "name": "var3",
103            "decorators": [],
104            "loc": {
105              "start": {
106                "line": 20,
107                "column": 5
108              },
109              "end": {
110                "line": 20,
111                "column": 9
112              }
113            }
114          },
115          "init": null,
116          "loc": {
117            "start": {
118              "line": 20,
119              "column": 5
120            },
121            "end": {
122              "line": 20,
123              "column": 9
124            }
125          }
126        }
127      ],
128      "kind": "let",
129      "loc": {
130        "start": {
131          "line": 20,
132          "column": 1
133        },
134        "end": {
135          "line": 20,
136          "column": 10
137        }
138      }
139    },
140    {
141      "type": "VariableDeclaration",
142      "declarations": [
143        {
144          "type": "VariableDeclarator",
145          "id": {
146            "type": "Identifier",
147            "name": "var4",
148            "decorators": [],
149            "loc": {
150              "start": {
151                "line": 21,
152                "column": 13
153              },
154              "end": {
155                "line": 21,
156                "column": 17
157              }
158            }
159          },
160          "init": null,
161          "loc": {
162            "start": {
163              "line": 21,
164              "column": 13
165            },
166            "end": {
167              "line": 21,
168              "column": 17
169            }
170          }
171        }
172      ],
173      "kind": "let",
174      "declare": true,
175      "loc": {
176        "start": {
177          "line": 21,
178          "column": 9
179        },
180        "end": {
181          "line": 21,
182          "column": 18
183        }
184      }
185    },
186    {
187      "type": "VariableDeclaration",
188      "declarations": [
189        {
190          "type": "VariableDeclarator",
191          "id": {
192            "type": "Identifier",
193            "name": "var5",
194            "decorators": [],
195            "loc": {
196              "start": {
197                "line": 23,
198                "column": 7
199              },
200              "end": {
201                "line": 23,
202                "column": 11
203              }
204            }
205          },
206          "init": {
207            "type": "NumberLiteral",
208            "value": 1,
209            "loc": {
210              "start": {
211                "line": 23,
212                "column": 14
213              },
214              "end": {
215                "line": 23,
216                "column": 15
217              }
218            }
219          },
220          "loc": {
221            "start": {
222              "line": 23,
223              "column": 7
224            },
225            "end": {
226              "line": 23,
227              "column": 15
228            }
229          }
230        }
231      ],
232      "kind": "const",
233      "loc": {
234        "start": {
235          "line": 23,
236          "column": 1
237        },
238        "end": {
239          "line": 23,
240          "column": 16
241        }
242      }
243    },
244    {
245      "type": "VariableDeclaration",
246      "declarations": [
247        {
248          "type": "VariableDeclarator",
249          "id": {
250            "type": "Identifier",
251            "name": "var6",
252            "decorators": [],
253            "loc": {
254              "start": {
255                "line": 24,
256                "column": 15
257              },
258              "end": {
259                "line": 24,
260                "column": 19
261              }
262            }
263          },
264          "init": {
265            "type": "NumberLiteral",
266            "value": 4,
267            "loc": {
268              "start": {
269                "line": 24,
270                "column": 22
271              },
272              "end": {
273                "line": 24,
274                "column": 23
275              }
276            }
277          },
278          "loc": {
279            "start": {
280              "line": 24,
281              "column": 15
282            },
283            "end": {
284              "line": 24,
285              "column": 23
286            }
287          }
288        }
289      ],
290      "kind": "const",
291      "declare": true,
292      "loc": {
293        "start": {
294          "line": 24,
295          "column": 9
296        },
297        "end": {
298          "line": 24,
299          "column": 24
300        }
301      }
302    },
303    {
304      "type": "VariableDeclaration",
305      "declarations": [
306        {
307          "type": "VariableDeclarator",
308          "id": {
309            "type": "Identifier",
310            "name": "var7",
311            "decorators": [],
312            "loc": {
313              "start": {
314                "line": 25,
315                "column": 15
316              },
317              "end": {
318                "line": 25,
319                "column": 19
320              }
321            }
322          },
323          "init": null,
324          "loc": {
325            "start": {
326              "line": 25,
327              "column": 15
328            },
329            "end": {
330              "line": 25,
331              "column": 19
332            }
333          }
334        }
335      ],
336      "kind": "const",
337      "declare": true,
338      "loc": {
339        "start": {
340          "line": 25,
341          "column": 9
342        },
343        "end": {
344          "line": 25,
345          "column": 20
346        }
347      }
348    },
349    {
350      "type": "TSTypeAliasDeclaration",
351      "id": {
352        "type": "Identifier",
353        "name": "type1",
354        "decorators": [],
355        "loc": {
356          "start": {
357            "line": 27,
358            "column": 6
359          },
360          "end": {
361            "line": 27,
362            "column": 11
363          }
364        }
365      },
366      "typeAnnotation": {
367        "type": "TSUnionType",
368        "types": [
369          {
370            "type": "TSNumberKeyword",
371            "loc": {
372              "start": {
373                "line": 27,
374                "column": 14
375              },
376              "end": {
377                "line": 27,
378                "column": 20
379              }
380            }
381          },
382          {
383            "type": "TSStringKeyword",
384            "loc": {
385              "start": {
386                "line": 27,
387                "column": 23
388              },
389              "end": {
390                "line": 27,
391                "column": 29
392              }
393            }
394          }
395        ],
396        "loc": {
397          "start": {
398            "line": 27,
399            "column": 14
400          },
401          "end": {
402            "line": 27,
403            "column": 29
404          }
405        }
406      },
407      "loc": {
408        "start": {
409          "line": 27,
410          "column": 1
411        },
412        "end": {
413          "line": 27,
414          "column": 30
415        }
416      }
417    },
418    {
419      "type": "EmptyStatement",
420      "loc": {
421        "start": {
422          "line": 27,
423          "column": 29
424        },
425        "end": {
426          "line": 27,
427          "column": 30
428        }
429      }
430    },
431    {
432      "type": "TSTypeAliasDeclaration",
433      "id": {
434        "type": "Identifier",
435        "name": "type2",
436        "decorators": [],
437        "loc": {
438          "start": {
439            "line": 28,
440            "column": 14
441          },
442          "end": {
443            "line": 28,
444            "column": 19
445          }
446        }
447      },
448      "typeAnnotation": {
449        "type": "TSUnionType",
450        "types": [
451          {
452            "type": "TSNumberKeyword",
453            "loc": {
454              "start": {
455                "line": 28,
456                "column": 22
457              },
458              "end": {
459                "line": 28,
460                "column": 28
461              }
462            }
463          },
464          {
465            "type": "TSStringKeyword",
466            "loc": {
467              "start": {
468                "line": 28,
469                "column": 31
470              },
471              "end": {
472                "line": 28,
473                "column": 37
474              }
475            }
476          }
477        ],
478        "loc": {
479          "start": {
480            "line": 28,
481            "column": 22
482          },
483          "end": {
484            "line": 28,
485            "column": 37
486          }
487        }
488      },
489      "declare": true,
490      "loc": {
491        "start": {
492          "line": 28,
493          "column": 9
494        },
495        "end": {
496          "line": 28,
497          "column": 38
498        }
499      }
500    },
501    {
502      "type": "EmptyStatement",
503      "loc": {
504        "start": {
505          "line": 28,
506          "column": 37
507        },
508        "end": {
509          "line": 28,
510          "column": 38
511        }
512      }
513    },
514    {
515      "type": "FunctionDeclaration",
516      "function": {
517        "type": "ScriptFunction",
518        "id": {
519          "type": "Identifier",
520          "name": "func1",
521          "decorators": [],
522          "loc": {
523            "start": {
524              "line": 30,
525              "column": 10
526            },
527            "end": {
528              "line": 30,
529              "column": 15
530            }
531          }
532        },
533        "generator": false,
534        "async": false,
535        "expression": false,
536        "params": [],
537        "body": {
538          "type": "BlockStatement",
539          "statements": [],
540          "loc": {
541            "start": {
542              "line": 30,
543              "column": 18
544            },
545            "end": {
546              "line": 30,
547              "column": 21
548            }
549          }
550        },
551        "loc": {
552          "start": {
553            "line": 30,
554            "column": 1
555          },
556          "end": {
557            "line": 30,
558            "column": 21
559          }
560        }
561      },
562      "loc": {
563        "start": {
564          "line": 30,
565          "column": 1
566        },
567        "end": {
568          "line": 30,
569          "column": 21
570        }
571      }
572    },
573    {
574      "type": "EmptyStatement",
575      "loc": {
576        "start": {
577          "line": 30,
578          "column": 21
579        },
580        "end": {
581          "line": 30,
582          "column": 22
583        }
584      }
585    },
586    {
587      "type": "TSDeclareFunction",
588      "function": {
589        "type": "ScriptFunction",
590        "id": {
591          "type": "Identifier",
592          "name": "func2",
593          "decorators": [],
594          "loc": {
595            "start": {
596              "line": 31,
597              "column": 18
598            },
599            "end": {
600              "line": 31,
601              "column": 23
602            }
603          }
604        },
605        "generator": false,
606        "async": false,
607        "expression": false,
608        "params": [],
609        "declare": true,
610        "loc": {
611          "start": {
612            "line": 31,
613            "column": 9
614          },
615          "end": {
616            "line": 31,
617            "column": 26
618          }
619        }
620      },
621      "loc": {
622        "start": {
623          "line": 31,
624          "column": 9
625        },
626        "end": {
627          "line": 31,
628          "column": 26
629        }
630      }
631    },
632    {
633      "type": "ExpressionStatement",
634      "expression": {
635        "type": "CallExpression",
636        "callee": {
637          "type": "Identifier",
638          "name": "func2",
639          "decorators": [],
640          "loc": {
641            "start": {
642              "line": 32,
643              "column": 1
644            },
645            "end": {
646              "line": 32,
647              "column": 6
648            }
649          }
650        },
651        "arguments": [],
652        "optional": false,
653        "loc": {
654          "start": {
655            "line": 32,
656            "column": 1
657          },
658          "end": {
659            "line": 32,
660            "column": 8
661          }
662        }
663      },
664      "loc": {
665        "start": {
666          "line": 32,
667          "column": 1
668        },
669        "end": {
670          "line": 32,
671          "column": 9
672        }
673      }
674    },
675    {
676      "type": "ClassDeclaration",
677      "definition": {
678        "id": {
679          "type": "Identifier",
680          "name": "Class1",
681          "decorators": [],
682          "loc": {
683            "start": {
684              "line": 34,
685              "column": 15
686            },
687            "end": {
688              "line": 34,
689              "column": 21
690            }
691          }
692        },
693        "superClass": null,
694        "implements": [],
695        "constructor": {
696          "type": "MethodDefinition",
697          "key": {
698            "type": "Identifier",
699            "name": "constructor",
700            "decorators": [],
701            "loc": {
702              "start": {
703                "line": 1,
704                "column": 1
705              },
706              "end": {
707                "line": 1,
708                "column": 1
709              }
710            }
711          },
712          "kind": "constructor",
713          "static": false,
714          "optional": false,
715          "computed": false,
716          "value": {
717            "type": "FunctionExpression",
718            "function": {
719              "type": "ScriptFunction",
720              "id": null,
721              "generator": false,
722              "async": false,
723              "expression": false,
724              "params": [],
725              "body": {
726                "type": "BlockStatement",
727                "statements": [],
728                "loc": {
729                  "start": {
730                    "line": 1,
731                    "column": 1
732                  },
733                  "end": {
734                    "line": 1,
735                    "column": 1
736                  }
737                }
738              },
739              "loc": {
740                "start": {
741                  "line": 1,
742                  "column": 1
743                },
744                "end": {
745                  "line": 1,
746                  "column": 1
747                }
748              }
749            },
750            "loc": {
751              "start": {
752                "line": 1,
753                "column": 1
754              },
755              "end": {
756                "line": 1,
757                "column": 1
758              }
759            }
760          },
761          "overloads": [],
762          "decorators": [],
763          "loc": {
764            "start": {
765              "line": 45,
766              "column": 2
767            },
768            "end": {
769              "line": 45,
770              "column": 2
771            }
772          }
773        },
774        "body": [
775          {
776            "type": "MethodDefinition",
777            "key": {
778              "type": "Identifier",
779              "name": "a",
780              "decorators": [],
781              "loc": {
782                "start": {
783                  "line": 35,
784                  "column": 24
785                },
786                "end": {
787                  "line": 35,
788                  "column": 25
789                }
790              }
791            },
792            "kind": "get",
793            "accessibility": "private",
794            "static": true,
795            "optional": false,
796            "computed": false,
797            "value": {
798              "type": "FunctionExpression",
799              "function": {
800                "type": "ScriptFunction",
801                "id": null,
802                "generator": false,
803                "async": false,
804                "expression": false,
805                "params": [],
806                "loc": {
807                  "start": {
808                    "line": 35,
809                    "column": 25
810                  },
811                  "end": {
812                    "line": 36,
813                    "column": 11
814                  }
815                }
816              },
817              "loc": {
818                "start": {
819                  "line": 35,
820                  "column": 25
821                },
822                "end": {
823                  "line": 36,
824                  "column": 11
825                }
826              }
827            },
828            "overloads": [],
829            "decorators": [],
830            "loc": {
831              "start": {
832                "line": 35,
833                "column": 5
834              },
835              "end": {
836                "line": 36,
837                "column": 11
838              }
839            }
840          },
841          {
842            "type": "MethodDefinition",
843            "key": {
844              "type": "Identifier",
845              "name": "g",
846              "decorators": [],
847              "loc": {
848                "start": {
849                  "line": 36,
850                  "column": 12
851                },
852                "end": {
853                  "line": 36,
854                  "column": 13
855                }
856              }
857            },
858            "kind": "method",
859            "accessibility": "public",
860            "static": false,
861            "optional": false,
862            "computed": false,
863            "value": {
864              "type": "FunctionExpression",
865              "function": {
866                "type": "ScriptFunction",
867                "id": null,
868                "generator": false,
869                "async": false,
870                "expression": false,
871                "params": [],
872                "loc": {
873                  "start": {
874                    "line": 36,
875                    "column": 13
876                  },
877                  "end": {
878                    "line": 37,
879                    "column": 11
880                  }
881                }
882              },
883              "loc": {
884                "start": {
885                  "line": 36,
886                  "column": 13
887                },
888                "end": {
889                  "line": 37,
890                  "column": 11
891                }
892              }
893            },
894            "overloads": [],
895            "decorators": [],
896            "loc": {
897              "start": {
898                "line": 36,
899                "column": 5
900              },
901              "end": {
902                "line": 37,
903                "column": 11
904              }
905            }
906          },
907          {
908            "type": "ClassProperty",
909            "key": {
910              "type": "NumberLiteral",
911              "value": 5,
912              "loc": {
913                "start": {
914                  "line": 37,
915                  "column": 30
916                },
917                "end": {
918                  "line": 37,
919                  "column": 31
920                }
921              }
922            },
923            "static": true,
924            "readonly": true,
925            "declare": true,
926            "optional": false,
927            "computed": true,
928            "definite": false,
929            "decorators": [],
930            "loc": {
931              "start": {
932                "line": 37,
933                "column": 5
934              },
935              "end": {
936                "line": 37,
937                "column": 31
938              }
939            }
940          },
941          {
942            "type": "ClassProperty",
943            "key": {
944              "type": "StringLiteral",
945              "value": "b",
946              "loc": {
947                "start": {
948                  "line": 38,
949                  "column": 30
950                },
951                "end": {
952                  "line": 38,
953                  "column": 33
954                }
955              }
956            },
957            "static": true,
958            "readonly": true,
959            "declare": true,
960            "optional": false,
961            "computed": true,
962            "definite": false,
963            "decorators": [],
964            "loc": {
965              "start": {
966                "line": 38,
967                "column": 5
968              },
969              "end": {
970                "line": 38,
971                "column": 33
972              }
973            }
974          },
975          {
976            "type": "ClassProperty",
977            "key": {
978              "type": "NumberLiteral",
979              "value": 67,
980              "loc": {
981                "start": {
982                  "line": 39,
983                  "column": 29
984                },
985                "end": {
986                  "line": 39,
987                  "column": 31
988                }
989              }
990            },
991            "static": true,
992            "readonly": true,
993            "declare": true,
994            "optional": false,
995            "computed": false,
996            "definite": false,
997            "decorators": [],
998            "loc": {
999              "start": {
1000                "line": 39,
1001                "column": 5
1002              },
1003              "end": {
1004                "line": 39,
1005                "column": 31
1006              }
1007            }
1008          },
1009          {
1010            "type": "ClassProperty",
1011            "key": {
1012              "type": "Identifier",
1013              "name": "j",
1014              "decorators": [],
1015              "loc": {
1016                "start": {
1017                  "line": 40,
1018                  "column": 29
1019                },
1020                "end": {
1021                  "line": 40,
1022                  "column": 30
1023                }
1024              }
1025            },
1026            "static": true,
1027            "readonly": true,
1028            "declare": true,
1029            "optional": false,
1030            "computed": false,
1031            "definite": false,
1032            "decorators": [],
1033            "loc": {
1034              "start": {
1035                "line": 40,
1036                "column": 5
1037              },
1038              "end": {
1039                "line": 40,
1040                "column": 30
1041              }
1042            }
1043          },
1044          {
1045            "type": "ClassProperty",
1046            "key": {
1047              "type": "Identifier",
1048              "name": "private",
1049              "decorators": [],
1050              "loc": {
1051                "start": {
1052                  "line": 41,
1053                  "column": 5
1054                },
1055                "end": {
1056                  "line": 41,
1057                  "column": 12
1058                }
1059              }
1060            },
1061            "static": false,
1062            "readonly": false,
1063            "declare": false,
1064            "optional": false,
1065            "computed": false,
1066            "definite": false,
1067            "decorators": [],
1068            "loc": {
1069              "start": {
1070                "line": 41,
1071                "column": 5
1072              },
1073              "end": {
1074                "line": 41,
1075                "column": 12
1076              }
1077            }
1078          },
1079          {
1080            "type": "MethodDefinition",
1081            "key": {
1082              "type": "NumberLiteral",
1083              "value": 1,
1084              "loc": {
1085                "start": {
1086                  "line": 42,
1087                  "column": 16
1088                },
1089                "end": {
1090                  "line": 42,
1091                  "column": 17
1092                }
1093              }
1094            },
1095            "kind": "method",
1096            "accessibility": "protected",
1097            "static": false,
1098            "optional": false,
1099            "computed": true,
1100            "value": {
1101              "type": "FunctionExpression",
1102              "function": {
1103                "type": "ScriptFunction",
1104                "id": null,
1105                "generator": false,
1106                "async": false,
1107                "expression": false,
1108                "params": [],
1109                "loc": {
1110                  "start": {
1111                    "line": 42,
1112                    "column": 18
1113                  },
1114                  "end": {
1115                    "line": 43,
1116                    "column": 11
1117                  }
1118                }
1119              },
1120              "loc": {
1121                "start": {
1122                  "line": 42,
1123                  "column": 18
1124                },
1125                "end": {
1126                  "line": 43,
1127                  "column": 11
1128                }
1129              }
1130            },
1131            "overloads": [],
1132            "decorators": [],
1133            "loc": {
1134              "start": {
1135                "line": 42,
1136                "column": 5
1137              },
1138              "end": {
1139                "line": 43,
1140                "column": 11
1141              }
1142            }
1143          },
1144          {
1145            "type": "ClassProperty",
1146            "key": {
1147              "type": "Identifier",
1148              "name": "k",
1149              "decorators": [],
1150              "loc": {
1151                "start": {
1152                  "line": 43,
1153                  "column": 19
1154                },
1155                "end": {
1156                  "line": 43,
1157                  "column": 20
1158                }
1159              }
1160            },
1161            "accessibility": "public",
1162            "static": true,
1163            "readonly": false,
1164            "declare": false,
1165            "optional": false,
1166            "computed": false,
1167            "definite": false,
1168            "decorators": [],
1169            "loc": {
1170              "start": {
1171                "line": 43,
1172                "column": 5
1173              },
1174              "end": {
1175                "line": 43,
1176                "column": 20
1177              }
1178            }
1179          },
1180          {
1181            "type": "ClassProperty",
1182            "key": {
1183              "type": "PrivateIdentifier",
1184              "name": "o",
1185              "decorators": [],
1186              "loc": {
1187                "start": {
1188                  "line": 44,
1189                  "column": 6
1190                },
1191                "end": {
1192                  "line": 44,
1193                  "column": 7
1194                }
1195              }
1196            },
1197            "static": false,
1198            "readonly": false,
1199            "declare": false,
1200            "optional": false,
1201            "computed": false,
1202            "definite": false,
1203            "decorators": [],
1204            "loc": {
1205              "start": {
1206                "line": 44,
1207                "column": 5
1208              },
1209              "end": {
1210                "line": 44,
1211                "column": 7
1212              }
1213            }
1214          }
1215        ],
1216        "loc": {
1217          "start": {
1218            "line": 34,
1219            "column": 22
1220          },
1221          "end": {
1222            "line": 45,
1223            "column": 2
1224          }
1225        }
1226      },
1227      "loc": {
1228        "start": {
1229          "line": 34,
1230          "column": 9
1231        },
1232        "end": {
1233          "line": 45,
1234          "column": 2
1235        }
1236      }
1237    }
1238  ],
1239  "loc": {
1240    "start": {
1241      "line": 1,
1242      "column": 1
1243    },
1244    "end": {
1245      "line": 45,
1246      "column": 2
1247    }
1248  }
1249}
1250