[
  {
    "__docId__": 0,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/graph/DuplicateEdgeError.js",
    "memberof": null,
    "longname": "src/graph/DuplicateEdgeError.js",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "content": "/**\n * DuplicateEdgeError: error raised when adding duplicate Vertex value to Graph.\n */\nclass DuplicateEdgeError extends Error {\n  constructor(message){\n    super(message);\n\n    this.message = message;\n    this.name = \"DuplicateEdgeError\";\n  }\n}\n\nexport default DuplicateEdgeError;\n"
  },
  {
    "__docId__": 1,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "DuplicateEdgeError",
    "memberof": "src/graph/DuplicateEdgeError.js",
    "longname": "src/graph/DuplicateEdgeError.js~DuplicateEdgeError",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/graph/DuplicateEdgeError.js",
    "importStyle": "DuplicateEdgeError",
    "description": "DuplicateEdgeError: error raised when adding duplicate Vertex value to Graph.",
    "lineNumber": 4,
    "interface": false,
    "extends": [
      "Error"
    ]
  },
  {
    "__docId__": 2,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/graph/DuplicateEdgeError.js~DuplicateEdgeError",
    "longname": "src/graph/DuplicateEdgeError.js~DuplicateEdgeError#constructor",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "params": [
      {
        "name": "message",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 3,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "message",
    "memberof": "src/graph/DuplicateEdgeError.js~DuplicateEdgeError",
    "longname": "src/graph/DuplicateEdgeError.js~DuplicateEdgeError#message",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 4,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "name",
    "memberof": "src/graph/DuplicateEdgeError.js~DuplicateEdgeError",
    "longname": "src/graph/DuplicateEdgeError.js~DuplicateEdgeError#name",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 5,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/graph/DuplicateVertexError.js",
    "memberof": null,
    "longname": "src/graph/DuplicateVertexError.js",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "content": "/**\n * DuplicateVertexError: error raised when adding duplicate Vertex value to Graph.\n */\nclass DuplicateVertexError extends Error {\n  constructor(message){\n    super(message);\n\n    this.message = message;\n    this.name = \"DuplicateVertexError\";\n  }\n}\n\nexport default DuplicateVertexError;\n"
  },
  {
    "__docId__": 6,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "DuplicateVertexError",
    "memberof": "src/graph/DuplicateVertexError.js",
    "longname": "src/graph/DuplicateVertexError.js~DuplicateVertexError",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/graph/DuplicateVertexError.js",
    "importStyle": "DuplicateVertexError",
    "description": "DuplicateVertexError: error raised when adding duplicate Vertex value to Graph.",
    "lineNumber": 4,
    "interface": false,
    "extends": [
      "Error"
    ]
  },
  {
    "__docId__": 7,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/graph/DuplicateVertexError.js~DuplicateVertexError",
    "longname": "src/graph/DuplicateVertexError.js~DuplicateVertexError#constructor",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "params": [
      {
        "name": "message",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 8,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "message",
    "memberof": "src/graph/DuplicateVertexError.js~DuplicateVertexError",
    "longname": "src/graph/DuplicateVertexError.js~DuplicateVertexError#message",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 9,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "name",
    "memberof": "src/graph/DuplicateVertexError.js~DuplicateVertexError",
    "longname": "src/graph/DuplicateVertexError.js~DuplicateVertexError#name",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 10,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/graph/Edge.js",
    "memberof": null,
    "longname": "src/graph/Edge.js",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "content": "/**\n * Edge: represents an edge that can be added to a Graph instance.\n */\nclass Edge {\n  constructor(startVertex, endVertex){\n    this.startVertex = startVertex;\n    this.endVertex = endVertex;\n  }\n}\n\nexport default Edge;\n"
  },
  {
    "__docId__": 11,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Edge",
    "memberof": "src/graph/Edge.js",
    "longname": "src/graph/Edge.js~Edge",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/graph/Edge.js",
    "importStyle": "Edge",
    "description": "Edge: represents an edge that can be added to a Graph instance.",
    "lineNumber": 4,
    "interface": false
  },
  {
    "__docId__": 12,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/graph/Edge.js~Edge",
    "longname": "src/graph/Edge.js~Edge#constructor",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "params": [
      {
        "name": "startVertex",
        "types": [
          "*"
        ]
      },
      {
        "name": "endVertex",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 13,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "startVertex",
    "memberof": "src/graph/Edge.js~Edge",
    "longname": "src/graph/Edge.js~Edge#startVertex",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 14,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "endVertex",
    "memberof": "src/graph/Edge.js~Edge",
    "longname": "src/graph/Edge.js~Edge#endVertex",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 15,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/graph/Graph.js",
    "memberof": null,
    "longname": "src/graph/Graph.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Edge from './Edge';\nimport Vertex from './Vertex';\nimport DuplicateVertexError from './DuplicateVertexError';\nimport DuplicateEdgeError from './DuplicateEdgeError';\n\n/**\n * Graph: represents a undirected graph data structure.\n * Usage: let graph = new Graph();\n *        graph.addVertex('A');\n *        graph.addVertex('B');\n *        graph.addEdge('A','B');\n */\nclass Graph {\n  constructor(){\n    this._vertices = [];\n    this._edges = [];\n  }\n\n  /**\n   * @return {Array} array of all Vertex instances in this graph.\n   */\n  getVertices(){\n    return this._vertices;\n  }\n\n  /**\n   * @param {value} value to find in the graph.\n   * @return {Boolean} true if any vertex has this value else false\n   */\n  hasVertexWithValue(value){\n    var vertexValues = this.getVertexValues();\n    return !!~vertexValues.indexOf(value);\n  }\n\n  /**\n   * @return {Array} array of values in all graph vertices.\n   */\n  getVertexValues(){\n    return this._vertices.map((vertex) => {\n      return vertex.getValue();\n    });\n  }\n\n  /**\n   * @param {value} value to set on the vertex\n   * @throws {DuplicateVertexError} when adding vertex whose value exists in graph.\n   * @return {Graph} current instance of graph.\n   */\n  addVertex(value, vertex_class=Vertex){\n    if (this.hasVertexWithValue(value)){\n      throw new DuplicateVertexError(\"Cannot add duplicate value '\" + value.toString() + \"' to graph.\");\n    } else {\n      var vertex = new vertex_class(value);\n      this._vertices.push(vertex);\n    }\n    return this;\n  }\n\n  /**\n   * @param {values} array of values to add to the graph\n   * @return {Graph} current instance of graph.\n   */\n  addVerticies(values){\n    values.forEach((value) => {\n      this.addVertex(value);\n    });\n    return this;\n  }\n\n  /**\n   * @param {value} value\n   * @return {Vertex} instance of Vertex in graph with value, else undefined\n   */\n  getVertexByValue(value){\n    var vertices = this.getVertices();\n    var matching = vertices.filter((vertex) => {\n      return vertex.value === value;\n    });\n\n    if (matching.length > 0){\n      return matching[0];\n    }\n\n    return undefined;\n  }\n\n  /**\n   * @param {startVertex} Vertex (or value of Vertex) in graph to start\n   * @param {endVertex} Vertex (or value of Vertex) in graph to end\n   * @throws {DuplicateEdgeError} when adding edge whose value exists in graph.\n   * @return {Graph} current instance of graph.\n   */\n   addEdge(startVertex, endVertex){\n     if (!(startVertex instanceof Vertex)){\n       startVertex = this.getVertexByValue(startVertex);\n     }\n\n     if (!(endVertex instanceof Vertex)){\n       endVertex = this.getVertexByValue(endVertex);\n     }\n\n     if (this.hasEdge(startVertex.value, endVertex.value)){\n       throw new DuplicateEdgeError(\"Cannot add duplicate edge between '\" + startVertex.value + \"' and '\" + endVertex.value + \"' to graph.\");\n     }\n\n     var edge = new Edge(startVertex, endVertex);\n     this._edges.push(edge);\n\n     // since this undirected graph, edges must go both ways\n     var reverseEdge = new Edge(endVertex, startVertex);\n     this._edges.push(reverseEdge);\n\n     return this;\n   }\n\n   /**\n    * @return {Array} array of Edge instances present in Graph.\n    */\n   getEdges(){\n     return this._edges;\n   }\n\n   /**\n    * @param {startValue} start value of edge to locate\n    * @param {endValue} end value of edge to locate\n    * @return {Edge} returns Edge instance in Graph if exists, otherwise returns undefined\n    */\n   getEdgeByValues(startValue, endValue){\n     let edges = this.getEdges();\n     let matching = edges.filter((edge) => {\n       return edge.startVertex.value === startValue && edge.endVertex.value === endValue;\n     });\n\n     if (matching.length > 0){\n       return matching[0];\n     }\n\n     return undefined;\n   }\n\n   /**\n    * @param {startVertex} start value of edge to locate\n    * @param {endVertex} end value of edge to locate\n    * @return {Boolean} true if any edge has these start and end values else false\n    */\n   hasEdge(startVertex, endVertex){\n     return !!this.getEdgeByValues(startVertex, endVertex);\n   }\n\n   /**\n    * @return {Array} array of arrays; each entry represents adjacency for row;\n    *         each entry in each sub-array represents adjacency for column;\n    *         if A[i][j] = 1, there is an edge from i to j.\n    */\n   getAdjacencyMatrix(){\n     let matrix = [];\n     let vertices = this.getVertices();\n     // where N = number of vertices, initialize N X N zero matrix\n     vertices.forEach((vertex) => {\n      matrix.push(new Array(vertices.length).fill(0));\n     });\n\n     // if edge exists for A[i][j] (and A[j][i]) set cell to 1\n     let edges = this.getEdges();\n     let vertexValues = this.getVertexValues();\n     edges.forEach((edge) => {\n       let startValue = edge.startVertex.value;\n       let endValue = edge.endVertex.value;\n       let startIndex = vertexValues.indexOf(startValue);\n       let endIndex = vertexValues.indexOf(endValue);\n       matrix[startIndex][endIndex] = 1;\n       matrix[endIndex][startIndex] = 1;\n     });\n     return matrix;\n   }\n\n   /**\n    * @return {Array} given Vertex A, return all values from vertices connected to A by edges.\n    */\n   getEdgesByVertex(vertex){\n     if (!(vertex instanceof Vertex)){\n       vertex = this.getVertexByValue(vertex);\n     }\n\n     let edges = this.getEdges();\n     let matching = edges.filter((edge) => {\n       return edge.startVertex.value === vertex.value;\n     });\n\n     return matching.map( (edge) => {\n       return edge.endVertex.value;\n     });\n   }\n\n   /**\n    * @return {Object} each Object key represents a vertex in graph;\n    * value at each key is an array of vertex values found in edge destinations.\n    */\n    getAdjacencyList(){\n      var list = {};\n      let vertices = this.getVertices();\n      vertices.forEach((vertex) => {\n        list[vertex.value] = this.getEdgesByVertex(vertex);\n      });\n      return list;\n    }\n}\n\nexport default Graph;\n"
  },
  {
    "__docId__": 16,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Graph",
    "memberof": "src/graph/Graph.js",
    "longname": "src/graph/Graph.js~Graph",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/graph/Graph.js",
    "importStyle": "Graph",
    "description": "Graph: represents a undirected graph data structure.\nUsage: let graph = new Graph();\n       graph.addVertex('A');\n       graph.addVertex('B');\n       graph.addEdge('A','B');",
    "lineNumber": 13,
    "interface": false
  },
  {
    "__docId__": 17,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#constructor",
    "access": null,
    "description": null,
    "lineNumber": 14,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 18,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_vertices",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#_vertices",
    "access": null,
    "description": null,
    "lineNumber": 15,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 19,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_edges",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#_edges",
    "access": null,
    "description": null,
    "lineNumber": 16,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 20,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getVertices",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#getVertices",
    "access": null,
    "description": "",
    "lineNumber": 22,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Array"
      ],
      "spread": false,
      "description": "array of all Vertex instances in this graph."
    },
    "generator": false
  },
  {
    "__docId__": 21,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hasVertexWithValue",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#hasVertexWithValue",
    "access": null,
    "description": "",
    "lineNumber": 30,
    "params": [
      {
        "nullable": null,
        "types": [
          "value"
        ],
        "spread": false,
        "optional": false,
        "name": "value",
        "description": "to find in the graph."
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Boolean"
      ],
      "spread": false,
      "description": "true if any vertex has this value else false"
    },
    "generator": false
  },
  {
    "__docId__": 22,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getVertexValues",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#getVertexValues",
    "access": null,
    "description": "",
    "lineNumber": 38,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Array"
      ],
      "spread": false,
      "description": "array of values in all graph vertices."
    },
    "generator": false
  },
  {
    "__docId__": 23,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "addVertex",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#addVertex",
    "access": null,
    "description": "",
    "lineNumber": 49,
    "params": [
      {
        "nullable": null,
        "types": [
          "value"
        ],
        "spread": false,
        "optional": false,
        "name": "value",
        "description": "to set on the vertex"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Graph"
      ],
      "spread": false,
      "description": "current instance of graph."
    },
    "throws": [
      {
        "types": [
          "DuplicateVertexError"
        ],
        "description": "when adding vertex whose value exists in graph."
      }
    ],
    "generator": false
  },
  {
    "__docId__": 24,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "addVerticies",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#addVerticies",
    "access": null,
    "description": "",
    "lineNumber": 63,
    "params": [
      {
        "nullable": null,
        "types": [
          "values"
        ],
        "spread": false,
        "optional": false,
        "name": "array",
        "description": "of values to add to the graph"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Graph"
      ],
      "spread": false,
      "description": "current instance of graph."
    },
    "generator": false
  },
  {
    "__docId__": 25,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getVertexByValue",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#getVertexByValue",
    "access": null,
    "description": "",
    "lineNumber": 74,
    "params": [
      {
        "nullable": null,
        "types": [
          "value"
        ],
        "spread": false,
        "optional": false,
        "name": "value",
        "description": ""
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Vertex"
      ],
      "spread": false,
      "description": "instance of Vertex in graph with value, else undefined"
    },
    "generator": false
  },
  {
    "__docId__": 26,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "addEdge",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#addEdge",
    "access": null,
    "description": "",
    "lineNumber": 93,
    "params": [
      {
        "nullable": null,
        "types": [
          "startVertex"
        ],
        "spread": false,
        "optional": false,
        "name": "Vertex",
        "description": "(or value of Vertex) in graph to start"
      },
      {
        "nullable": null,
        "types": [
          "endVertex"
        ],
        "spread": false,
        "optional": false,
        "name": "Vertex",
        "description": "(or value of Vertex) in graph to end"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Graph"
      ],
      "spread": false,
      "description": "current instance of graph."
    },
    "throws": [
      {
        "types": [
          "DuplicateEdgeError"
        ],
        "description": "when adding edge whose value exists in graph."
      }
    ],
    "generator": false
  },
  {
    "__docId__": 27,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getEdges",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#getEdges",
    "access": null,
    "description": "",
    "lineNumber": 119,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Array"
      ],
      "spread": false,
      "description": "array of Edge instances present in Graph."
    },
    "generator": false
  },
  {
    "__docId__": 28,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getEdgeByValues",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#getEdgeByValues",
    "access": null,
    "description": "",
    "lineNumber": 128,
    "params": [
      {
        "nullable": null,
        "types": [
          "startValue"
        ],
        "spread": false,
        "optional": false,
        "name": "start",
        "description": "value of edge to locate"
      },
      {
        "nullable": null,
        "types": [
          "endValue"
        ],
        "spread": false,
        "optional": false,
        "name": "end",
        "description": "value of edge to locate"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Edge"
      ],
      "spread": false,
      "description": "returns Edge instance in Graph if exists, otherwise returns undefined"
    },
    "generator": false
  },
  {
    "__docId__": 29,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hasEdge",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#hasEdge",
    "access": null,
    "description": "",
    "lineNumber": 146,
    "params": [
      {
        "nullable": null,
        "types": [
          "startVertex"
        ],
        "spread": false,
        "optional": false,
        "name": "start",
        "description": "value of edge to locate"
      },
      {
        "nullable": null,
        "types": [
          "endVertex"
        ],
        "spread": false,
        "optional": false,
        "name": "end",
        "description": "value of edge to locate"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Boolean"
      ],
      "spread": false,
      "description": "true if any edge has these start and end values else false"
    },
    "generator": false
  },
  {
    "__docId__": 30,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getAdjacencyMatrix",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#getAdjacencyMatrix",
    "access": null,
    "description": "",
    "lineNumber": 155,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Array"
      ],
      "spread": false,
      "description": "array of arrays; each entry represents adjacency for row;\n        each entry in each sub-array represents adjacency for column;\n        if A[i][j] = 1, there is an edge from i to j."
    },
    "generator": false
  },
  {
    "__docId__": 31,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getEdgesByVertex",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#getEdgesByVertex",
    "access": null,
    "description": "",
    "lineNumber": 180,
    "params": [
      {
        "name": "vertex",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Array"
      ],
      "spread": false,
      "description": "given Vertex A, return all values from vertices connected to A by edges."
    },
    "generator": false
  },
  {
    "__docId__": 32,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getAdjacencyList",
    "memberof": "src/graph/Graph.js~Graph",
    "longname": "src/graph/Graph.js~Graph#getAdjacencyList",
    "access": null,
    "description": "",
    "lineNumber": 199,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Object"
      ],
      "spread": false,
      "description": "each Object key represents a vertex in graph;\nvalue at each key is an array of vertex values found in edge destinations."
    },
    "generator": false
  },
  {
    "__docId__": 33,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/graph/Vertex.js",
    "memberof": null,
    "longname": "src/graph/Vertex.js",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "content": "/**\n * Vertex: represents a vertex that can be added to a Graph instance.\n */\nclass Vertex {\n  constructor(value){\n    this.value = value;\n  }\n\n  getValue(){\n    return this.value;\n  }\n}\n\nexport default Vertex;\n"
  },
  {
    "__docId__": 34,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Vertex",
    "memberof": "src/graph/Vertex.js",
    "longname": "src/graph/Vertex.js~Vertex",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/graph/Vertex.js",
    "importStyle": "Vertex",
    "description": "Vertex: represents a vertex that can be added to a Graph instance.",
    "lineNumber": 4,
    "interface": false
  },
  {
    "__docId__": 35,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/graph/Vertex.js~Vertex",
    "longname": "src/graph/Vertex.js~Vertex#constructor",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "params": [
      {
        "name": "value",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 36,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "value",
    "memberof": "src/graph/Vertex.js~Vertex",
    "longname": "src/graph/Vertex.js~Vertex#value",
    "access": null,
    "description": null,
    "lineNumber": 6,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 37,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getValue",
    "memberof": "src/graph/Vertex.js~Vertex",
    "longname": "src/graph/Vertex.js~Vertex#getValue",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "return": {
      "types": [
        "*"
      ]
    },
    "generator": false
  },
  {
    "__docId__": 38,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/linkedlist/LinkedList.js",
    "memberof": null,
    "longname": "src/linkedlist/LinkedList.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import Node from './Node';\n\n/**\n * LinkedList: represents a (singly, non-circular) linked list.\n */\nclass LinkedList {\n  constructor(){\n    this.head = undefined;\n  }\n\n  /**\n   * Return the head node of the linked list.\n   * @return {Node} true if any vertex has this value else false\n   */\n  getHead(){\n    return this.head;\n  }\n\n  /**\n   * Sets the node at the head of the LinkedList to the node provided.\n   * @param {Node} value to find in the graph.\n   * @return {void}\n   */\n  setHead(node){\n    this.head = node;\n  }\n\n  /**\n   * @param {element} creates a new Node with element as value and appends to end of LinkedList\n   * @return {void}\n   */\n  append(element){\n    let node = new Node(element);\n    if (!this.getHead()){\n      this.setHead(node);\n    } else {\n      let lastElement = this.getLastNode();\n      lastElement.setNext(node);\n    }\n  }\n\n  /**\n   * Inserts a new Node with element value at specified position LinkedList. Index begins at 0.\n   * @param index {Number} position in LinkedList at which to insert new element\n   * @param {element} creates a new Node with element as value and appends to end of LinkedList\n   * @return {void}\n   */\n  insert(index, element){\n    let nodeToInsert = new Node(element);\n    if (index === 0){\n      // we're inserting at the head of the list\n      let currentHead = this.getHead();\n      if (currentHead){\n        nodeToInsert.setNext(currentHead);\n        this.setHead(nodeToInsert);\n      }\n    } else {\n      let previousNode = this.getNodeAtIndex(index-1);\n      if (previousNode){\n        // get next node in the list if there is one\n        let nodeAtIndex = previousNode.getNext();\n        // set next node to our new node\n        previousNode.setNext(nodeToInsert);\n        if (nodeAtIndex){\n          // break the chain and insert\n          nodeToInsert.setNext(nodeAtIndex);\n        }\n      }\n    }\n  }\n\n  /**\n   * Retrieves the node found at the provided index. If index is out of range or list is empty, returns undefined.\n   * @param index {Number} position in LinkedList at which to retrieve the node.\n   * @return {Node}\n   */\n  getNodeAtIndex(index){\n    if (this.isEmpty()){\n      return undefined;\n    }\n    let currentIndex,\n        currentNode = this.getHead();\n    for (currentIndex = 1; currentIndex <= index; currentIndex++){\n      currentNode = currentNode.getNext();\n      if (typeof currentNode === 'undefined'){\n        break;\n      }\n    }\n    return currentNode;\n  }\n\n  /**\n   * Retrieves the final element in the list.\n   * @return {Node}\n   */\n  getLastNode(){\n    let lastNode = this.getHead();\n    while (lastNode.hasNext()){\n      lastNode = lastNode.getNext();\n    }\n    return lastNode;\n  }\n\n  /**\n   * Returns true if the list contains zero nodes.\n   * @return {Boolean}\n   */\n  isEmpty(element){\n    if (!this.getHead()){\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Returns the count of the number of nodes in the list\n   * @return {Number}\n   */\n  count(){\n    if (this.isEmpty()){\n      return 0;\n    } else {\n      let lastIndex = 1;\n      let lastNode = this.getHead();\n      while (lastNode.hasNext()){\n        lastNode = lastNode.getNext();\n        lastIndex++\n      }\n      return lastIndex;\n    }\n  }\n}\n\nexport default LinkedList;\n"
  },
  {
    "__docId__": 39,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "LinkedList",
    "memberof": "src/linkedlist/LinkedList.js",
    "longname": "src/linkedlist/LinkedList.js~LinkedList",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/linkedlist/LinkedList.js",
    "importStyle": "LinkedList",
    "description": "LinkedList: represents a (singly, non-circular) linked list.",
    "lineNumber": 6,
    "interface": false
  },
  {
    "__docId__": 40,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#constructor",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 41,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "head",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#head",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 42,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getHead",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#getHead",
    "access": null,
    "description": "Return the head node of the linked list.",
    "lineNumber": 15,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Node"
      ],
      "spread": false,
      "description": "true if any vertex has this value else false"
    },
    "generator": false
  },
  {
    "__docId__": 43,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "setHead",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#setHead",
    "access": null,
    "description": "Sets the node at the head of the LinkedList to the node provided.",
    "lineNumber": 24,
    "params": [
      {
        "nullable": null,
        "types": [
          "Node"
        ],
        "spread": false,
        "optional": false,
        "name": "value",
        "description": "to find in the graph."
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "void"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 44,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "head",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#head",
    "access": null,
    "description": null,
    "lineNumber": 25,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 45,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "append",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#append",
    "access": null,
    "description": "",
    "lineNumber": 32,
    "params": [
      {
        "nullable": null,
        "types": [
          "element"
        ],
        "spread": false,
        "optional": false,
        "name": "creates",
        "description": "a new Node with element as value and appends to end of LinkedList"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "void"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 46,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "insert",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#insert",
    "access": null,
    "description": "Inserts a new Node with element value at specified position LinkedList. Index begins at 0.",
    "lineNumber": 48,
    "params": [
      {
        "nullable": null,
        "types": [
          "*"
        ],
        "spread": false,
        "optional": false,
        "name": "index",
        "description": "{Number} position in LinkedList at which to insert new element"
      },
      {
        "nullable": null,
        "types": [
          "element"
        ],
        "spread": false,
        "optional": false,
        "name": "creates",
        "description": "a new Node with element as value and appends to end of LinkedList"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "void"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 47,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getNodeAtIndex",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#getNodeAtIndex",
    "access": null,
    "description": "Retrieves the node found at the provided index. If index is out of range or list is empty, returns undefined.",
    "lineNumber": 77,
    "params": [
      {
        "nullable": null,
        "types": [
          "*"
        ],
        "spread": false,
        "optional": false,
        "name": "index",
        "description": "{Number} position in LinkedList at which to retrieve the node."
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Node"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 48,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getLastNode",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#getLastNode",
    "access": null,
    "description": "Retrieves the final element in the list.",
    "lineNumber": 96,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Node"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 49,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "isEmpty",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#isEmpty",
    "access": null,
    "description": "Returns true if the list contains zero nodes.",
    "lineNumber": 108,
    "params": [
      {
        "name": "element",
        "types": [
          "*"
        ]
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Boolean"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 50,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "count",
    "memberof": "src/linkedlist/LinkedList.js~LinkedList",
    "longname": "src/linkedlist/LinkedList.js~LinkedList#count",
    "access": null,
    "description": "Returns the count of the number of nodes in the list",
    "lineNumber": 119,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Number"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 51,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/linkedlist/Node.js",
    "memberof": null,
    "longname": "src/linkedlist/Node.js",
    "access": null,
    "description": null,
    "lineNumber": 7,
    "content": "/**\n * Node: an element to append or insert into a LinkedList\n * Usage: let node = new Node('A');\n *        let nextNode = new Node('B');\n *        node.setNext(nextNode);\n */\nclass Node {\n  constructor(element){\n    this.element = element;\n    this.next = undefined;\n    this.previous = undefined; // for doubly linked excitement!\n  }\n\n  /**\n   * Set the next node of this node to the Node instance provided.\n   * @param {Node} The node to set as the next.\n   * @return {void}\n   */\n  setNext(node){\n    this.next = node;\n  }\n\n  /**\n   * Get the next node of this node to the Node instance provided.\n   * @return {Node} the next node, if present.\n   */\n  getNext(){\n    return this.next;\n  }\n\n  /**\n   * Returns true if the node has a next node specified.\n   * @return {Boolean}\n   */\n  hasNext(){\n    return !!this.next;\n  }\n}\n\nexport default Node;\n"
  },
  {
    "__docId__": 52,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Node",
    "memberof": "src/linkedlist/Node.js",
    "longname": "src/linkedlist/Node.js~Node",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/linkedlist/Node.js",
    "importStyle": "Node",
    "description": "Node: an element to append or insert into a LinkedList\nUsage: let node = new Node('A');\n       let nextNode = new Node('B');\n       node.setNext(nextNode);",
    "lineNumber": 7,
    "interface": false
  },
  {
    "__docId__": 53,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/linkedlist/Node.js~Node",
    "longname": "src/linkedlist/Node.js~Node#constructor",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "undocument": true,
    "params": [
      {
        "name": "element",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 54,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "element",
    "memberof": "src/linkedlist/Node.js~Node",
    "longname": "src/linkedlist/Node.js~Node#element",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 55,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "next",
    "memberof": "src/linkedlist/Node.js~Node",
    "longname": "src/linkedlist/Node.js~Node#next",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 56,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "previous",
    "memberof": "src/linkedlist/Node.js~Node",
    "longname": "src/linkedlist/Node.js~Node#previous",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 57,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "setNext",
    "memberof": "src/linkedlist/Node.js~Node",
    "longname": "src/linkedlist/Node.js~Node#setNext",
    "access": null,
    "description": "Set the next node of this node to the Node instance provided.",
    "lineNumber": 19,
    "params": [
      {
        "nullable": null,
        "types": [
          "Node"
        ],
        "spread": false,
        "optional": false,
        "name": "The",
        "description": "node to set as the next."
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "void"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 58,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "next",
    "memberof": "src/linkedlist/Node.js~Node",
    "longname": "src/linkedlist/Node.js~Node#next",
    "access": null,
    "description": null,
    "lineNumber": 20,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 59,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "getNext",
    "memberof": "src/linkedlist/Node.js~Node",
    "longname": "src/linkedlist/Node.js~Node#getNext",
    "access": null,
    "description": "Get the next node of this node to the Node instance provided.",
    "lineNumber": 27,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Node"
      ],
      "spread": false,
      "description": "the next node, if present."
    },
    "generator": false
  },
  {
    "__docId__": 60,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "hasNext",
    "memberof": "src/linkedlist/Node.js~Node",
    "longname": "src/linkedlist/Node.js~Node#hasNext",
    "access": null,
    "description": "Returns true if the node has a next node specified.",
    "lineNumber": 35,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Boolean"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 61,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/queue/Queue.js",
    "memberof": null,
    "longname": "src/queue/Queue.js",
    "access": null,
    "description": null,
    "lineNumber": 8,
    "content": "/**\n * Stack: FIFO data structure\n * Usage: let queue = new Queue();\n *        queue.enqueue('A');\n *        queue.enqueue('B');\n *        queue.dequeue();  => A'\n */\nclass Queue {\n  constructor(){\n    this._items = [];\n  }\n\n  /**\n   * Enqueues an item to the front of the Queue.\n   * @param {item} item to set on the vertex\n   * @return {Queue} current instance of graph.\n   */\n  enqueue(item){\n    this._items.push(item);\n    return this;\n  }\n\n  /**\n   * Dequeues the oldest item enqueued into the queue.\n   * @return {<Item>}\n   */\n  dequeue(){\n    if (this.isEmpty()){\n      return undefined;\n    }\n    return this._items.splice(0, 1)[0];\n  }\n\n  /**\n   * Returns true if the Queue contains no items, otherwise false.\n   * @return {Boolean}\n   */\n  isEmpty(){\n    return this.count() === 0;\n  }\n\n  /**\n   * Returns the current count of the items in the Queue.\n   * @return {Number}\n   */\n  count(){\n    return this._items.length;\n  }\n\n  /**\n   * Clears all items currently in the queue\n   * @return {void}\n   */\n   clear(){\n     this._items.length = 0;\n   }\n}\n\nexport default Queue;\n"
  },
  {
    "__docId__": 62,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Queue",
    "memberof": "src/queue/Queue.js",
    "longname": "src/queue/Queue.js~Queue",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/queue/Queue.js",
    "importStyle": "Queue",
    "description": "Stack: FIFO data structure\nUsage: let queue = new Queue();\n       queue.enqueue('A');\n       queue.enqueue('B');\n       queue.dequeue();  => A'",
    "lineNumber": 8,
    "interface": false
  },
  {
    "__docId__": 63,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/queue/Queue.js~Queue",
    "longname": "src/queue/Queue.js~Queue#constructor",
    "access": null,
    "description": null,
    "lineNumber": 9,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 64,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_items",
    "memberof": "src/queue/Queue.js~Queue",
    "longname": "src/queue/Queue.js~Queue#_items",
    "access": null,
    "description": null,
    "lineNumber": 10,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 65,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "enqueue",
    "memberof": "src/queue/Queue.js~Queue",
    "longname": "src/queue/Queue.js~Queue#enqueue",
    "access": null,
    "description": "Enqueues an item to the front of the Queue.",
    "lineNumber": 18,
    "params": [
      {
        "nullable": null,
        "types": [
          "item"
        ],
        "spread": false,
        "optional": false,
        "name": "item",
        "description": "to set on the vertex"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "Queue"
      ],
      "spread": false,
      "description": "current instance of graph."
    },
    "generator": false
  },
  {
    "__docId__": 66,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "dequeue",
    "memberof": "src/queue/Queue.js~Queue",
    "longname": "src/queue/Queue.js~Queue#dequeue",
    "access": null,
    "description": "Dequeues the oldest item enqueued into the queue.",
    "lineNumber": 27,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "<Item>"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 67,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "isEmpty",
    "memberof": "src/queue/Queue.js~Queue",
    "longname": "src/queue/Queue.js~Queue#isEmpty",
    "access": null,
    "description": "Returns true if the Queue contains no items, otherwise false.",
    "lineNumber": 38,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Boolean"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 68,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "count",
    "memberof": "src/queue/Queue.js~Queue",
    "longname": "src/queue/Queue.js~Queue#count",
    "access": null,
    "description": "Returns the current count of the items in the Queue.",
    "lineNumber": 46,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Number"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 69,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "clear",
    "memberof": "src/queue/Queue.js~Queue",
    "longname": "src/queue/Queue.js~Queue#clear",
    "access": null,
    "description": "Clears all items currently in the queue",
    "lineNumber": 54,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "void"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 70,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/stack/Stack.js",
    "memberof": null,
    "longname": "src/stack/Stack.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "import StackEmptyError from './StackEmptyError';\n\n/**\n * Stack: LIFO data structure\n * Usage: let stack = new Stack();\n *        stack.push('A');\n *        stack.push('B');\n *        stack.pop();  => B'\n */\nclass Stack {\n  constructor(){\n    this._items = [];\n  }\n\n  /**\n   * Appends an item to the top of the Stack.\n   * @param {item} value to push onto the top of the Stack\n   * @return {void}\n   */\n  push(item){\n    this._items.push(item);\n  }\n\n  /**\n   * returns last value pushed onto Stack; modifies Stack items in-place\n   * @throws {StackEmptyError} if stack is empty.\n   * @return {<Item>} last value pushed onto Stack.\n   */\n  pop(){\n    if (this.isEmpty()){\n      throw new StackEmptyError(\"Cannot pop from empty stack\");\n    }\n    return this._items.splice(this._items.length-1)[0];\n  }\n\n  /**\n   * Gets number of items currently on the stack.\n   * @return {Number}\n   */\n  count(){\n    return this._items.length;\n  }\n\n  /**\n   * Clears out all items from the Stack.\n   * @return {void}\n   */\n  clear(){\n    this._items.length = 0;\n  }\n\n  /**\n   * Returns boolean value based on contents of stack.\n   * @return {Boolean} true if Stack is empty, otherwise false.\n   */\n  isEmpty(){\n    return this.count() === 0;\n  }\n\n  /**\n   * @return {String} string representation of the Stack structure\n   */\n  print(){\n    return \"Stack: \" + this._items.toString();\n  }\n}\n\nexport default Stack;\n"
  },
  {
    "__docId__": 71,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "Stack",
    "memberof": "src/stack/Stack.js",
    "longname": "src/stack/Stack.js~Stack",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/stack/Stack.js",
    "importStyle": "Stack",
    "description": "Stack: LIFO data structure\nUsage: let stack = new Stack();\n       stack.push('A');\n       stack.push('B');\n       stack.pop();  => B'",
    "lineNumber": 10,
    "interface": false
  },
  {
    "__docId__": 72,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/stack/Stack.js~Stack",
    "longname": "src/stack/Stack.js~Stack#constructor",
    "access": null,
    "description": null,
    "lineNumber": 11,
    "undocument": true,
    "params": [],
    "generator": false
  },
  {
    "__docId__": 73,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "_items",
    "memberof": "src/stack/Stack.js~Stack",
    "longname": "src/stack/Stack.js~Stack#_items",
    "access": null,
    "description": null,
    "lineNumber": 12,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 74,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "push",
    "memberof": "src/stack/Stack.js~Stack",
    "longname": "src/stack/Stack.js~Stack#push",
    "access": null,
    "description": "Appends an item to the top of the Stack.",
    "lineNumber": 20,
    "params": [
      {
        "nullable": null,
        "types": [
          "item"
        ],
        "spread": false,
        "optional": false,
        "name": "value",
        "description": "to push onto the top of the Stack"
      }
    ],
    "return": {
      "nullable": null,
      "types": [
        "void"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 75,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "pop",
    "memberof": "src/stack/Stack.js~Stack",
    "longname": "src/stack/Stack.js~Stack#pop",
    "access": null,
    "description": "returns last value pushed onto Stack; modifies Stack items in-place",
    "lineNumber": 29,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "<Item>"
      ],
      "spread": false,
      "description": "last value pushed onto Stack."
    },
    "throws": [
      {
        "types": [
          "StackEmptyError"
        ],
        "description": "if stack is empty."
      }
    ],
    "generator": false
  },
  {
    "__docId__": 76,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "count",
    "memberof": "src/stack/Stack.js~Stack",
    "longname": "src/stack/Stack.js~Stack#count",
    "access": null,
    "description": "Gets number of items currently on the stack.",
    "lineNumber": 40,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Number"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 77,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "clear",
    "memberof": "src/stack/Stack.js~Stack",
    "longname": "src/stack/Stack.js~Stack#clear",
    "access": null,
    "description": "Clears out all items from the Stack.",
    "lineNumber": 48,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "void"
      ],
      "spread": false,
      "description": ""
    },
    "generator": false
  },
  {
    "__docId__": 78,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "isEmpty",
    "memberof": "src/stack/Stack.js~Stack",
    "longname": "src/stack/Stack.js~Stack#isEmpty",
    "access": null,
    "description": "Returns boolean value based on contents of stack.",
    "lineNumber": 56,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "Boolean"
      ],
      "spread": false,
      "description": "true if Stack is empty, otherwise false."
    },
    "generator": false
  },
  {
    "__docId__": 79,
    "kind": "method",
    "static": false,
    "variation": null,
    "name": "print",
    "memberof": "src/stack/Stack.js~Stack",
    "longname": "src/stack/Stack.js~Stack#print",
    "access": null,
    "description": "",
    "lineNumber": 63,
    "params": [],
    "return": {
      "nullable": null,
      "types": [
        "String"
      ],
      "spread": false,
      "description": "string representation of the Stack structure"
    },
    "generator": false
  },
  {
    "__docId__": 80,
    "kind": "file",
    "static": true,
    "variation": null,
    "name": "src/stack/StackEmptyError.js",
    "memberof": null,
    "longname": "src/stack/StackEmptyError.js",
    "access": null,
    "description": null,
    "lineNumber": 1,
    "content": "class StackEmptyError extends Error {\n  constructor(message){\n    super(message);\n    this.message = message;\n    this.name = \"StackEmptyError\";\n  }\n}\n\nexport default StackEmptyError;\n"
  },
  {
    "__docId__": 81,
    "kind": "class",
    "static": true,
    "variation": null,
    "name": "StackEmptyError",
    "memberof": "src/stack/StackEmptyError.js",
    "longname": "src/stack/StackEmptyError.js~StackEmptyError",
    "access": null,
    "export": true,
    "importPath": "algorithmsjs/src/stack/StackEmptyError.js",
    "importStyle": "StackEmptyError",
    "description": null,
    "lineNumber": 1,
    "undocument": true,
    "interface": false,
    "extends": [
      "Error"
    ]
  },
  {
    "__docId__": 82,
    "kind": "constructor",
    "static": false,
    "variation": null,
    "name": "constructor",
    "memberof": "src/stack/StackEmptyError.js~StackEmptyError",
    "longname": "src/stack/StackEmptyError.js~StackEmptyError#constructor",
    "access": null,
    "description": null,
    "lineNumber": 2,
    "undocument": true,
    "params": [
      {
        "name": "message",
        "types": [
          "*"
        ]
      }
    ],
    "generator": false
  },
  {
    "__docId__": 83,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "message",
    "memberof": "src/stack/StackEmptyError.js~StackEmptyError",
    "longname": "src/stack/StackEmptyError.js~StackEmptyError#message",
    "access": null,
    "description": null,
    "lineNumber": 4,
    "undocument": true,
    "type": {
      "types": [
        "*"
      ]
    }
  },
  {
    "__docId__": 84,
    "kind": "member",
    "static": false,
    "variation": null,
    "name": "name",
    "memberof": "src/stack/StackEmptyError.js~StackEmptyError",
    "longname": "src/stack/StackEmptyError.js~StackEmptyError#name",
    "access": null,
    "description": null,
    "lineNumber": 5,
    "undocument": true,
    "type": {
      "types": [
        "string"
      ]
    }
  },
  {
    "__docId__": 86,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Infinity",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Infinity",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 87,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "NaN",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~NaN",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 88,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "undefined",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~undefined",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 89,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "null",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~null",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 90,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Object",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Object",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 91,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "object",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~object",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 92,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Function",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Function",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 93,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "function",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~function",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 94,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Boolean",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Boolean",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 95,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "boolean",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~boolean",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 96,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Symbol",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Symbol",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 97,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Error",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Error",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 98,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "EvalError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/EvalError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~EvalError",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 99,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "InternalError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/InternalError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~InternalError",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 100,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "RangeError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~RangeError",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 101,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "ReferenceError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~ReferenceError",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 102,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "SyntaxError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~SyntaxError",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 103,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "TypeError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~TypeError",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 104,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "URIError",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/URIError",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~URIError",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 105,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Number",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Number",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 106,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "number",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~number",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 107,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Date",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Date",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 108,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "String",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~String",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 109,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "string",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~string",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 110,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "RegExp",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~RegExp",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 111,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 112,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int8Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int8Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 113,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint8Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 114,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint8ClampedArray",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint8ClampedArray",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 115,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int16Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int16Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 116,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint16Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint16Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 117,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Int32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Int32Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 118,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Uint32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Uint32Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 119,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Float32Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Float32Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 120,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Float64Array",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Float64Array",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 121,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Map",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Map",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 122,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Set",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Set",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 123,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "WeakMap",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakMap",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 124,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "WeakSet",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~WeakSet",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 125,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "ArrayBuffer",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~ArrayBuffer",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 126,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "DataView",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~DataView",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 127,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "JSON",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~JSON",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 128,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Promise",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Promise",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 129,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Generator",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Generator",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 130,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "GeneratorFunction",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~GeneratorFunction",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 131,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Reflect",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Reflect",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 132,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Proxy",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy",
    "memberof": "BuiltinExternal/ECMAScriptExternal.js",
    "longname": "BuiltinExternal/ECMAScriptExternal.js~Proxy",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 134,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "CanvasRenderingContext2D",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~CanvasRenderingContext2D",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 135,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "DocumentFragment",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~DocumentFragment",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 136,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Element",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Element",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Element",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 137,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Event",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Event",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Event",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 138,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "Node",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/Node",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~Node",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 139,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "NodeList",
    "externalLink": "https://developer.mozilla.org/en-US/docs/Web/API/NodeList",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~NodeList",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 140,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "XMLHttpRequest",
    "externalLink": "https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~XMLHttpRequest",
    "access": null,
    "description": "",
    "builtinExternal": true
  },
  {
    "__docId__": 141,
    "kind": "external",
    "static": true,
    "variation": null,
    "name": "AudioContext",
    "externalLink": "https://developer.mozilla.org/en/docs/Web/API/AudioContext",
    "memberof": "BuiltinExternal/WebAPIExternal.js",
    "longname": "BuiltinExternal/WebAPIExternal.js~AudioContext",
    "access": null,
    "description": "",
    "builtinExternal": true
  }
]