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