1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "VariableDeclaration",
6      "declarations": [
7        {
8          "type": "VariableDeclarator",
9          "id": {
10            "type": "Identifier",
11            "name": "a",
12            "decorators": [],
13            "loc": {
14              "start": {
15                "line": 17,
16                "column": 5
17              },
18              "end": {
19                "line": 17,
20                "column": 6
21              }
22            }
23          },
24          "init": {
25            "type": "ObjectExpression",
26            "properties": [
27              {
28                "type": "Property",
29                "method": false,
30                "shorthand": false,
31                "computed": false,
32                "key": {
33                  "type": "Identifier",
34                  "name": "foo",
35                  "decorators": [],
36                  "loc": {
37                    "start": {
38                      "line": 17,
39                      "column": 10
40                    },
41                    "end": {
42                      "line": 17,
43                      "column": 13
44                    }
45                  }
46                },
47                "value": {
48                  "type": "ObjectExpression",
49                  "properties": [
50                    {
51                      "type": "Property",
52                      "method": false,
53                      "shorthand": false,
54                      "computed": false,
55                      "key": {
56                        "type": "Identifier",
57                        "name": "bar",
58                        "decorators": [],
59                        "loc": {
60                          "start": {
61                            "line": 17,
62                            "column": 17
63                          },
64                          "end": {
65                            "line": 17,
66                            "column": 20
67                          }
68                        }
69                      },
70                      "value": {
71                        "type": "ObjectExpression",
72                        "properties": [
73                          {
74                            "type": "Property",
75                            "method": false,
76                            "shorthand": false,
77                            "computed": false,
78                            "key": {
79                              "type": "Identifier",
80                              "name": "baz",
81                              "decorators": [],
82                              "loc": {
83                                "start": {
84                                  "line": 17,
85                                  "column": 24
86                                },
87                                "end": {
88                                  "line": 17,
89                                  "column": 27
90                                }
91                              }
92                            },
93                            "value": {
94                              "type": "NumberLiteral",
95                              "value": 5,
96                              "loc": {
97                                "start": {
98                                  "line": 17,
99                                  "column": 30
100                                },
101                                "end": {
102                                  "line": 17,
103                                  "column": 31
104                                }
105                              }
106                            },
107                            "kind": "init",
108                            "loc": {
109                              "start": {
110                                "line": 17,
111                                "column": 24
112                              },
113                              "end": {
114                                "line": 17,
115                                "column": 31
116                              }
117                            }
118                          }
119                        ],
120                        "loc": {
121                          "start": {
122                            "line": 17,
123                            "column": 23
124                          },
125                          "end": {
126                            "line": 17,
127                            "column": 32
128                          }
129                        }
130                      },
131                      "kind": "init",
132                      "loc": {
133                        "start": {
134                          "line": 17,
135                          "column": 17
136                        },
137                        "end": {
138                          "line": 17,
139                          "column": 32
140                        }
141                      }
142                    }
143                  ],
144                  "loc": {
145                    "start": {
146                      "line": 17,
147                      "column": 16
148                    },
149                    "end": {
150                      "line": 17,
151                      "column": 33
152                    }
153                  }
154                },
155                "kind": "init",
156                "loc": {
157                  "start": {
158                    "line": 17,
159                    "column": 10
160                  },
161                  "end": {
162                    "line": 17,
163                    "column": 33
164                  }
165                }
166              }
167            ],
168            "loc": {
169              "start": {
170                "line": 17,
171                "column": 9
172              },
173              "end": {
174                "line": 17,
175                "column": 34
176              }
177            }
178          },
179          "loc": {
180            "start": {
181              "line": 17,
182              "column": 5
183            },
184            "end": {
185              "line": 17,
186              "column": 34
187            }
188          }
189        }
190      ],
191      "kind": "var",
192      "loc": {
193        "start": {
194          "line": 17,
195          "column": 1
196        },
197        "end": {
198          "line": 17,
199          "column": 35
200        }
201      }
202    },
203    {
204      "type": "VariableDeclaration",
205      "declarations": [
206        {
207          "type": "VariableDeclarator",
208          "id": {
209            "type": "Identifier",
210            "name": "b",
211            "typeAnnotation": {
212              "type": "TSNumberKeyword",
213              "loc": {
214                "start": {
215                  "line": 18,
216                  "column": 8
217                },
218                "end": {
219                  "line": 18,
220                  "column": 14
221                }
222              }
223            },
224            "decorators": [],
225            "loc": {
226              "start": {
227                "line": 18,
228                "column": 5
229              },
230              "end": {
231                "line": 18,
232                "column": 6
233              }
234            }
235          },
236          "init": null,
237          "loc": {
238            "start": {
239              "line": 18,
240              "column": 5
241            },
242            "end": {
243              "line": 18,
244              "column": 6
245            }
246          }
247        }
248      ],
249      "kind": "var",
250      "loc": {
251        "start": {
252          "line": 18,
253          "column": 1
254        },
255        "end": {
256          "line": 18,
257          "column": 15
258        }
259      }
260    },
261    {
262      "type": "ExpressionStatement",
263      "expression": {
264        "type": "AssignmentExpression",
265        "operator": "=",
266        "left": {
267          "type": "Identifier",
268          "name": "b",
269          "decorators": [],
270          "loc": {
271            "start": {
272              "line": 19,
273              "column": 1
274            },
275            "end": {
276              "line": 19,
277              "column": 2
278            }
279          }
280        },
281        "right": {
282          "type": "ChainExpression",
283          "expression": {
284            "type": "MemberExpression",
285            "object": {
286              "type": "MemberExpression",
287              "object": {
288                "type": "MemberExpression",
289                "object": {
290                  "type": "Identifier",
291                  "name": "a",
292                  "decorators": [],
293                  "loc": {
294                    "start": {
295                      "line": 19,
296                      "column": 5
297                    },
298                    "end": {
299                      "line": 19,
300                      "column": 6
301                    }
302                  }
303                },
304                "property": {
305                  "type": "Identifier",
306                  "name": "foo",
307                  "decorators": [],
308                  "loc": {
309                    "start": {
310                      "line": 19,
311                      "column": 7
312                    },
313                    "end": {
314                      "line": 19,
315                      "column": 10
316                    }
317                  }
318                },
319                "computed": false,
320                "optional": false,
321                "loc": {
322                  "start": {
323                    "line": 19,
324                    "column": 5
325                  },
326                  "end": {
327                    "line": 19,
328                    "column": 10
329                  }
330                }
331              },
332              "property": {
333                "type": "Identifier",
334                "name": "bar",
335                "decorators": [],
336                "loc": {
337                  "start": {
338                    "line": 19,
339                    "column": 12
340                  },
341                  "end": {
342                    "line": 19,
343                    "column": 15
344                  }
345                }
346              },
347              "computed": false,
348              "optional": true,
349              "loc": {
350                "start": {
351                  "line": 19,
352                  "column": 5
353                },
354                "end": {
355                  "line": 19,
356                  "column": 15
357                }
358              }
359            },
360            "property": {
361              "type": "Identifier",
362              "name": "baz",
363              "decorators": [],
364              "loc": {
365                "start": {
366                  "line": 19,
367                  "column": 16
368                },
369                "end": {
370                  "line": 19,
371                  "column": 19
372                }
373              }
374            },
375            "computed": false,
376            "optional": false,
377            "loc": {
378              "start": {
379                "line": 19,
380                "column": 5
381              },
382              "end": {
383                "line": 19,
384                "column": 19
385              }
386            }
387          },
388          "loc": {
389            "start": {
390              "line": 19,
391              "column": 5
392            },
393            "end": {
394              "line": 19,
395              "column": 19
396            }
397          }
398        },
399        "loc": {
400          "start": {
401            "line": 19,
402            "column": 1
403          },
404          "end": {
405            "line": 19,
406            "column": 19
407          }
408        }
409      },
410      "loc": {
411        "start": {
412          "line": 19,
413          "column": 1
414        },
415        "end": {
416          "line": 19,
417          "column": 20
418        }
419      }
420    }
421  ],
422  "loc": {
423    "start": {
424      "line": 1,
425      "column": 1
426    },
427    "end": {
428      "line": 20,
429      "column": 1
430    }
431  }
432}
433