1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "C",
10          "loc": {
11            "start": {
12              "line": 17,
13              "column": 7
14            },
15            "end": {
16              "line": 17,
17              "column": 8
18            }
19          }
20        },
21        "superClass": null,
22        "implements": [],
23        "constructor": {
24          "type": "MethodDefinition",
25          "key": {
26            "type": "Identifier",
27            "name": "constructor",
28            "loc": {
29              "start": {
30                "line": 1,
31                "column": 1
32              },
33              "end": {
34                "line": 1,
35                "column": 1
36              }
37            }
38          },
39          "kind": "constructor",
40          "static": false,
41          "optional": false,
42          "computed": false,
43          "value": {
44            "type": "FunctionExpression",
45            "function": {
46              "type": "ScriptFunction",
47              "id": null,
48              "generator": false,
49              "async": false,
50              "expression": false,
51              "params": [],
52              "body": {
53                "type": "BlockStatement",
54                "statements": [],
55                "loc": {
56                  "start": {
57                    "line": 1,
58                    "column": 1
59                  },
60                  "end": {
61                    "line": 1,
62                    "column": 1
63                  }
64                }
65              },
66              "loc": {
67                "start": {
68                  "line": 1,
69                  "column": 1
70                },
71                "end": {
72                  "line": 1,
73                  "column": 1
74                }
75              }
76            },
77            "loc": {
78              "start": {
79                "line": 1,
80                "column": 1
81              },
82              "end": {
83                "line": 1,
84                "column": 1
85              }
86            }
87          },
88          "overloads": [],
89          "decorators": [],
90          "annotations": [],
91          "loc": {
92            "start": {
93              "line": 17,
94              "column": 1
95            },
96            "end": {
97              "line": 29,
98              "column": 2
99            }
100          }
101        },
102        "body": [
103          {
104            "type": "ClassProperty",
105            "key": {
106              "type": "Identifier",
107              "name": "a",
108              "loc": {
109                "start": {
110                  "line": 18,
111                  "column": 5
112                },
113                "end": {
114                  "line": 18,
115                  "column": 6
116                }
117              }
118            },
119            "value": {
120              "type": "ArrowFunctionExpression",
121              "function": {
122                "type": "ScriptFunction",
123                "id": null,
124                "generator": false,
125                "async": false,
126                "expression": false,
127                "params": [],
128                "returnType": {
129                  "type": "TSTypePredicate",
130                  "parameterName": {
131                    "type": "TSThisType",
132                    "loc": {
133                      "start": {
134                        "line": 18,
135                        "column": 14
136                      },
137                      "end": {
138                        "line": 18,
139                        "column": 18
140                      }
141                    }
142                  },
143                  "typeAnnotation": {
144                    "type": "TSNumberKeyword",
145                    "loc": {
146                      "start": {
147                        "line": 18,
148                        "column": 22
149                      },
150                      "end": {
151                        "line": 18,
152                        "column": 28
153                      }
154                    }
155                  },
156                  "asserts": false,
157                  "loc": {
158                    "start": {
159                      "line": 18,
160                      "column": 14
161                    },
162                    "end": {
163                      "line": 18,
164                      "column": 28
165                    }
166                  }
167                },
168                "body": {
169                  "type": "BlockStatement",
170                  "statements": [
171                    {
172                      "type": "ReturnStatement",
173                      "argument": {
174                        "type": "BooleanLiteral",
175                        "value": false,
176                        "loc": {
177                          "start": {
178                            "line": 19,
179                            "column": 16
180                          },
181                          "end": {
182                            "line": 19,
183                            "column": 21
184                          }
185                        }
186                      },
187                      "loc": {
188                        "start": {
189                          "line": 19,
190                          "column": 9
191                        },
192                        "end": {
193                          "line": 19,
194                          "column": 22
195                        }
196                      }
197                    }
198                  ],
199                  "loc": {
200                    "start": {
201                      "line": 18,
202                      "column": 32
203                    },
204                    "end": {
205                      "line": 20,
206                      "column": 6
207                    }
208                  }
209                },
210                "loc": {
211                  "start": {
212                    "line": 18,
213                    "column": 9
214                  },
215                  "end": {
216                    "line": 20,
217                    "column": 6
218                  }
219                }
220              },
221              "loc": {
222                "start": {
223                  "line": 18,
224                  "column": 9
225                },
226                "end": {
227                  "line": 20,
228                  "column": 6
229                }
230              }
231            },
232            "static": false,
233            "readonly": false,
234            "declare": false,
235            "optional": false,
236            "computed": false,
237            "decorators": [],
238            "loc": {
239              "start": {
240                "line": 18,
241                "column": 5
242              },
243              "end": {
244                "line": 20,
245                "column": 6
246              }
247            }
248          },
249          {
250            "type": "ClassProperty",
251            "key": {
252              "type": "Identifier",
253              "name": "b",
254              "loc": {
255                "start": {
256                  "line": 22,
257                  "column": 5
258                },
259                "end": {
260                  "line": 22,
261                  "column": 6
262                }
263              }
264            },
265            "value": {
266              "type": "ArrowFunctionExpression",
267              "function": {
268                "type": "ScriptFunction",
269                "id": null,
270                "generator": false,
271                "async": false,
272                "expression": false,
273                "params": [
274                  {
275                    "type": "Identifier",
276                    "name": "b",
277                    "typeAnnotation": {
278                      "type": "TSNumberKeyword",
279                      "loc": {
280                        "start": {
281                          "line": 22,
282                          "column": 14
283                        },
284                        "end": {
285                          "line": 22,
286                          "column": 20
287                        }
288                      }
289                    },
290                    "loc": {
291                      "start": {
292                        "line": 22,
293                        "column": 9
294                      },
295                      "end": {
296                        "line": 22,
297                        "column": 21
298                      }
299                    }
300                  }
301                ],
302                "returnType": {
303                  "type": "TSTypePredicate",
304                  "parameterName": {
305                    "type": "TSThisType",
306                    "loc": {
307                      "start": {
308                        "line": 22,
309                        "column": 24
310                      },
311                      "end": {
312                        "line": 22,
313                        "column": 28
314                      }
315                    }
316                  },
317                  "typeAnnotation": {
318                    "type": "TSNumberKeyword",
319                    "loc": {
320                      "start": {
321                        "line": 22,
322                        "column": 32
323                      },
324                      "end": {
325                        "line": 22,
326                        "column": 38
327                      }
328                    }
329                  },
330                  "asserts": false,
331                  "loc": {
332                    "start": {
333                      "line": 22,
334                      "column": 24
335                    },
336                    "end": {
337                      "line": 22,
338                      "column": 38
339                    }
340                  }
341                },
342                "body": {
343                  "type": "BlockStatement",
344                  "statements": [
345                    {
346                      "type": "ReturnStatement",
347                      "argument": {
348                        "type": "BooleanLiteral",
349                        "value": false,
350                        "loc": {
351                          "start": {
352                            "line": 23,
353                            "column": 16
354                          },
355                          "end": {
356                            "line": 23,
357                            "column": 21
358                          }
359                        }
360                      },
361                      "loc": {
362                        "start": {
363                          "line": 23,
364                          "column": 9
365                        },
366                        "end": {
367                          "line": 23,
368                          "column": 22
369                        }
370                      }
371                    }
372                  ],
373                  "loc": {
374                    "start": {
375                      "line": 22,
376                      "column": 42
377                    },
378                    "end": {
379                      "line": 24,
380                      "column": 6
381                    }
382                  }
383                },
384                "loc": {
385                  "start": {
386                    "line": 22,
387                    "column": 9
388                  },
389                  "end": {
390                    "line": 24,
391                    "column": 6
392                  }
393                }
394              },
395              "loc": {
396                "start": {
397                  "line": 22,
398                  "column": 9
399                },
400                "end": {
401                  "line": 24,
402                  "column": 6
403                }
404              }
405            },
406            "static": false,
407            "readonly": false,
408            "declare": false,
409            "optional": false,
410            "computed": false,
411            "decorators": [],
412            "loc": {
413              "start": {
414                "line": 22,
415                "column": 5
416              },
417              "end": {
418                "line": 24,
419                "column": 6
420              }
421            }
422          },
423          {
424            "type": "ClassProperty",
425            "key": {
426              "type": "Identifier",
427              "name": "c",
428              "loc": {
429                "start": {
430                  "line": 26,
431                  "column": 5
432                },
433                "end": {
434                  "line": 26,
435                  "column": 6
436                }
437              }
438            },
439            "value": {
440              "type": "ArrowFunctionExpression",
441              "function": {
442                "type": "ScriptFunction",
443                "id": null,
444                "generator": false,
445                "async": false,
446                "expression": false,
447                "params": [
448                  {
449                    "type": "RestElement",
450                    "argument": {
451                      "type": "Identifier",
452                      "name": "c",
453                      "loc": {
454                        "start": {
455                          "line": 26,
456                          "column": 13
457                        },
458                        "end": {
459                          "line": 26,
460                          "column": 14
461                        }
462                      }
463                    },
464                    "typeAnnotation": {
465                      "type": "TSArrayType",
466                      "elementType": {
467                        "type": "TSNumberKeyword",
468                        "loc": {
469                          "start": {
470                            "line": 26,
471                            "column": 17
472                          },
473                          "end": {
474                            "line": 26,
475                            "column": 23
476                          }
477                        }
478                      },
479                      "loc": {
480                        "start": {
481                          "line": 26,
482                          "column": 17
483                        },
484                        "end": {
485                          "line": 26,
486                          "column": 25
487                        }
488                      }
489                    },
490                    "loc": {
491                      "start": {
492                        "line": 26,
493                        "column": 9
494                      },
495                      "end": {
496                        "line": 26,
497                        "column": 25
498                      }
499                    }
500                  }
501                ],
502                "returnType": {
503                  "type": "TSTypePredicate",
504                  "parameterName": {
505                    "type": "TSThisType",
506                    "loc": {
507                      "start": {
508                        "line": 26,
509                        "column": 29
510                      },
511                      "end": {
512                        "line": 26,
513                        "column": 33
514                      }
515                    }
516                  },
517                  "typeAnnotation": {
518                    "type": "TSNumberKeyword",
519                    "loc": {
520                      "start": {
521                        "line": 26,
522                        "column": 37
523                      },
524                      "end": {
525                        "line": 26,
526                        "column": 43
527                      }
528                    }
529                  },
530                  "asserts": false,
531                  "loc": {
532                    "start": {
533                      "line": 26,
534                      "column": 29
535                    },
536                    "end": {
537                      "line": 26,
538                      "column": 43
539                    }
540                  }
541                },
542                "body": {
543                  "type": "BlockStatement",
544                  "statements": [
545                    {
546                      "type": "ReturnStatement",
547                      "argument": {
548                        "type": "BooleanLiteral",
549                        "value": false,
550                        "loc": {
551                          "start": {
552                            "line": 27,
553                            "column": 16
554                          },
555                          "end": {
556                            "line": 27,
557                            "column": 21
558                          }
559                        }
560                      },
561                      "loc": {
562                        "start": {
563                          "line": 27,
564                          "column": 9
565                        },
566                        "end": {
567                          "line": 27,
568                          "column": 22
569                        }
570                      }
571                    }
572                  ],
573                  "loc": {
574                    "start": {
575                      "line": 26,
576                      "column": 47
577                    },
578                    "end": {
579                      "line": 28,
580                      "column": 6
581                    }
582                  }
583                },
584                "loc": {
585                  "start": {
586                    "line": 26,
587                    "column": 9
588                  },
589                  "end": {
590                    "line": 28,
591                    "column": 6
592                  }
593                }
594              },
595              "loc": {
596                "start": {
597                  "line": 26,
598                  "column": 9
599                },
600                "end": {
601                  "line": 28,
602                  "column": 6
603                }
604              }
605            },
606            "static": false,
607            "readonly": false,
608            "declare": false,
609            "optional": false,
610            "computed": false,
611            "decorators": [],
612            "loc": {
613              "start": {
614                "line": 26,
615                "column": 5
616              },
617              "end": {
618                "line": 28,
619                "column": 6
620              }
621            }
622          }
623        ],
624        "indexSignatures": [],
625        "loc": {
626          "start": {
627            "line": 17,
628            "column": 9
629          },
630          "end": {
631            "line": 29,
632            "column": 2
633          }
634        }
635      },
636      "decorators": [],
637      "isAnnotationDeclaration": false,
638      "loc": {
639        "start": {
640          "line": 17,
641          "column": 1
642        },
643        "end": {
644          "line": 29,
645          "column": 2
646        }
647      }
648    }
649  ],
650  "loc": {
651    "start": {
652      "line": 1,
653      "column": 1
654    },
655    "end": {
656      "line": 30,
657      "column": 1
658    }
659  }
660}
661