1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "ClassDeclaration",
6      "definition": {
7        "id": {
8          "type": "Identifier",
9          "name": "test_assert",
10          "decorators": [],
11          "loc": {
12            "start": {
13              "line": 16,
14              "column": 7
15            },
16            "end": {
17              "line": 16,
18              "column": 18
19            }
20          }
21        },
22        "superClass": null,
23        "implements": [],
24        "body": [
25          {
26            "type": "MethodDefinition",
27            "key": {
28              "type": "Identifier",
29              "name": "test",
30              "decorators": [],
31              "loc": {
32                "start": {
33                  "line": 17,
34                  "column": 5
35                },
36                "end": {
37                  "line": 17,
38                  "column": 9
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": "test",
54                  "decorators": [],
55                  "loc": {
56                    "start": {
57                      "line": 17,
58                      "column": 5
59                    },
60                    "end": {
61                      "line": 17,
62                      "column": 9
63                    }
64                  }
65                },
66                "generator": false,
67                "async": false,
68                "expression": false,
69                "params": [
70                  {
71                    "type": "ETSParameterExpression",
72                    "name": {
73                      "type": "Identifier",
74                      "name": "x",
75                      "typeAnnotation": {
76                        "type": "ETSPrimitiveType",
77                        "loc": {
78                          "start": {
79                            "line": 17,
80                            "column": 14
81                          },
82                          "end": {
83                            "line": 17,
84                            "column": 17
85                          }
86                        }
87                      },
88                      "decorators": [],
89                      "loc": {
90                        "start": {
91                          "line": 17,
92                          "column": 10
93                        },
94                        "end": {
95                          "line": 17,
96                          "column": 17
97                        }
98                      }
99                    },
100                    "loc": {
101                      "start": {
102                        "line": 17,
103                        "column": 10
104                      },
105                      "end": {
106                        "line": 17,
107                        "column": 17
108                      }
109                    }
110                  }
111                ],
112                "returnType": {
113                  "type": "ETSPrimitiveType",
114                  "loc": {
115                    "start": {
116                      "line": 17,
117                      "column": 20
118                    },
119                    "end": {
120                      "line": 17,
121                      "column": 24
122                    }
123                  }
124                },
125                "body": {
126                  "type": "BlockStatement",
127                  "statements": [
128                    {
129                      "type": "AssertStatement",
130                      "test": {
131                        "type": "BinaryExpression",
132                        "operator": ">",
133                        "left": {
134                          "type": "Identifier",
135                          "name": "x",
136                          "decorators": [],
137                          "loc": {
138                            "start": {
139                              "line": 18,
140                              "column": 16
141                            },
142                            "end": {
143                              "line": 18,
144                              "column": 17
145                            }
146                          }
147                        },
148                        "right": {
149                          "type": "NumberLiteral",
150                          "value": 10,
151                          "loc": {
152                            "start": {
153                              "line": 18,
154                              "column": 20
155                            },
156                            "end": {
157                              "line": 18,
158                              "column": 22
159                            }
160                          }
161                        },
162                        "loc": {
163                          "start": {
164                            "line": 18,
165                            "column": 16
166                          },
167                          "end": {
168                            "line": 18,
169                            "column": 22
170                          }
171                        }
172                      },
173                      "second": null,
174                      "loc": {
175                        "start": {
176                          "line": 18,
177                          "column": 9
178                        },
179                        "end": {
180                          "line": 18,
181                          "column": 23
182                        }
183                      }
184                    },
185                    {
186                      "type": "AssertStatement",
187                      "test": {
188                        "type": "BinaryExpression",
189                        "operator": "!=",
190                        "left": {
191                          "type": "Identifier",
192                          "name": "x",
193                          "decorators": [],
194                          "loc": {
195                            "start": {
196                              "line": 19,
197                              "column": 17
198                            },
199                            "end": {
200                              "line": 19,
201                              "column": 18
202                            }
203                          }
204                        },
205                        "right": {
206                          "type": "NumberLiteral",
207                          "value": 2,
208                          "loc": {
209                            "start": {
210                              "line": 19,
211                              "column": 22
212                            },
213                            "end": {
214                              "line": 19,
215                              "column": 23
216                            }
217                          }
218                        },
219                        "loc": {
220                          "start": {
221                            "line": 19,
222                            "column": 16
223                          },
224                          "end": {
225                            "line": 19,
226                            "column": 24
227                          }
228                        }
229                      },
230                      "second": null,
231                      "loc": {
232                        "start": {
233                          "line": 19,
234                          "column": 9
235                        },
236                        "end": {
237                          "line": 19,
238                          "column": 25
239                        }
240                      }
241                    },
242                    {
243                      "type": "AssertStatement",
244                      "test": {
245                        "type": "LogicalExpression",
246                        "operator": "||",
247                        "left": {
248                          "type": "BinaryExpression",
249                          "operator": ">",
250                          "left": {
251                            "type": "Identifier",
252                            "name": "x",
253                            "decorators": [],
254                            "loc": {
255                              "start": {
256                                "line": 20,
257                                "column": 16
258                              },
259                              "end": {
260                                "line": 20,
261                                "column": 17
262                              }
263                            }
264                          },
265                          "right": {
266                            "type": "NumberLiteral",
267                            "value": 10,
268                            "loc": {
269                              "start": {
270                                "line": 20,
271                                "column": 20
272                              },
273                              "end": {
274                                "line": 20,
275                                "column": 22
276                              }
277                            }
278                          },
279                          "loc": {
280                            "start": {
281                              "line": 20,
282                              "column": 16
283                            },
284                            "end": {
285                              "line": 20,
286                              "column": 22
287                            }
288                          }
289                        },
290                        "right": {
291                          "type": "BinaryExpression",
292                          "operator": "<",
293                          "left": {
294                            "type": "Identifier",
295                            "name": "x",
296                            "decorators": [],
297                            "loc": {
298                              "start": {
299                                "line": 20,
300                                "column": 26
301                              },
302                              "end": {
303                                "line": 20,
304                                "column": 27
305                              }
306                            }
307                          },
308                          "right": {
309                            "type": "NumberLiteral",
310                            "value": 3,
311                            "loc": {
312                              "start": {
313                                "line": 20,
314                                "column": 30
315                              },
316                              "end": {
317                                "line": 20,
318                                "column": 31
319                              }
320                            }
321                          },
322                          "loc": {
323                            "start": {
324                              "line": 20,
325                              "column": 26
326                            },
327                            "end": {
328                              "line": 20,
329                              "column": 31
330                            }
331                          }
332                        },
333                        "loc": {
334                          "start": {
335                            "line": 20,
336                            "column": 16
337                          },
338                          "end": {
339                            "line": 20,
340                            "column": 31
341                          }
342                        }
343                      },
344                      "second": {
345                        "type": "StringLiteral",
346                        "value": "inside interval!",
347                        "loc": {
348                          "start": {
349                            "line": 20,
350                            "column": 34
351                          },
352                          "end": {
353                            "line": 20,
354                            "column": 52
355                          }
356                        }
357                      },
358                      "loc": {
359                        "start": {
360                          "line": 20,
361                          "column": 9
362                        },
363                        "end": {
364                          "line": 20,
365                          "column": 53
366                        }
367                      }
368                    },
369                    {
370                      "type": "AssertStatement",
371                      "test": {
372                        "type": "LogicalExpression",
373                        "operator": "&&",
374                        "left": {
375                          "type": "BinaryExpression",
376                          "operator": "<",
377                          "left": {
378                            "type": "Identifier",
379                            "name": "x",
380                            "decorators": [],
381                            "loc": {
382                              "start": {
383                                "line": 21,
384                                "column": 17
385                              },
386                              "end": {
387                                "line": 21,
388                                "column": 18
389                              }
390                            }
391                          },
392                          "right": {
393                            "type": "NumberLiteral",
394                            "value": 10,
395                            "loc": {
396                              "start": {
397                                "line": 21,
398                                "column": 21
399                              },
400                              "end": {
401                                "line": 21,
402                                "column": 23
403                              }
404                            }
405                          },
406                          "loc": {
407                            "start": {
408                              "line": 21,
409                              "column": 17
410                            },
411                            "end": {
412                              "line": 21,
413                              "column": 23
414                            }
415                          }
416                        },
417                        "right": {
418                          "type": "BinaryExpression",
419                          "operator": ">",
420                          "left": {
421                            "type": "Identifier",
422                            "name": "x",
423                            "decorators": [],
424                            "loc": {
425                              "start": {
426                                "line": 21,
427                                "column": 27
428                              },
429                              "end": {
430                                "line": 21,
431                                "column": 28
432                              }
433                            }
434                          },
435                          "right": {
436                            "type": "NumberLiteral",
437                            "value": 2,
438                            "loc": {
439                              "start": {
440                                "line": 21,
441                                "column": 31
442                              },
443                              "end": {
444                                "line": 21,
445                                "column": 32
446                              }
447                            }
448                          },
449                          "loc": {
450                            "start": {
451                              "line": 21,
452                              "column": 27
453                            },
454                            "end": {
455                              "line": 21,
456                              "column": 32
457                            }
458                          }
459                        },
460                        "loc": {
461                          "start": {
462                            "line": 21,
463                            "column": 16
464                          },
465                          "end": {
466                            "line": 21,
467                            "column": 33
468                          }
469                        }
470                      },
471                      "second": {
472                        "type": "StringLiteral",
473                        "value": "outside interval!",
474                        "loc": {
475                          "start": {
476                            "line": 21,
477                            "column": 36
478                          },
479                          "end": {
480                            "line": 21,
481                            "column": 55
482                          }
483                        }
484                      },
485                      "loc": {
486                        "start": {
487                          "line": 21,
488                          "column": 9
489                        },
490                        "end": {
491                          "line": 21,
492                          "column": 56
493                        }
494                      }
495                    }
496                  ],
497                  "loc": {
498                    "start": {
499                      "line": 17,
500                      "column": 25
501                    },
502                    "end": {
503                      "line": 22,
504                      "column": 6
505                    }
506                  }
507                },
508                "loc": {
509                  "start": {
510                    "line": 17,
511                    "column": 9
512                  },
513                  "end": {
514                    "line": 22,
515                    "column": 6
516                  }
517                }
518              },
519              "loc": {
520                "start": {
521                  "line": 17,
522                  "column": 9
523                },
524                "end": {
525                  "line": 22,
526                  "column": 6
527                }
528              }
529            },
530            "overloads": [],
531            "decorators": [],
532            "loc": {
533              "start": {
534                "line": 17,
535                "column": 5
536              },
537              "end": {
538                "line": 22,
539                "column": 6
540              }
541            }
542          },
543          {
544            "type": "MethodDefinition",
545            "key": {
546              "type": "Identifier",
547              "name": "constructor",
548              "decorators": [],
549              "loc": {
550                "start": {
551                  "line": 1,
552                  "column": 1
553                },
554                "end": {
555                  "line": 1,
556                  "column": 1
557                }
558              }
559            },
560            "kind": "constructor",
561            "static": false,
562            "optional": false,
563            "computed": false,
564            "value": {
565              "type": "FunctionExpression",
566              "function": {
567                "type": "ScriptFunction",
568                "id": {
569                  "type": "Identifier",
570                  "name": "constructor",
571                  "decorators": [],
572                  "loc": {
573                    "start": {
574                      "line": 1,
575                      "column": 1
576                    },
577                    "end": {
578                      "line": 1,
579                      "column": 1
580                    }
581                  }
582                },
583                "generator": false,
584                "async": false,
585                "expression": false,
586                "params": [],
587                "body": {
588                  "type": "BlockStatement",
589                  "statements": [],
590                  "loc": {
591                    "start": {
592                      "line": 1,
593                      "column": 1
594                    },
595                    "end": {
596                      "line": 1,
597                      "column": 1
598                    }
599                  }
600                },
601                "loc": {
602                  "start": {
603                    "line": 1,
604                    "column": 1
605                  },
606                  "end": {
607                    "line": 1,
608                    "column": 1
609                  }
610                }
611              },
612              "loc": {
613                "start": {
614                  "line": 1,
615                  "column": 1
616                },
617                "end": {
618                  "line": 1,
619                  "column": 1
620                }
621              }
622            },
623            "overloads": [],
624            "decorators": [],
625            "loc": {
626              "start": {
627                "line": 23,
628                "column": 2
629              },
630              "end": {
631                "line": 23,
632                "column": 2
633              }
634            }
635          }
636        ],
637        "loc": {
638          "start": {
639            "line": 16,
640            "column": 20
641          },
642          "end": {
643            "line": 23,
644            "column": 2
645          }
646        }
647      },
648      "loc": {
649        "start": {
650          "line": 16,
651          "column": 1
652        },
653        "end": {
654          "line": 23,
655          "column": 2
656        }
657      }
658    },
659    {
660      "type": "ClassDeclaration",
661      "definition": {
662        "id": {
663          "type": "Identifier",
664          "name": "ETSGLOBAL",
665          "decorators": [],
666          "loc": {
667            "start": {
668              "line": 1,
669              "column": 1
670            },
671            "end": {
672              "line": 1,
673              "column": 1
674            }
675          }
676        },
677        "superClass": null,
678        "implements": [],
679        "body": [
680          {
681            "type": "MethodDefinition",
682            "key": {
683              "type": "Identifier",
684              "name": "_$init$_",
685              "decorators": [],
686              "loc": {
687                "start": {
688                  "line": 1,
689                  "column": 1
690                },
691                "end": {
692                  "line": 1,
693                  "column": 1
694                }
695              }
696            },
697            "kind": "method",
698            "accessibility": "public",
699            "static": true,
700            "optional": false,
701            "computed": false,
702            "value": {
703              "type": "FunctionExpression",
704              "function": {
705                "type": "ScriptFunction",
706                "id": {
707                  "type": "Identifier",
708                  "name": "_$init$_",
709                  "decorators": [],
710                  "loc": {
711                    "start": {
712                      "line": 1,
713                      "column": 1
714                    },
715                    "end": {
716                      "line": 1,
717                      "column": 1
718                    }
719                  }
720                },
721                "generator": false,
722                "async": false,
723                "expression": false,
724                "params": [],
725                "body": {
726                  "type": "BlockStatement",
727                  "statements": [],
728                  "loc": {
729                    "start": {
730                      "line": 1,
731                      "column": 1
732                    },
733                    "end": {
734                      "line": 1,
735                      "column": 1
736                    }
737                  }
738                },
739                "loc": {
740                  "start": {
741                    "line": 1,
742                    "column": 1
743                  },
744                  "end": {
745                    "line": 1,
746                    "column": 1
747                  }
748                }
749              },
750              "loc": {
751                "start": {
752                  "line": 1,
753                  "column": 1
754                },
755                "end": {
756                  "line": 1,
757                  "column": 1
758                }
759              }
760            },
761            "overloads": [],
762            "decorators": [],
763            "loc": {
764              "start": {
765                "line": 1,
766                "column": 1
767              },
768              "end": {
769                "line": 1,
770                "column": 1
771              }
772            }
773          }
774        ],
775        "loc": {
776          "start": {
777            "line": 1,
778            "column": 1
779          },
780          "end": {
781            "line": 1,
782            "column": 1
783          }
784        }
785      },
786      "loc": {
787        "start": {
788          "line": 1,
789          "column": 1
790        },
791        "end": {
792          "line": 1,
793          "column": 1
794        }
795      }
796    }
797  ],
798  "loc": {
799    "start": {
800      "line": 1,
801      "column": 1
802    },
803    "end": {
804      "line": 24,
805      "column": 1
806    }
807  }
808}
809