• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2  "type": "Program",
3  "statements": [
4    {
5      "type": "FunctionDeclaration",
6      "function": {
7        "type": "ScriptFunction",
8        "id": {
9          "type": "Identifier",
10          "name": "foo",
11          "decorators": [],
12          "loc": {
13            "start": {
14              "line": 17,
15              "column": 10,
16              "program": "test-patterns.js"
17            },
18            "end": {
19              "line": 17,
20              "column": 13,
21              "program": "test-patterns.js"
22            }
23          }
24        },
25        "generator": false,
26        "async": false,
27        "expression": false,
28        "params": [
29          {
30            "type": "ObjectPattern",
31            "properties": [
32              {
33                "type": "Property",
34                "method": false,
35                "shorthand": true,
36                "computed": false,
37                "key": {
38                  "type": "Identifier",
39                  "name": "a",
40                  "decorators": [],
41                  "loc": {
42                    "start": {
43                      "line": 17,
44                      "column": 16,
45                      "program": "test-patterns.js"
46                    },
47                    "end": {
48                      "line": 17,
49                      "column": 17,
50                      "program": "test-patterns.js"
51                    }
52                  }
53                },
54                "value": {
55                  "type": "AssignmentPattern",
56                  "left": {
57                    "type": "Identifier",
58                    "name": "a",
59                    "decorators": [],
60                    "loc": {
61                      "start": {
62                        "line": 17,
63                        "column": 16,
64                        "program": "test-patterns.js"
65                      },
66                      "end": {
67                        "line": 17,
68                        "column": 17,
69                        "program": "test-patterns.js"
70                      }
71                    }
72                  },
73                  "right": {
74                    "type": "Identifier",
75                    "name": "b",
76                    "decorators": [],
77                    "loc": {
78                      "start": {
79                        "line": 17,
80                        "column": 20,
81                        "program": "test-patterns.js"
82                      },
83                      "end": {
84                        "line": 17,
85                        "column": 21,
86                        "program": "test-patterns.js"
87                      }
88                    }
89                  },
90                  "loc": {
91                    "start": {
92                      "line": 17,
93                      "column": 16,
94                      "program": "test-patterns.js"
95                    },
96                    "end": {
97                      "line": 17,
98                      "column": 21,
99                      "program": "test-patterns.js"
100                    }
101                  }
102                },
103                "kind": "init",
104                "loc": {
105                  "start": {
106                    "line": 17,
107                    "column": 16,
108                    "program": "test-patterns.js"
109                  },
110                  "end": {
111                    "line": 17,
112                    "column": 21,
113                    "program": "test-patterns.js"
114                  }
115                }
116              },
117              {
118                "type": "Property",
119                "method": false,
120                "shorthand": true,
121                "computed": false,
122                "key": {
123                  "type": "Identifier",
124                  "name": "c",
125                  "decorators": [],
126                  "loc": {
127                    "start": {
128                      "line": 17,
129                      "column": 23,
130                      "program": "test-patterns.js"
131                    },
132                    "end": {
133                      "line": 17,
134                      "column": 24,
135                      "program": "test-patterns.js"
136                    }
137                  }
138                },
139                "value": {
140                  "type": "Identifier",
141                  "name": "c",
142                  "decorators": [],
143                  "loc": {
144                    "start": {
145                      "line": 17,
146                      "column": 23,
147                      "program": "test-patterns.js"
148                    },
149                    "end": {
150                      "line": 17,
151                      "column": 24,
152                      "program": "test-patterns.js"
153                    }
154                  }
155                },
156                "kind": "init",
157                "loc": {
158                  "start": {
159                    "line": 17,
160                    "column": 23,
161                    "program": "test-patterns.js"
162                  },
163                  "end": {
164                    "line": 17,
165                    "column": 24,
166                    "program": "test-patterns.js"
167                  }
168                }
169              },
170              {
171                "type": "Property",
172                "method": false,
173                "shorthand": true,
174                "computed": false,
175                "key": {
176                  "type": "Identifier",
177                  "name": "d",
178                  "decorators": [],
179                  "loc": {
180                    "start": {
181                      "line": 17,
182                      "column": 26,
183                      "program": "test-patterns.js"
184                    },
185                    "end": {
186                      "line": 17,
187                      "column": 27,
188                      "program": "test-patterns.js"
189                    }
190                  }
191                },
192                "value": {
193                  "type": "AssignmentPattern",
194                  "left": {
195                    "type": "Identifier",
196                    "name": "d",
197                    "decorators": [],
198                    "loc": {
199                      "start": {
200                        "line": 17,
201                        "column": 26,
202                        "program": "test-patterns.js"
203                      },
204                      "end": {
205                        "line": 17,
206                        "column": 27,
207                        "program": "test-patterns.js"
208                      }
209                    }
210                  },
211                  "right": {
212                    "type": "LogicalExpression",
213                    "operator": "||",
214                    "left": {
215                      "type": "Identifier",
216                      "name": "a",
217                      "decorators": [],
218                      "loc": {
219                        "start": {
220                          "line": 17,
221                          "column": 28,
222                          "program": "test-patterns.js"
223                        },
224                        "end": {
225                          "line": 17,
226                          "column": 29,
227                          "program": "test-patterns.js"
228                        }
229                      }
230                    },
231                    "right": {
232                      "type": "Identifier",
233                      "name": "b",
234                      "decorators": [],
235                      "loc": {
236                        "start": {
237                          "line": 17,
238                          "column": 31,
239                          "program": "test-patterns.js"
240                        },
241                        "end": {
242                          "line": 17,
243                          "column": 32,
244                          "program": "test-patterns.js"
245                        }
246                      }
247                    },
248                    "loc": {
249                      "start": {
250                        "line": 17,
251                        "column": 28,
252                        "program": "test-patterns.js"
253                      },
254                      "end": {
255                        "line": 17,
256                        "column": 32,
257                        "program": "test-patterns.js"
258                      }
259                    }
260                  },
261                  "loc": {
262                    "start": {
263                      "line": 17,
264                      "column": 26,
265                      "program": "test-patterns.js"
266                    },
267                    "end": {
268                      "line": 17,
269                      "column": 32,
270                      "program": "test-patterns.js"
271                    }
272                  }
273                },
274                "kind": "init",
275                "loc": {
276                  "start": {
277                    "line": 17,
278                    "column": 26,
279                    "program": "test-patterns.js"
280                  },
281                  "end": {
282                    "line": 17,
283                    "column": 32,
284                    "program": "test-patterns.js"
285                  }
286                }
287              }
288            ],
289            "loc": {
290              "start": {
291                "line": 17,
292                "column": 15,
293                "program": "test-patterns.js"
294              },
295              "end": {
296                "line": 17,
297                "column": 33,
298                "program": "test-patterns.js"
299              }
300            }
301          }
302        ],
303        "body": {
304          "type": "BlockStatement",
305          "statements": [],
306          "loc": {
307            "start": {
308              "line": 17,
309              "column": 34,
310              "program": "test-patterns.js"
311            },
312            "end": {
313              "line": 17,
314              "column": 36,
315              "program": "test-patterns.js"
316            }
317          }
318        },
319        "loc": {
320          "start": {
321            "line": 17,
322            "column": 1,
323            "program": "test-patterns.js"
324          },
325          "end": {
326            "line": 17,
327            "column": 36,
328            "program": "test-patterns.js"
329          }
330        }
331      },
332      "loc": {
333        "start": {
334          "line": 17,
335          "column": 1,
336          "program": "test-patterns.js"
337        },
338        "end": {
339          "line": 17,
340          "column": 36,
341          "program": "test-patterns.js"
342        }
343      }
344    },
345    {
346      "type": "FunctionDeclaration",
347      "function": {
348        "type": "ScriptFunction",
349        "id": {
350          "type": "Identifier",
351          "name": "bar",
352          "decorators": [],
353          "loc": {
354            "start": {
355              "line": 18,
356              "column": 10,
357              "program": "test-patterns.js"
358            },
359            "end": {
360              "line": 18,
361              "column": 13,
362              "program": "test-patterns.js"
363            }
364          }
365        },
366        "generator": false,
367        "async": false,
368        "expression": false,
369        "params": [
370          {
371            "type": "Identifier",
372            "name": "a",
373            "decorators": [],
374            "loc": {
375              "start": {
376                "line": 18,
377                "column": 15,
378                "program": "test-patterns.js"
379              },
380              "end": {
381                "line": 18,
382                "column": 16,
383                "program": "test-patterns.js"
384              }
385            }
386          },
387          {
388            "type": "Identifier",
389            "name": "b",
390            "decorators": [],
391            "loc": {
392              "start": {
393                "line": 18,
394                "column": 17,
395                "program": "test-patterns.js"
396              },
397              "end": {
398                "line": 18,
399                "column": 18,
400                "program": "test-patterns.js"
401              }
402            }
403          },
404          {
405            "type": "AssignmentPattern",
406            "left": {
407              "type": "Identifier",
408              "name": "c",
409              "decorators": [],
410              "loc": {
411                "start": {
412                  "line": 18,
413                  "column": 19,
414                  "program": "test-patterns.js"
415                },
416                "end": {
417                  "line": 18,
418                  "column": 20,
419                  "program": "test-patterns.js"
420                }
421              }
422            },
423            "right": {
424              "type": "NumberLiteral",
425              "value": 1,
426              "loc": {
427                "start": {
428                  "line": 18,
429                  "column": 21,
430                  "program": "test-patterns.js"
431                },
432                "end": {
433                  "line": 18,
434                  "column": 22,
435                  "program": "test-patterns.js"
436                }
437              }
438            },
439            "loc": {
440              "start": {
441                "line": 18,
442                "column": 19,
443                "program": "test-patterns.js"
444              },
445              "end": {
446                "line": 18,
447                "column": 22,
448                "program": "test-patterns.js"
449              }
450            }
451          }
452        ],
453        "body": {
454          "type": "BlockStatement",
455          "statements": [],
456          "loc": {
457            "start": {
458              "line": 18,
459              "column": 23,
460              "program": "test-patterns.js"
461            },
462            "end": {
463              "line": 18,
464              "column": 25,
465              "program": "test-patterns.js"
466            }
467          }
468        },
469        "loc": {
470          "start": {
471            "line": 18,
472            "column": 1,
473            "program": "test-patterns.js"
474          },
475          "end": {
476            "line": 18,
477            "column": 25,
478            "program": "test-patterns.js"
479          }
480        }
481      },
482      "loc": {
483        "start": {
484          "line": 18,
485          "column": 1,
486          "program": "test-patterns.js"
487        },
488        "end": {
489          "line": 18,
490          "column": 25,
491          "program": "test-patterns.js"
492        }
493      }
494    },
495    {
496      "type": "FunctionDeclaration",
497      "function": {
498        "type": "ScriptFunction",
499        "id": {
500          "type": "Identifier",
501          "name": "foobar",
502          "decorators": [],
503          "loc": {
504            "start": {
505              "line": 19,
506              "column": 10,
507              "program": "test-patterns.js"
508            },
509            "end": {
510              "line": 19,
511              "column": 16,
512              "program": "test-patterns.js"
513            }
514          }
515        },
516        "generator": false,
517        "async": false,
518        "expression": false,
519        "params": [
520          {
521            "type": "AssignmentPattern",
522            "left": {
523              "type": "ArrayPattern",
524              "elements": [
525                {
526                  "type": "Identifier",
527                  "name": "a",
528                  "decorators": [],
529                  "loc": {
530                    "start": {
531                      "line": 20,
532                      "column": 4,
533                      "program": "test-patterns.js"
534                    },
535                    "end": {
536                      "line": 20,
537                      "column": 5,
538                      "program": "test-patterns.js"
539                    }
540                  }
541                }
542              ],
543              "loc": {
544                "start": {
545                  "line": 20,
546                  "column": 3,
547                  "program": "test-patterns.js"
548                },
549                "end": {
550                  "line": 20,
551                  "column": 6,
552                  "program": "test-patterns.js"
553                }
554              }
555            },
556            "right": {
557              "type": "NumberLiteral",
558              "value": 2,
559              "loc": {
560                "start": {
561                  "line": 20,
562                  "column": 7,
563                  "program": "test-patterns.js"
564                },
565                "end": {
566                  "line": 20,
567                  "column": 8,
568                  "program": "test-patterns.js"
569                }
570              }
571            },
572            "loc": {
573              "start": {
574                "line": 20,
575                "column": 3,
576                "program": "test-patterns.js"
577              },
578              "end": {
579                "line": 20,
580                "column": 8,
581                "program": "test-patterns.js"
582              }
583            }
584          },
585          {
586            "type": "ArrayPattern",
587            "elements": [
588              {
589                "type": "Identifier",
590                "name": "b",
591                "decorators": [],
592                "loc": {
593                  "start": {
594                    "line": 21,
595                    "column": 4,
596                    "program": "test-patterns.js"
597                  },
598                  "end": {
599                    "line": 21,
600                    "column": 5,
601                    "program": "test-patterns.js"
602                  }
603                }
604              }
605            ],
606            "loc": {
607              "start": {
608                "line": 21,
609                "column": 3,
610                "program": "test-patterns.js"
611              },
612              "end": {
613                "line": 21,
614                "column": 6,
615                "program": "test-patterns.js"
616              }
617            }
618          },
619          {
620            "type": "Identifier",
621            "name": "c",
622            "decorators": [],
623            "loc": {
624              "start": {
625                "line": 22,
626                "column": 3,
627                "program": "test-patterns.js"
628              },
629              "end": {
630                "line": 22,
631                "column": 4,
632                "program": "test-patterns.js"
633              }
634            }
635          },
636          {
637            "type": "ObjectPattern",
638            "properties": [],
639            "loc": {
640              "start": {
641                "line": 23,
642                "column": 3,
643                "program": "test-patterns.js"
644              },
645              "end": {
646                "line": 23,
647                "column": 5,
648                "program": "test-patterns.js"
649              }
650            }
651          },
652          {
653            "type": "ArrayPattern",
654            "elements": [],
655            "loc": {
656              "start": {
657                "line": 24,
658                "column": 3,
659                "program": "test-patterns.js"
660              },
661              "end": {
662                "line": 24,
663                "column": 5,
664                "program": "test-patterns.js"
665              }
666            }
667          }
668        ],
669        "body": {
670          "type": "BlockStatement",
671          "statements": [],
672          "loc": {
673            "start": {
674              "line": 25,
675              "column": 2,
676              "program": "test-patterns.js"
677            },
678            "end": {
679              "line": 25,
680              "column": 4,
681              "program": "test-patterns.js"
682            }
683          }
684        },
685        "loc": {
686          "start": {
687            "line": 19,
688            "column": 1,
689            "program": "test-patterns.js"
690          },
691          "end": {
692            "line": 25,
693            "column": 4,
694            "program": "test-patterns.js"
695          }
696        }
697      },
698      "loc": {
699        "start": {
700          "line": 19,
701          "column": 1,
702          "program": "test-patterns.js"
703        },
704        "end": {
705          "line": 25,
706          "column": 4,
707          "program": "test-patterns.js"
708        }
709      }
710    },
711    {
712      "type": "FunctionDeclaration",
713      "function": {
714        "type": "ScriptFunction",
715        "id": {
716          "type": "Identifier",
717          "name": "test1",
718          "decorators": [],
719          "loc": {
720            "start": {
721              "line": 26,
722              "column": 10,
723              "program": "test-patterns.js"
724            },
725            "end": {
726              "line": 26,
727              "column": 15,
728              "program": "test-patterns.js"
729            }
730          }
731        },
732        "generator": false,
733        "async": false,
734        "expression": false,
735        "params": [
736          {
737            "type": "RestElement",
738            "argument": {
739              "type": "Identifier",
740              "name": "rest",
741              "decorators": [],
742              "loc": {
743                "start": {
744                  "line": 26,
745                  "column": 19,
746                  "program": "test-patterns.js"
747                },
748                "end": {
749                  "line": 26,
750                  "column": 23,
751                  "program": "test-patterns.js"
752                }
753              }
754            },
755            "loc": {
756              "start": {
757                "line": 26,
758                "column": 16,
759                "program": "test-patterns.js"
760              },
761              "end": {
762                "line": 26,
763                "column": 23,
764                "program": "test-patterns.js"
765              }
766            }
767          }
768        ],
769        "body": {
770          "type": "BlockStatement",
771          "statements": [],
772          "loc": {
773            "start": {
774              "line": 26,
775              "column": 24,
776              "program": "test-patterns.js"
777            },
778            "end": {
779              "line": 26,
780              "column": 26,
781              "program": "test-patterns.js"
782            }
783          }
784        },
785        "loc": {
786          "start": {
787            "line": 26,
788            "column": 1,
789            "program": "test-patterns.js"
790          },
791          "end": {
792            "line": 26,
793            "column": 26,
794            "program": "test-patterns.js"
795          }
796        }
797      },
798      "loc": {
799        "start": {
800          "line": 26,
801          "column": 1,
802          "program": "test-patterns.js"
803        },
804        "end": {
805          "line": 26,
806          "column": 26,
807          "program": "test-patterns.js"
808        }
809      }
810    },
811    {
812      "type": "FunctionDeclaration",
813      "function": {
814        "type": "ScriptFunction",
815        "id": {
816          "type": "Identifier",
817          "name": "test2",
818          "decorators": [],
819          "loc": {
820            "start": {
821              "line": 27,
822              "column": 10,
823              "program": "test-patterns.js"
824            },
825            "end": {
826              "line": 27,
827              "column": 15,
828              "program": "test-patterns.js"
829            }
830          }
831        },
832        "generator": false,
833        "async": false,
834        "expression": false,
835        "params": [
836          {
837            "type": "RestElement",
838            "argument": {
839              "type": "ArrayPattern",
840              "elements": [
841                {
842                  "type": "RestElement",
843                  "argument": {
844                    "type": "ArrayPattern",
845                    "elements": [
846                      {
847                        "type": "RestElement",
848                        "argument": {
849                          "type": "Identifier",
850                          "name": "rest",
851                          "decorators": [],
852                          "loc": {
853                            "start": {
854                              "line": 27,
855                              "column": 27,
856                              "program": "test-patterns.js"
857                            },
858                            "end": {
859                              "line": 27,
860                              "column": 31,
861                              "program": "test-patterns.js"
862                            }
863                          }
864                        },
865                        "loc": {
866                          "start": {
867                            "line": 27,
868                            "column": 24,
869                            "program": "test-patterns.js"
870                          },
871                          "end": {
872                            "line": 27,
873                            "column": 31,
874                            "program": "test-patterns.js"
875                          }
876                        }
877                      }
878                    ],
879                    "loc": {
880                      "start": {
881                        "line": 27,
882                        "column": 23,
883                        "program": "test-patterns.js"
884                      },
885                      "end": {
886                        "line": 27,
887                        "column": 32,
888                        "program": "test-patterns.js"
889                      }
890                    }
891                  },
892                  "loc": {
893                    "start": {
894                      "line": 27,
895                      "column": 20,
896                      "program": "test-patterns.js"
897                    },
898                    "end": {
899                      "line": 27,
900                      "column": 32,
901                      "program": "test-patterns.js"
902                    }
903                  }
904                }
905              ],
906              "loc": {
907                "start": {
908                  "line": 27,
909                  "column": 19,
910                  "program": "test-patterns.js"
911                },
912                "end": {
913                  "line": 27,
914                  "column": 33,
915                  "program": "test-patterns.js"
916                }
917              }
918            },
919            "loc": {
920              "start": {
921                "line": 27,
922                "column": 16,
923                "program": "test-patterns.js"
924              },
925              "end": {
926                "line": 27,
927                "column": 33,
928                "program": "test-patterns.js"
929              }
930            }
931          }
932        ],
933        "body": {
934          "type": "BlockStatement",
935          "statements": [],
936          "loc": {
937            "start": {
938              "line": 27,
939              "column": 34,
940              "program": "test-patterns.js"
941            },
942            "end": {
943              "line": 27,
944              "column": 36,
945              "program": "test-patterns.js"
946            }
947          }
948        },
949        "loc": {
950          "start": {
951            "line": 27,
952            "column": 1,
953            "program": "test-patterns.js"
954          },
955          "end": {
956            "line": 27,
957            "column": 36,
958            "program": "test-patterns.js"
959          }
960        }
961      },
962      "loc": {
963        "start": {
964          "line": 27,
965          "column": 1,
966          "program": "test-patterns.js"
967        },
968        "end": {
969          "line": 27,
970          "column": 36,
971          "program": "test-patterns.js"
972        }
973      }
974    },
975    {
976      "type": "FunctionDeclaration",
977      "function": {
978        "type": "ScriptFunction",
979        "id": {
980          "type": "Identifier",
981          "name": "test3",
982          "decorators": [],
983          "loc": {
984            "start": {
985              "line": 28,
986              "column": 10,
987              "program": "test-patterns.js"
988            },
989            "end": {
990              "line": 28,
991              "column": 15,
992              "program": "test-patterns.js"
993            }
994          }
995        },
996        "generator": false,
997        "async": false,
998        "expression": false,
999        "params": [
1000          {
1001            "type": "ArrayPattern",
1002            "elements": [
1003              {
1004                "type": "Identifier",
1005                "name": "b",
1006                "decorators": [],
1007                "loc": {
1008                  "start": {
1009                    "line": 28,
1010                    "column": 17,
1011                    "program": "test-patterns.js"
1012                  },
1013                  "end": {
1014                    "line": 28,
1015                    "column": 18,
1016                    "program": "test-patterns.js"
1017                  }
1018                }
1019              },
1020              {
1021                "type": "ArrayPattern",
1022                "elements": [
1023                  {
1024                    "type": "Identifier",
1025                    "name": "a",
1026                    "decorators": [],
1027                    "loc": {
1028                      "start": {
1029                        "line": 28,
1030                        "column": 20,
1031                        "program": "test-patterns.js"
1032                      },
1033                      "end": {
1034                        "line": 28,
1035                        "column": 21,
1036                        "program": "test-patterns.js"
1037                      }
1038                    }
1039                  }
1040                ],
1041                "loc": {
1042                  "start": {
1043                    "line": 28,
1044                    "column": 19,
1045                    "program": "test-patterns.js"
1046                  },
1047                  "end": {
1048                    "line": 28,
1049                    "column": 22,
1050                    "program": "test-patterns.js"
1051                  }
1052                }
1053              }
1054            ],
1055            "loc": {
1056              "start": {
1057                "line": 28,
1058                "column": 16,
1059                "program": "test-patterns.js"
1060              },
1061              "end": {
1062                "line": 28,
1063                "column": 23,
1064                "program": "test-patterns.js"
1065              }
1066            }
1067          }
1068        ],
1069        "body": {
1070          "type": "BlockStatement",
1071          "statements": [],
1072          "loc": {
1073            "start": {
1074              "line": 28,
1075              "column": 24,
1076              "program": "test-patterns.js"
1077            },
1078            "end": {
1079              "line": 28,
1080              "column": 26,
1081              "program": "test-patterns.js"
1082            }
1083          }
1084        },
1085        "loc": {
1086          "start": {
1087            "line": 28,
1088            "column": 1,
1089            "program": "test-patterns.js"
1090          },
1091          "end": {
1092            "line": 28,
1093            "column": 26,
1094            "program": "test-patterns.js"
1095          }
1096        }
1097      },
1098      "loc": {
1099        "start": {
1100          "line": 28,
1101          "column": 1,
1102          "program": "test-patterns.js"
1103        },
1104        "end": {
1105          "line": 28,
1106          "column": 26,
1107          "program": "test-patterns.js"
1108        }
1109      }
1110    }
1111  ],
1112  "loc": {
1113    "start": {
1114      "line": 1,
1115      "column": 1,
1116      "program": "test-patterns.js"
1117    },
1118    "end": {
1119      "line": 28,
1120      "column": 26,
1121      "program": "test-patterns.js"
1122    }
1123  }
1124}
1125