code: function createVAOAndSetAttributes(gl, setters, attribs, indices) {
    const vao = gl.createVertexArray();
    gl.bindVertexArray(vao);
    programs.setAttributes(setters, attribs);
    if (indices) {
      gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indices);
    }
    // We unbind this because otherwise any change to ELEMENT_ARRAY_BUFFER
    // like when creating buffers for other stuff will mess up this VAO's binding
    gl.bindVertexArray(null);
    return vao;
  }
docs: Creates a vertex array object and then sets the attributes on it
  
  @param {WebGLRenderingContext} gl The WebGLRenderingContext to use.
  @param {Object.<string, function>} setters Attribute setters as returned from createAttributeSetters
  @param {Object.<string, module:twgl.AttribInfo>} attribs AttribInfos mapped by attribute name.
  @param {WebGLBuffer} [indices] an optional ELEMENT_ARRAY_BUFFER of indices
  @memberOf module:twgl/vertexArrays