function waitForProgramLinkCompletionAsync(_x, _x2) {
  return _waitForProgramLinkCompletionAsync.apply(this, arguments);
}
Same as createProgramInfo but returns a promise
@function
@param {WebGLRenderingContext} gl The WebGLRenderingContext
       to use.
@param {string[]} shaderSources Array of sources for the
       shaders or ids. The first is assumed to be the vertex shader,
       the second the fragment shader.
@param {module:twgl.ProgramOptions|string[]|module:twgl.ErrorCallback} [opt_attribs] Options for the program or an array of attribs names or an error callback. Locations will be assigned by index if not passed in
@param {number[]|module:twgl.ErrorCallback} [opt_locations] The locations for the. A parallel array to opt_attribs letting you assign locations or an error callback.
@param {module:twgl.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 {Promise<module:twgl.ProgramInfo>} The created ProgramInfo
@memberOf module:twgl/programs