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