function vertexAttribPointer(cacheId, programObj, varName, size, VBO) {
      var varLocation = curContextCache.attributes[cacheId];
      if(varLocation === undef) {
        varLocation = curContext.getAttribLocation(programObj, varName);
        curContextCache.attributes[cacheId] = varLocation;
      }
      if (varLocation !== -1) {
        curContext.bindBuffer(curContext.ARRAY_BUFFER, VBO);
        curContext.vertexAttribPointer(varLocation, size, curContext.FLOAT, false, 0, 0);
        curContext.enableVertexAttribArray(varLocation);
      }
    }
Binds the VBO, sets the vertex attribute data for the program
object and enables the attribute.

On some systems, if the attribute exists in the shader but
isn't used, the compiler will optimize it out and this
function will fail.

@param {WebGLProgram} programObj program object returned from
createProgramObject
@param {String} varName the name of the variable in the shader
@param {int} size the number of components per vertex attribute
@param {WebGLBuffer} VBO Vertex Buffer Object

@returns none

@see disableVertexAttribPointer