parse-js 0.24.0

JavaScript parsing library
Documentation
{
  "$t": "VarDecl",
  "declarators": [
    {
      "initializer": {
        "$t": "CallExpr",
        "arguments": [
          {
            "$t": "CallArg",
            "spread": false,
            "value": {
              "$t": "UnaryExpr",
              "argument": {
                "$t": "LiteralNumberExpr",
                "value": 0.0
              },
              "operator": "Void",
              "parenthesised": false
            }
          }
        ],
        "callee": {
          "$t": "IdentifierExpr",
          "name": "d"
        },
        "optional_chaining": false,
        "parenthesised": false
      },
      "pattern": {
        "$t": "IdentifierPattern",
        "name": "f"
      }
    },
    {
      "initializer": {
        "$t": "ArrowFunctionExpr",
        "function": {
          "$t": "Function",
          "arrow": true,
          "async_": false,
          "body": {
            "$t": "FunctionBody",
            "body": [
              {
                "$t": "VarDecl",
                "declarators": [
                  {
                    "initializer": {
                      "$t": "CallExpr",
                      "arguments": [
                        {
                          "$t": "CallArg",
                          "spread": false,
                          "value": {
                            "$t": "CallExpr",
                            "arguments": [],
                            "callee": {
                              "$t": "MemberExpr",
                              "left": {
                                "$t": "IdentifierExpr",
                                "name": "t"
                              },
                              "optional_chaining": false,
                              "parenthesised": false,
                              "right": "current"
                            },
                            "optional_chaining": false,
                            "parenthesised": false
                          }
                        }
                      ],
                      "callee": {
                        "$t": "IdentifierExpr",
                        "name": "p"
                      },
                      "optional_chaining": false,
                      "parenthesised": false
                    },
                    "pattern": {
                      "$t": "ArrayPattern",
                      "elements": [
                        {
                          "default_value": null,
                          "target": {
                            "$t": "IdentifierPattern",
                            "name": "e"
                          }
                        },
                        {
                          "default_value": null,
                          "target": {
                            "$t": "IdentifierPattern",
                            "name": "n"
                          }
                        }
                      ],
                      "rest": null
                    }
                  }
                ],
                "export": false,
                "mode": "Const"
              },
              {
                "$t": "ReturnStmt",
                "value": {
                  "$t": "BinaryExpr",
                  "left": {
                    "$t": "CallExpr",
                    "arguments": [
                      {
                        "$t": "CallArg",
                        "spread": false,
                        "value": {
                          "$t": "ArrowFunctionExpr",
                          "function": {
                            "$t": "Function",
                            "arrow": true,
                            "async_": false,
                            "body": {
                              "$t": "FunctionBody",
                              "body": [
                                {
                                  "$t": "VarDecl",
                                  "declarators": [
                                    {
                                      "initializer": {
                                        "$t": "ArrowFunctionExpr",
                                        "function": {
                                          "$t": "Function",
                                          "arrow": true,
                                          "async_": false,
                                          "body": {
                                            "$t": "CallExpr",
                                            "arguments": [
                                              {
                                                "$t": "CallArg",
                                                "spread": false,
                                                "value": {
                                                  "$t": "CallExpr",
                                                  "arguments": [],
                                                  "callee": {
                                                    "$t": "MemberExpr",
                                                    "left": {
                                                      "$t": "IdentifierExpr",
                                                      "name": "t"
                                                    },
                                                    "optional_chaining": false,
                                                    "parenthesised": false,
                                                    "right": "current"
                                                  },
                                                  "optional_chaining": false,
                                                  "parenthesised": false
                                                }
                                              }
                                            ],
                                            "callee": {
                                              "$t": "IdentifierExpr",
                                              "name": "n"
                                            },
                                            "optional_chaining": false,
                                            "parenthesised": false
                                          },
                                          "generator": false,
                                          "parameters": []
                                        },
                                        "parenthesised": false
                                      },
                                      "pattern": {
                                        "$t": "IdentifierPattern",
                                        "name": "r"
                                      }
                                    }
                                  ],
                                  "export": false,
                                  "mode": "Const"
                                },
                                {
                                  "$t": "ReturnStmt",
                                  "value": {
                                    "$t": "BinaryExpr",
                                    "left": {
                                      "$t": "CallExpr",
                                      "arguments": [
                                        {
                                          "$t": "CallArg",
                                          "spread": false,
                                          "value": {
                                            "$t": "IdentifierExpr",
                                            "name": "r"
                                          }
                                        }
                                      ],
                                      "callee": {
                                        "$t": "MemberExpr",
                                        "left": {
                                          "$t": "IdentifierExpr",
                                          "name": "t"
                                        },
                                        "optional_chaining": false,
                                        "parenthesised": false,
                                        "right": "addListener"
                                      },
                                      "optional_chaining": false,
                                      "parenthesised": false
                                    },
                                    "operator": "Comma",
                                    "parenthesised": false,
                                    "right": {
                                      "$t": "ArrowFunctionExpr",
                                      "function": {
                                        "$t": "Function",
                                        "arrow": true,
                                        "async_": false,
                                        "body": {
                                          "$t": "CallExpr",
                                          "arguments": [
                                            {
                                              "$t": "CallArg",
                                              "spread": false,
                                              "value": {
                                                "$t": "IdentifierExpr",
                                                "name": "r"
                                              }
                                            }
                                          ],
                                          "callee": {
                                            "$t": "MemberExpr",
                                            "left": {
                                              "$t": "IdentifierExpr",
                                              "name": "t"
                                            },
                                            "optional_chaining": false,
                                            "parenthesised": false,
                                            "right": "removeListener"
                                          },
                                          "optional_chaining": false,
                                          "parenthesised": false
                                        },
                                        "generator": false,
                                        "parameters": []
                                      },
                                      "parenthesised": false
                                    }
                                  }
                                }
                              ]
                            },
                            "generator": false,
                            "parameters": []
                          },
                          "parenthesised": false
                        }
                      },
                      {
                        "$t": "CallArg",
                        "spread": false,
                        "value": {
                          "$t": "LiteralArrayExpr",
                          "elements": []
                        }
                      }
                    ],
                    "callee": {
                      "$t": "IdentifierExpr",
                      "name": "h"
                    },
                    "optional_chaining": false,
                    "parenthesised": false
                  },
                  "operator": "Comma",
                  "parenthesised": false,
                  "right": {
                    "$t": "IdentifierExpr",
                    "name": "e"
                  }
                }
              }
            ]
          },
          "generator": false,
          "parameters": [
            {
              "$t": "ParamDecl",
              "default_value": null,
              "pattern": {
                "$t": "IdentifierPattern",
                "name": "t"
              },
              "rest": false
            }
          ]
        },
        "parenthesised": false
      },
      "pattern": {
        "$t": "IdentifierPattern",
        "name": "y"
      }
    }
  ],
  "export": false,
  "mode": "Const"
}