code: function createProgramInfo(
        gl, shaderSources, opt_attribs, opt_locations, opt_errorCallback) {
      shaderSources = shaderSources.map(function(source) {
        var script = document.getElementById(source);
        return script ? script.text : source;
      });
      var program = webglUtils.createProgramFromSources(gl, shaderSources, opt_attribs, opt_locations, opt_errorCallback);
      if (!program) {
        return null;
      }
      var uniformSetters = createUniformSetters(gl, program);
      var attribSetters = createAttributeSetters(gl, program);
      return {
        program: program,
        uniformSetters: uniformSetters,
        attribSetters: attribSetters,
      };
    }
docs: @typedef {Object} ProgramInfo
  @property {WebGLProgram} program A shader program
  @property {Object<string, function>} uniformSetters: object of setters as returned from createUniformSetters,
  @property {Object<string, function>} attribSetters: object of setters as returned from createAttribSetters,
  @memberOf module:webgl-utils
   
  Creates a ProgramInfo from 2 sources.
  
  A ProgramInfo contains
  
  programInfo = {
  program: WebGLProgram,
  uniformSetters: object of setters as returned from createUniformSetters,
  attribSetters: object of setters as returned from createAttribSetters,
  }
  
  @param {WebGLRenderingContext} gl The WebGLRenderingContext
  to use.
  @param {string[]} shaderSourcess Array of sources for the
  shaders or ids. The first is assumed to be the vertex shader,
  the second the fragment shader.
  @param {string[]} [opt_attribs] An array of attribs names. Locations will be assigned by index if not passed in
  @param {number[]} [opt_locations] The locations for the. A parallel array to opt_attribs letting you assign locations.
  @param {module:webgl-utils.ErrorCallback} opt_errorCallback callback for errors. By default it just prints an error to the console
  on error. If you want something else pass an callback. It's passed an error message.
  @return {module:webgl-utils.ProgramInfo} The created program.
  @memberOf module:webgl-utils