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": 29,
14              "column": 7
15            },
16            "end": {
17              "line": 29,
18              "column": 8
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "bar",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 30,
34                  "column": 5
35                },
36                "end": {
37                  "line": 30,
38                  "column": 8
39                }
40              }
41            },
42            "kind": "method",
43            "accessibility": "public",
44            "static": false,
45            "optional": false,
46            "computed": false,
47            "value": {
48              "type": "FunctionExpression",
49              "function": {
50                "type": "ScriptFunction",
51                "id": {
52                  "type": "Identifier",
53                  "name": "bar",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 30,
58                      "column": 5
59                    },
60                    "end": {
61                      "line": 30,
62                      "column": 8
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [],
70                "returnType": {
71                  "type": "ETSPrimitiveType",
72                  "loc": {
73                    "start": {
74                      "line": 30,
75                      "column": 12
76                    },
77                    "end": {
78                      "line": 30,
79                      "column": 15
80                    }
81                  }
82                },
83                "body": {
84                  "type": "BlockStatement",
85                  "statements": [
86                    {
87                      "type": "ReturnStatement",
88                      "argument": {
89                        "type": "CallExpression",
90                        "callee": {
91                          "type": "Identifier",
92                          "name": "foo",
93                          "decorators": [],
94                          "loc": {
95                            "start": {
96                              "line": 31,
97                              "column": 16
98                            },
99                            "end": {
100                              "line": 31,
101                              "column": 19
102                            }
103                          }
104                        },
105                        "arguments": [
106                          {
107                            "type": "MemberExpression",
108                            "object": {
109                              "type": "ThisExpression",
110                              "loc": {
111                                "start": {
112                                  "line": 31,
113                                  "column": 20
114                                },
115                                "end": {
116                                  "line": 31,
117                                  "column": 24
118                                }
119                              }
120                            },
121                            "property": {
122                              "type": "Identifier",
123                              "name": "a",
124                              "decorators": [],
125                              "loc": {
126                                "start": {
127                                  "line": 31,
128                                  "column": 25
129                                },
130                                "end": {
131                                  "line": 31,
132                                  "column": 26
133                                }
134                              }
135                            },
136                            "computed": false,
137                            "optional": false,
138                            "loc": {
139                              "start": {
140                                "line": 31,
141                                "column": 20
142                              },
143                              "end": {
144                                "line": 31,
145                                "column": 26
146                              }
147                            }
148                          }
149                        ],
150                        "optional": false,
151                        "loc": {
152                          "start": {
153                            "line": 31,
154                            "column": 16
155                          },
156                          "end": {
157                            "line": 31,
158                            "column": 27
159                          }
160                        }
161                      },
162                      "loc": {
163                        "start": {
164                          "line": 31,
165                          "column": 9
166                        },
167                        "end": {
168                          "line": 31,
169                          "column": 28
170                        }
171                      }
172                    }
173                  ],
174                  "loc": {
175                    "start": {
176                      "line": 30,
177                      "column": 16
178                    },
179                    "end": {
180                      "line": 32,
181                      "column": 6
182                    }
183                  }
184                },
185                "loc": {
186                  "start": {
187                    "line": 30,
188                    "column": 8
189                  },
190                  "end": {
191                    "line": 32,
192                    "column": 6
193                  }
194                }
195              },
196              "loc": {
197                "start": {
198                  "line": 30,
199                  "column": 8
200                },
201                "end": {
202                  "line": 32,
203                  "column": 6
204                }
205              }
206            },
207            "overloads": [],
208            "decorators": [],
209            "loc": {
210              "start": {
211                "line": 30,
212                "column": 5
213              },
214              "end": {
215                "line": 32,
216                "column": 6
217              }
218            }
219          },
220          {
221            "type": "ClassProperty",
222            "key": {
223              "type": "Identifier",
224              "name": "a",
225              "decorators": [],
226              "loc": {
227                "start": {
228                  "line": 34,
229                  "column": 5
230                },
231                "end": {
232                  "line": 34,
233                  "column": 6
234                }
235              }
236            },
237            "value": {
238              "type": "ArrowFunctionExpression",
239              "function": {
240                "type": "ScriptFunction",
241                "id": null,
242                "generator": false,
243                "async": false,
244                "expression": false,
245                "params": [
246                  {
247                    "type": "ETSParameterExpression",
248                    "name": {
249                      "type": "Identifier",
250                      "name": "a",
251                      "typeAnnotation": {
252                        "type": "ETSPrimitiveType",
253                        "loc": {
254                          "start": {
255                            "line": 34,
256                            "column": 38
257                          },
258                          "end": {
259                            "line": 34,
260                            "column": 41
261                          }
262                        }
263                      },
264                      "decorators": [],
265                      "loc": {
266                        "start": {
267                          "line": 34,
268                          "column": 35
269                        },
270                        "end": {
271                          "line": 34,
272                          "column": 41
273                        }
274                      }
275                    },
276                    "loc": {
277                      "start": {
278                        "line": 34,
279                        "column": 35
280                      },
281                      "end": {
282                        "line": 34,
283                        "column": 41
284                      }
285                    }
286                  },
287                  {
288                    "type": "ETSParameterExpression",
289                    "name": {
290                      "type": "Identifier",
291                      "name": "b",
292                      "typeAnnotation": {
293                        "type": "ETSPrimitiveType",
294                        "loc": {
295                          "start": {
296                            "line": 34,
297                            "column": 46
298                          },
299                          "end": {
300                            "line": 34,
301                            "column": 49
302                          }
303                        }
304                      },
305                      "decorators": [],
306                      "loc": {
307                        "start": {
308                          "line": 34,
309                          "column": 43
310                        },
311                        "end": {
312                          "line": 34,
313                          "column": 49
314                        }
315                      }
316                    },
317                    "loc": {
318                      "start": {
319                        "line": 34,
320                        "column": 43
321                      },
322                      "end": {
323                        "line": 34,
324                        "column": 49
325                      }
326                    }
327                  }
328                ],
329                "returnType": {
330                  "type": "ETSPrimitiveType",
331                  "loc": {
332                    "start": {
333                      "line": 34,
334                      "column": 52
335                    },
336                    "end": {
337                      "line": 34,
338                      "column": 55
339                    }
340                  }
341                },
342                "body": {
343                  "type": "BlockStatement",
344                  "statements": [
345                    {
346                      "type": "ReturnStatement",
347                      "argument": {
348                        "type": "BinaryExpression",
349                        "operator": "+",
350                        "left": {
351                          "type": "Identifier",
352                          "name": "a",
353                          "decorators": [],
354                          "loc": {
355                            "start": {
356                              "line": 35,
357                              "column": 16
358                            },
359                            "end": {
360                              "line": 35,
361                              "column": 17
362                            }
363                          }
364                        },
365                        "right": {
366                          "type": "Identifier",
367                          "name": "b",
368                          "decorators": [],
369                          "loc": {
370                            "start": {
371                              "line": 35,
372                              "column": 20
373                            },
374                            "end": {
375                              "line": 35,
376                              "column": 21
377                            }
378                          }
379                        },
380                        "loc": {
381                          "start": {
382                            "line": 35,
383                            "column": 16
384                          },
385                          "end": {
386                            "line": 35,
387                            "column": 21
388                          }
389                        }
390                      },
391                      "loc": {
392                        "start": {
393                          "line": 35,
394                          "column": 9
395                        },
396                        "end": {
397                          "line": 35,
398                          "column": 22
399                        }
400                      }
401                    }
402                  ],
403                  "loc": {
404                    "start": {
405                      "line": 34,
406                      "column": 59
407                    },
408                    "end": {
409                      "line": 36,
410                      "column": 6
411                    }
412                  }
413                },
414                "loc": {
415                  "start": {
416                    "line": 34,
417                    "column": 34
418                  },
419                  "end": {
420                    "line": 36,
421                    "column": 6
422                  }
423                }
424              },
425              "loc": {
426                "start": {
427                  "line": 34,
428                  "column": 34
429                },
430                "end": {
431                  "line": 36,
432                  "column": 6
433                }
434              }
435            },
436            "accessibility": "public",
437            "static": false,
438            "readonly": false,
439            "declare": false,
440            "optional": false,
441            "computed": false,
442            "typeAnnotation": {
443              "type": "ETSFunctionType",
444              "params": [
445                {
446                  "type": "ETSParameterExpression",
447                  "name": {
448                    "type": "Identifier",
449                    "name": "a",
450                    "typeAnnotation": {
451                      "type": "ETSPrimitiveType",
452                      "loc": {
453                        "start": {
454                          "line": 34,
455                          "column": 12
456                        },
457                        "end": {
458                          "line": 34,
459                          "column": 15
460                        }
461                      }
462                    },
463                    "decorators": [],
464                    "loc": {
465                      "start": {
466                        "line": 34,
467                        "column": 9
468                      },
469                      "end": {
470                        "line": 34,
471                        "column": 15
472                      }
473                    }
474                  },
475                  "loc": {
476                    "start": {
477                      "line": 34,
478                      "column": 9
479                    },
480                    "end": {
481                      "line": 34,
482                      "column": 15
483                    }
484                  }
485                },
486                {
487                  "type": "ETSParameterExpression",
488                  "name": {
489                    "type": "Identifier",
490                    "name": "b",
491                    "typeAnnotation": {
492                      "type": "ETSPrimitiveType",
493                      "loc": {
494                        "start": {
495                          "line": 34,
496                          "column": 20
497                        },
498                        "end": {
499                          "line": 34,
500                          "column": 23
501                        }
502                      }
503                    },
504                    "decorators": [],
505                    "loc": {
506                      "start": {
507                        "line": 34,
508                        "column": 17
509                      },
510                      "end": {
511                        "line": 34,
512                        "column": 23
513                      }
514                    }
515                  },
516                  "loc": {
517                    "start": {
518                      "line": 34,
519                      "column": 17
520                    },
521                    "end": {
522                      "line": 34,
523                      "column": 23
524                    }
525                  }
526                }
527              ],
528              "returnType": {
529                "type": "ETSPrimitiveType",
530                "loc": {
531                  "start": {
532                    "line": 34,
533                    "column": 28
534                  },
535                  "end": {
536                    "line": 34,
537                    "column": 31
538                  }
539                }
540              },
541              "loc": {
542                "start": {
543                  "line": 34,
544                  "column": 8
545                },
546                "end": {
547                  "line": 34,
548                  "column": 31
549                }
550              }
551            },
552            "definite": false,
553            "decorators": [],
554            "loc": {
555              "start": {
556                "line": 34,
557                "column": 5
558              },
559              "end": {
560                "line": 36,
561                "column": 6
562              }
563            }
564          },
565          {
566            "type": "MethodDefinition",
567            "key": {
568              "type": "Identifier",
569              "name": "constructor",
570              "decorators": [],
571              "loc": {
572                "start": {
573                  "line": 1,
574                  "column": 1
575                },
576                "end": {
577                  "line": 1,
578                  "column": 1
579                }
580              }
581            },
582            "kind": "constructor",
583            "static": false,
584            "optional": false,
585            "computed": false,
586            "value": {
587              "type": "FunctionExpression",
588              "function": {
589                "type": "ScriptFunction",
590                "id": {
591                  "type": "Identifier",
592                  "name": "constructor",
593                  "decorators": [],
594                  "loc": {
595                    "start": {
596                      "line": 1,
597                      "column": 1
598                    },
599                    "end": {
600                      "line": 1,
601                      "column": 1
602                    }
603                  }
604                },
605                "generator": false,
606                "async": false,
607                "expression": false,
608                "params": [],
609                "body": {
610                  "type": "BlockStatement",
611                  "statements": [],
612                  "loc": {
613                    "start": {
614                      "line": 1,
615                      "column": 1
616                    },
617                    "end": {
618                      "line": 1,
619                      "column": 1
620                    }
621                  }
622                },
623                "loc": {
624                  "start": {
625                    "line": 1,
626                    "column": 1
627                  },
628                  "end": {
629                    "line": 1,
630                    "column": 1
631                  }
632                }
633              },
634              "loc": {
635                "start": {
636                  "line": 1,
637                  "column": 1
638                },
639                "end": {
640                  "line": 1,
641                  "column": 1
642                }
643              }
644            },
645            "overloads": [],
646            "decorators": [],
647            "loc": {
648              "start": {
649                "line": 37,
650                "column": 2
651              },
652              "end": {
653                "line": 37,
654                "column": 2
655              }
656            }
657          }
658        ],
659        "loc": {
660          "start": {
661            "line": 29,
662            "column": 9
663          },
664          "end": {
665            "line": 37,
666            "column": 2
667          }
668        }
669      },
670      "loc": {
671        "start": {
672          "line": 29,
673          "column": 1
674        },
675        "end": {
676          "line": 37,
677          "column": 2
678        }
679      }
680    },
681    {
682      "type": "ClassDeclaration",
683      "definition": {
684        "id": {
685          "type": "Identifier",
686          "name": "ETSGLOBAL",
687          "decorators": [],
688          "loc": {
689            "start": {
690              "line": 1,
691              "column": 1
692            },
693            "end": {
694              "line": 1,
695              "column": 1
696            }
697          }
698        },
699        "superClass": null,
700        "implements": [],
701        "body": [
702          {
703            "type": "MethodDefinition",
704            "key": {
705              "type": "Identifier",
706              "name": "_$init$_",
707              "decorators": [],
708              "loc": {
709                "start": {
710                  "line": 1,
711                  "column": 1
712                },
713                "end": {
714                  "line": 1,
715                  "column": 1
716                }
717              }
718            },
719            "kind": "method",
720            "accessibility": "public",
721            "static": true,
722            "optional": false,
723            "computed": false,
724            "value": {
725              "type": "FunctionExpression",
726              "function": {
727                "type": "ScriptFunction",
728                "id": {
729                  "type": "Identifier",
730                  "name": "_$init$_",
731                  "decorators": [],
732                  "loc": {
733                    "start": {
734                      "line": 1,
735                      "column": 1
736                    },
737                    "end": {
738                      "line": 1,
739                      "column": 1
740                    }
741                  }
742                },
743                "generator": false,
744                "async": false,
745                "expression": false,
746                "params": [],
747                "body": {
748                  "type": "BlockStatement",
749                  "statements": [
750                    {
751                      "type": "ExpressionStatement",
752                      "expression": {
753                        "type": "AssignmentExpression",
754                        "operator": "=",
755                        "left": {
756                          "type": "Identifier",
757                          "name": "a",
758                          "decorators": [],
759                          "loc": {
760                            "start": {
761                              "line": 16,
762                              "column": 5
763                            },
764                            "end": {
765                              "line": 16,
766                              "column": 6
767                            }
768                          }
769                        },
770                        "right": {
771                          "type": "NumberLiteral",
772                          "value": 1,
773                          "loc": {
774                            "start": {
775                              "line": 16,
776                              "column": 14
777                            },
778                            "end": {
779                              "line": 16,
780                              "column": 15
781                            }
782                          }
783                        },
784                        "loc": {
785                          "start": {
786                            "line": 16,
787                            "column": 5
788                          },
789                          "end": {
790                            "line": 16,
791                            "column": 15
792                          }
793                        }
794                      },
795                      "loc": {
796                        "start": {
797                          "line": 16,
798                          "column": 5
799                        },
800                        "end": {
801                          "line": 16,
802                          "column": 15
803                        }
804                      }
805                    },
806                    {
807                      "type": "ExpressionStatement",
808                      "expression": {
809                        "type": "AssignmentExpression",
810                        "operator": "=",
811                        "left": {
812                          "type": "Identifier",
813                          "name": "lambda1",
814                          "decorators": [],
815                          "loc": {
816                            "start": {
817                              "line": 18,
818                              "column": 5
819                            },
820                            "end": {
821                              "line": 18,
822                              "column": 12
823                            }
824                          }
825                        },
826                        "right": {
827                          "type": "ArrowFunctionExpression",
828                          "function": {
829                            "type": "ScriptFunction",
830                            "id": null,
831                            "generator": false,
832                            "async": false,
833                            "expression": false,
834                            "params": [],
835                            "returnType": {
836                              "type": "ETSPrimitiveType",
837                              "loc": {
838                                "start": {
839                                  "line": 18,
840                                  "column": 30
841                                },
842                                "end": {
843                                  "line": 18,
844                                  "column": 33
845                                }
846                              }
847                            },
848                            "body": {
849                              "type": "BlockStatement",
850                              "statements": [
851                                {
852                                  "type": "ExpressionStatement",
853                                  "expression": {
854                                    "type": "UpdateExpression",
855                                    "operator": "++",
856                                    "prefix": false,
857                                    "argument": {
858                                      "type": "Identifier",
859                                      "name": "a",
860                                      "decorators": [],
861                                      "loc": {
862                                        "start": {
863                                          "line": 19,
864                                          "column": 5
865                                        },
866                                        "end": {
867                                          "line": 19,
868                                          "column": 6
869                                        }
870                                      }
871                                    },
872                                    "loc": {
873                                      "start": {
874                                        "line": 19,
875                                        "column": 5
876                                      },
877                                      "end": {
878                                        "line": 19,
879                                        "column": 8
880                                      }
881                                    }
882                                  },
883                                  "loc": {
884                                    "start": {
885                                      "line": 19,
886                                      "column": 5
887                                    },
888                                    "end": {
889                                      "line": 19,
890                                      "column": 9
891                                    }
892                                  }
893                                },
894                                {
895                                  "type": "ReturnStatement",
896                                  "argument": {
897                                    "type": "Identifier",
898                                    "name": "a",
899                                    "decorators": [],
900                                    "loc": {
901                                      "start": {
902                                        "line": 20,
903                                        "column": 12
904                                      },
905                                      "end": {
906                                        "line": 20,
907                                        "column": 13
908                                      }
909                                    }
910                                  },
911                                  "loc": {
912                                    "start": {
913                                      "line": 20,
914                                      "column": 5
915                                    },
916                                    "end": {
917                                      "line": 20,
918                                      "column": 14
919                                    }
920                                  }
921                                }
922                              ],
923                              "loc": {
924                                "start": {
925                                  "line": 18,
926                                  "column": 37
927                                },
928                                "end": {
929                                  "line": 21,
930                                  "column": 2
931                                }
932                              }
933                            },
934                            "loc": {
935                              "start": {
936                                "line": 18,
937                                "column": 26
938                              },
939                              "end": {
940                                "line": 21,
941                                "column": 2
942                              }
943                            }
944                          },
945                          "loc": {
946                            "start": {
947                              "line": 18,
948                              "column": 26
949                            },
950                            "end": {
951                              "line": 21,
952                              "column": 2
953                            }
954                          }
955                        },
956                        "loc": {
957                          "start": {
958                            "line": 18,
959                            "column": 5
960                          },
961                          "end": {
962                            "line": 21,
963                            "column": 2
964                          }
965                        }
966                      },
967                      "loc": {
968                        "start": {
969                          "line": 18,
970                          "column": 5
971                        },
972                        "end": {
973                          "line": 21,
974                          "column": 2
975                        }
976                      }
977                    }
978                  ],
979                  "loc": {
980                    "start": {
981                      "line": 1,
982                      "column": 1
983                    },
984                    "end": {
985                      "line": 1,
986                      "column": 1
987                    }
988                  }
989                },
990                "loc": {
991                  "start": {
992                    "line": 1,
993                    "column": 1
994                  },
995                  "end": {
996                    "line": 1,
997                    "column": 1
998                  }
999                }
1000              },
1001              "loc": {
1002                "start": {
1003                  "line": 1,
1004                  "column": 1
1005                },
1006                "end": {
1007                  "line": 1,
1008                  "column": 1
1009                }
1010              }
1011            },
1012            "overloads": [],
1013            "decorators": [],
1014            "loc": {
1015              "start": {
1016                "line": 1,
1017                "column": 1
1018              },
1019              "end": {
1020                "line": 1,
1021                "column": 1
1022              }
1023            }
1024          },
1025          {
1026            "type": "ClassProperty",
1027            "key": {
1028              "type": "Identifier",
1029              "name": "a",
1030              "decorators": [],
1031              "loc": {
1032                "start": {
1033                  "line": 16,
1034                  "column": 5
1035                },
1036                "end": {
1037                  "line": 16,
1038                  "column": 6
1039                }
1040              }
1041            },
1042            "accessibility": "public",
1043            "static": true,
1044            "readonly": false,
1045            "declare": false,
1046            "optional": false,
1047            "computed": false,
1048            "typeAnnotation": {
1049              "type": "ETSPrimitiveType",
1050              "loc": {
1051                "start": {
1052                  "line": 16,
1053                  "column": 8
1054                },
1055                "end": {
1056                  "line": 16,
1057                  "column": 11
1058                }
1059              }
1060            },
1061            "definite": false,
1062            "decorators": [],
1063            "loc": {
1064              "start": {
1065                "line": 16,
1066                "column": 5
1067              },
1068              "end": {
1069                "line": 16,
1070                "column": 15
1071              }
1072            }
1073          },
1074          {
1075            "type": "ClassProperty",
1076            "key": {
1077              "type": "Identifier",
1078              "name": "lambda1",
1079              "decorators": [],
1080              "loc": {
1081                "start": {
1082                  "line": 18,
1083                  "column": 5
1084                },
1085                "end": {
1086                  "line": 18,
1087                  "column": 12
1088                }
1089              }
1090            },
1091            "accessibility": "public",
1092            "static": true,
1093            "readonly": false,
1094            "declare": false,
1095            "optional": false,
1096            "computed": false,
1097            "typeAnnotation": {
1098              "type": "ETSFunctionType",
1099              "params": [],
1100              "returnType": {
1101                "type": "ETSPrimitiveType",
1102                "loc": {
1103                  "start": {
1104                    "line": 18,
1105                    "column": 20
1106                  },
1107                  "end": {
1108                    "line": 18,
1109                    "column": 23
1110                  }
1111                }
1112              },
1113              "loc": {
1114                "start": {
1115                  "line": 18,
1116                  "column": 14
1117                },
1118                "end": {
1119                  "line": 18,
1120                  "column": 23
1121                }
1122              }
1123            },
1124            "definite": false,
1125            "decorators": [],
1126            "loc": {
1127              "start": {
1128                "line": 18,
1129                "column": 5
1130              },
1131              "end": {
1132                "line": 21,
1133                "column": 2
1134              }
1135            }
1136          },
1137          {
1138            "type": "MethodDefinition",
1139            "key": {
1140              "type": "Identifier",
1141              "name": "foo",
1142              "decorators": [],
1143              "loc": {
1144                "start": {
1145                  "line": 23,
1146                  "column": 10
1147                },
1148                "end": {
1149                  "line": 23,
1150                  "column": 13
1151                }
1152              }
1153            },
1154            "kind": "method",
1155            "accessibility": "public",
1156            "static": true,
1157            "optional": false,
1158            "computed": false,
1159            "value": {
1160              "type": "FunctionExpression",
1161              "function": {
1162                "type": "ScriptFunction",
1163                "id": {
1164                  "type": "Identifier",
1165                  "name": "foo",
1166                  "decorators": [],
1167                  "loc": {
1168                    "start": {
1169                      "line": 23,
1170                      "column": 10
1171                    },
1172                    "end": {
1173                      "line": 23,
1174                      "column": 13
1175                    }
1176                  }
1177                },
1178                "generator": false,
1179                "async": false,
1180                "expression": false,
1181                "params": [
1182                  {
1183                    "type": "ETSParameterExpression",
1184                    "name": {
1185                      "type": "Identifier",
1186                      "name": "a",
1187                      "typeAnnotation": {
1188                        "type": "ETSFunctionType",
1189                        "params": [
1190                          {
1191                            "type": "ETSParameterExpression",
1192                            "name": {
1193                              "type": "Identifier",
1194                              "name": "a",
1195                              "typeAnnotation": {
1196                                "type": "ETSPrimitiveType",
1197                                "loc": {
1198                                  "start": {
1199                                    "line": 23,
1200                                    "column": 21
1201                                  },
1202                                  "end": {
1203                                    "line": 23,
1204                                    "column": 24
1205                                  }
1206                                }
1207                              },
1208                              "decorators": [],
1209                              "loc": {
1210                                "start": {
1211                                  "line": 23,
1212                                  "column": 18
1213                                },
1214                                "end": {
1215                                  "line": 23,
1216                                  "column": 24
1217                                }
1218                              }
1219                            },
1220                            "loc": {
1221                              "start": {
1222                                "line": 23,
1223                                "column": 18
1224                              },
1225                              "end": {
1226                                "line": 23,
1227                                "column": 24
1228                              }
1229                            }
1230                          },
1231                          {
1232                            "type": "ETSParameterExpression",
1233                            "name": {
1234                              "type": "Identifier",
1235                              "name": "b",
1236                              "typeAnnotation": {
1237                                "type": "ETSPrimitiveType",
1238                                "loc": {
1239                                  "start": {
1240                                    "line": 23,
1241                                    "column": 29
1242                                  },
1243                                  "end": {
1244                                    "line": 23,
1245                                    "column": 32
1246                                  }
1247                                }
1248                              },
1249                              "decorators": [],
1250                              "loc": {
1251                                "start": {
1252                                  "line": 23,
1253                                  "column": 26
1254                                },
1255                                "end": {
1256                                  "line": 23,
1257                                  "column": 32
1258                                }
1259                              }
1260                            },
1261                            "loc": {
1262                              "start": {
1263                                "line": 23,
1264                                "column": 26
1265                              },
1266                              "end": {
1267                                "line": 23,
1268                                "column": 32
1269                              }
1270                            }
1271                          }
1272                        ],
1273                        "returnType": {
1274                          "type": "ETSPrimitiveType",
1275                          "loc": {
1276                            "start": {
1277                              "line": 23,
1278                              "column": 37
1279                            },
1280                            "end": {
1281                              "line": 23,
1282                              "column": 40
1283                            }
1284                          }
1285                        },
1286                        "loc": {
1287                          "start": {
1288                            "line": 23,
1289                            "column": 17
1290                          },
1291                          "end": {
1292                            "line": 23,
1293                            "column": 40
1294                          }
1295                        }
1296                      },
1297                      "decorators": [],
1298                      "loc": {
1299                        "start": {
1300                          "line": 23,
1301                          "column": 14
1302                        },
1303                        "end": {
1304                          "line": 23,
1305                          "column": 40
1306                        }
1307                      }
1308                    },
1309                    "loc": {
1310                      "start": {
1311                        "line": 23,
1312                        "column": 14
1313                      },
1314                      "end": {
1315                        "line": 23,
1316                        "column": 40
1317                      }
1318                    }
1319                  }
1320                ],
1321                "returnType": {
1322                  "type": "ETSPrimitiveType",
1323                  "loc": {
1324                    "start": {
1325                      "line": 23,
1326                      "column": 43
1327                    },
1328                    "end": {
1329                      "line": 23,
1330                      "column": 46
1331                    }
1332                  }
1333                },
1334                "body": {
1335                  "type": "BlockStatement",
1336                  "statements": [
1337                    {
1338                      "type": "VariableDeclaration",
1339                      "declarations": [
1340                        {
1341                          "type": "VariableDeclarator",
1342                          "id": {
1343                            "type": "Identifier",
1344                            "name": "value",
1345                            "decorators": [],
1346                            "loc": {
1347                              "start": {
1348                                "line": 24,
1349                                "column": 9
1350                              },
1351                              "end": {
1352                                "line": 24,
1353                                "column": 14
1354                              }
1355                            }
1356                          },
1357                          "init": {
1358                            "type": "CallExpression",
1359                            "callee": {
1360                              "type": "Identifier",
1361                              "name": "a",
1362                              "decorators": [],
1363                              "loc": {
1364                                "start": {
1365                                  "line": 24,
1366                                  "column": 17
1367                                },
1368                                "end": {
1369                                  "line": 24,
1370                                  "column": 18
1371                                }
1372                              }
1373                            },
1374                            "arguments": [
1375                              {
1376                                "type": "NumberLiteral",
1377                                "value": 1,
1378                                "loc": {
1379                                  "start": {
1380                                    "line": 24,
1381                                    "column": 19
1382                                  },
1383                                  "end": {
1384                                    "line": 24,
1385                                    "column": 20
1386                                  }
1387                                }
1388                              },
1389                              {
1390                                "type": "NumberLiteral",
1391                                "value": 2,
1392                                "loc": {
1393                                  "start": {
1394                                    "line": 24,
1395                                    "column": 22
1396                                  },
1397                                  "end": {
1398                                    "line": 24,
1399                                    "column": 23
1400                                  }
1401                                }
1402                              }
1403                            ],
1404                            "optional": false,
1405                            "loc": {
1406                              "start": {
1407                                "line": 24,
1408                                "column": 17
1409                              },
1410                              "end": {
1411                                "line": 24,
1412                                "column": 24
1413                              }
1414                            }
1415                          },
1416                          "loc": {
1417                            "start": {
1418                              "line": 24,
1419                              "column": 9
1420                            },
1421                            "end": {
1422                              "line": 24,
1423                              "column": 24
1424                            }
1425                          }
1426                        }
1427                      ],
1428                      "kind": "let",
1429                      "loc": {
1430                        "start": {
1431                          "line": 24,
1432                          "column": 5
1433                        },
1434                        "end": {
1435                          "line": 24,
1436                          "column": 25
1437                        }
1438                      }
1439                    },
1440                    {
1441                      "type": "ExpressionStatement",
1442                      "expression": {
1443                        "type": "UpdateExpression",
1444                        "operator": "++",
1445                        "prefix": false,
1446                        "argument": {
1447                          "type": "Identifier",
1448                          "name": "value",
1449                          "decorators": [],
1450                          "loc": {
1451                            "start": {
1452                              "line": 25,
1453                              "column": 5
1454                            },
1455                            "end": {
1456                              "line": 25,
1457                              "column": 10
1458                            }
1459                          }
1460                        },
1461                        "loc": {
1462                          "start": {
1463                            "line": 25,
1464                            "column": 5
1465                          },
1466                          "end": {
1467                            "line": 25,
1468                            "column": 12
1469                          }
1470                        }
1471                      },
1472                      "loc": {
1473                        "start": {
1474                          "line": 25,
1475                          "column": 5
1476                        },
1477                        "end": {
1478                          "line": 25,
1479                          "column": 13
1480                        }
1481                      }
1482                    },
1483                    {
1484                      "type": "ReturnStatement",
1485                      "argument": {
1486                        "type": "Identifier",
1487                        "name": "value",
1488                        "decorators": [],
1489                        "loc": {
1490                          "start": {
1491                            "line": 26,
1492                            "column": 12
1493                          },
1494                          "end": {
1495                            "line": 26,
1496                            "column": 17
1497                          }
1498                        }
1499                      },
1500                      "loc": {
1501                        "start": {
1502                          "line": 26,
1503                          "column": 5
1504                        },
1505                        "end": {
1506                          "line": 26,
1507                          "column": 18
1508                        }
1509                      }
1510                    }
1511                  ],
1512                  "loc": {
1513                    "start": {
1514                      "line": 23,
1515                      "column": 47
1516                    },
1517                    "end": {
1518                      "line": 27,
1519                      "column": 2
1520                    }
1521                  }
1522                },
1523                "loc": {
1524                  "start": {
1525                    "line": 23,
1526                    "column": 13
1527                  },
1528                  "end": {
1529                    "line": 27,
1530                    "column": 2
1531                  }
1532                }
1533              },
1534              "loc": {
1535                "start": {
1536                  "line": 23,
1537                  "column": 13
1538                },
1539                "end": {
1540                  "line": 27,
1541                  "column": 2
1542                }
1543              }
1544            },
1545            "overloads": [],
1546            "decorators": [],
1547            "loc": {
1548              "start": {
1549                "line": 23,
1550                "column": 1
1551              },
1552              "end": {
1553                "line": 27,
1554                "column": 2
1555              }
1556            }
1557          },
1558          {
1559            "type": "MethodDefinition",
1560            "key": {
1561              "type": "Identifier",
1562              "name": "main",
1563              "decorators": [],
1564              "loc": {
1565                "start": {
1566                  "line": 39,
1567                  "column": 10
1568                },
1569                "end": {
1570                  "line": 39,
1571                  "column": 14
1572                }
1573              }
1574            },
1575            "kind": "method",
1576            "accessibility": "public",
1577            "static": true,
1578            "optional": false,
1579            "computed": false,
1580            "value": {
1581              "type": "FunctionExpression",
1582              "function": {
1583                "type": "ScriptFunction",
1584                "id": {
1585                  "type": "Identifier",
1586                  "name": "main",
1587                  "decorators": [],
1588                  "loc": {
1589                    "start": {
1590                      "line": 39,
1591                      "column": 10
1592                    },
1593                    "end": {
1594                      "line": 39,
1595                      "column": 14
1596                    }
1597                  }
1598                },
1599                "generator": false,
1600                "async": false,
1601                "expression": false,
1602                "params": [],
1603                "returnType": {
1604                  "type": "ETSPrimitiveType",
1605                  "loc": {
1606                    "start": {
1607                      "line": 39,
1608                      "column": 18
1609                    },
1610                    "end": {
1611                      "line": 39,
1612                      "column": 22
1613                    }
1614                  }
1615                },
1616                "body": {
1617                  "type": "BlockStatement",
1618                  "statements": [
1619                    {
1620                      "type": "VariableDeclaration",
1621                      "declarations": [
1622                        {
1623                          "type": "VariableDeclarator",
1624                          "id": {
1625                            "type": "Identifier",
1626                            "name": "a",
1627                            "decorators": [],
1628                            "loc": {
1629                              "start": {
1630                                "line": 40,
1631                                "column": 9
1632                              },
1633                              "end": {
1634                                "line": 40,
1635                                "column": 10
1636                              }
1637                            }
1638                          },
1639                          "init": {
1640                            "type": "ETSNewClassInstanceExpression",
1641                            "typeReference": {
1642                              "type": "ETSTypeReference",
1643                              "part": {
1644                                "type": "ETSTypeReferencePart",
1645                                "name": {
1646                                  "type": "Identifier",
1647                                  "name": "A",
1648                                  "decorators": [],
1649                                  "loc": {
1650                                    "start": {
1651                                      "line": 40,
1652                                      "column": 17
1653                                    },
1654                                    "end": {
1655                                      "line": 40,
1656                                      "column": 18
1657                                    }
1658                                  }
1659                                },
1660                                "loc": {
1661                                  "start": {
1662                                    "line": 40,
1663                                    "column": 17
1664                                  },
1665                                  "end": {
1666                                    "line": 40,
1667                                    "column": 19
1668                                  }
1669                                }
1670                              },
1671                              "loc": {
1672                                "start": {
1673                                  "line": 40,
1674                                  "column": 17
1675                                },
1676                                "end": {
1677                                  "line": 40,
1678                                  "column": 19
1679                                }
1680                              }
1681                            },
1682                            "arguments": [],
1683                            "loc": {
1684                              "start": {
1685                                "line": 40,
1686                                "column": 13
1687                              },
1688                              "end": {
1689                                "line": 40,
1690                                "column": 21
1691                              }
1692                            }
1693                          },
1694                          "loc": {
1695                            "start": {
1696                              "line": 40,
1697                              "column": 9
1698                            },
1699                            "end": {
1700                              "line": 40,
1701                              "column": 21
1702                            }
1703                          }
1704                        }
1705                      ],
1706                      "kind": "let",
1707                      "loc": {
1708                        "start": {
1709                          "line": 40,
1710                          "column": 5
1711                        },
1712                        "end": {
1713                          "line": 40,
1714                          "column": 21
1715                        }
1716                      }
1717                    },
1718                    {
1719                      "type": "VariableDeclaration",
1720                      "declarations": [
1721                        {
1722                          "type": "VariableDeclarator",
1723                          "id": {
1724                            "type": "Identifier",
1725                            "name": "value",
1726                            "decorators": [],
1727                            "loc": {
1728                              "start": {
1729                                "line": 41,
1730                                "column": 9
1731                              },
1732                              "end": {
1733                                "line": 41,
1734                                "column": 14
1735                              }
1736                            }
1737                          },
1738                          "init": {
1739                            "type": "CallExpression",
1740                            "callee": {
1741                              "type": "MemberExpression",
1742                              "object": {
1743                                "type": "Identifier",
1744                                "name": "a",
1745                                "decorators": [],
1746                                "loc": {
1747                                  "start": {
1748                                    "line": 41,
1749                                    "column": 17
1750                                  },
1751                                  "end": {
1752                                    "line": 41,
1753                                    "column": 18
1754                                  }
1755                                }
1756                              },
1757                              "property": {
1758                                "type": "Identifier",
1759                                "name": "bar",
1760                                "decorators": [],
1761                                "loc": {
1762                                  "start": {
1763                                    "line": 41,
1764                                    "column": 19
1765                                  },
1766                                  "end": {
1767                                    "line": 41,
1768                                    "column": 22
1769                                  }
1770                                }
1771                              },
1772                              "computed": false,
1773                              "optional": false,
1774                              "loc": {
1775                                "start": {
1776                                  "line": 41,
1777                                  "column": 17
1778                                },
1779                                "end": {
1780                                  "line": 41,
1781                                  "column": 22
1782                                }
1783                              }
1784                            },
1785                            "arguments": [],
1786                            "optional": false,
1787                            "loc": {
1788                              "start": {
1789                                "line": 41,
1790                                "column": 17
1791                              },
1792                              "end": {
1793                                "line": 41,
1794                                "column": 24
1795                              }
1796                            }
1797                          },
1798                          "loc": {
1799                            "start": {
1800                              "line": 41,
1801                              "column": 9
1802                            },
1803                            "end": {
1804                              "line": 41,
1805                              "column": 24
1806                            }
1807                          }
1808                        }
1809                      ],
1810                      "kind": "let",
1811                      "loc": {
1812                        "start": {
1813                          "line": 41,
1814                          "column": 5
1815                        },
1816                        "end": {
1817                          "line": 41,
1818                          "column": 25
1819                        }
1820                      }
1821                    },
1822                    {
1823                      "type": "ExpressionStatement",
1824                      "expression": {
1825                        "type": "UpdateExpression",
1826                        "operator": "++",
1827                        "prefix": false,
1828                        "argument": {
1829                          "type": "Identifier",
1830                          "name": "value",
1831                          "decorators": [],
1832                          "loc": {
1833                            "start": {
1834                              "line": 42,
1835                              "column": 5
1836                            },
1837                            "end": {
1838                              "line": 42,
1839                              "column": 10
1840                            }
1841                          }
1842                        },
1843                        "loc": {
1844                          "start": {
1845                            "line": 42,
1846                            "column": 5
1847                          },
1848                          "end": {
1849                            "line": 42,
1850                            "column": 12
1851                          }
1852                        }
1853                      },
1854                      "loc": {
1855                        "start": {
1856                          "line": 42,
1857                          "column": 5
1858                        },
1859                        "end": {
1860                          "line": 42,
1861                          "column": 13
1862                        }
1863                      }
1864                    }
1865                  ],
1866                  "loc": {
1867                    "start": {
1868                      "line": 39,
1869                      "column": 23
1870                    },
1871                    "end": {
1872                      "line": 43,
1873                      "column": 2
1874                    }
1875                  }
1876                },
1877                "loc": {
1878                  "start": {
1879                    "line": 39,
1880                    "column": 14
1881                  },
1882                  "end": {
1883                    "line": 43,
1884                    "column": 2
1885                  }
1886                }
1887              },
1888              "loc": {
1889                "start": {
1890                  "line": 39,
1891                  "column": 14
1892                },
1893                "end": {
1894                  "line": 43,
1895                  "column": 2
1896                }
1897              }
1898            },
1899            "overloads": [],
1900            "decorators": [],
1901            "loc": {
1902              "start": {
1903                "line": 39,
1904                "column": 1
1905              },
1906              "end": {
1907                "line": 43,
1908                "column": 2
1909              }
1910            }
1911          }
1912        ],
1913        "loc": {
1914          "start": {
1915            "line": 1,
1916            "column": 1
1917          },
1918          "end": {
1919            "line": 1,
1920            "column": 1
1921          }
1922        }
1923      },
1924      "loc": {
1925        "start": {
1926          "line": 1,
1927          "column": 1
1928        },
1929        "end": {
1930          "line": 1,
1931          "column": 1
1932        }
1933      }
1934    }
1935  ],
1936  "loc": {
1937    "start": {
1938      "line": 1,
1939      "column": 1
1940    },
1941    "end": {
1942      "line": 44,
1943      "column": 1
1944    }
1945  }
1946}
1947