function createShaderFromScript(
      gl, scriptId, opt_shaderType, opt_errorCallback) {
    var shaderSource = "";
    var shaderType;
    var shaderScript = document.getElementById(scriptId);
    if (!shaderScript) {
      throw "*** Error: unknown script element" + scriptId;
    }
    shaderSource = shaderScript.text;

    if (!opt_shaderType) {
      if (shaderScript.type === "x-shader/x-vertex") {
        shaderType = gl.VERTEX_SHADER;
      } else if (shaderScript.type === "x-shader/x-fragment") {
        shaderType = gl.FRAGMENT_SHADER;
      } else if (shaderType !== gl.VERTEX_SHADER && shaderType !== gl.FRAGMENT_SHADER) {
        throw "*** Error: unknown shader type";
      }
    }

    return loadShader(
        gl, shaderSource, opt_shaderType ? opt_shaderType : shaderType,
        opt_errorCallback);
  }
Loads a shader from a script tag.
@param {WebGLRenderingContext} gl The WebGLRenderingContext to use.
@param {string} scriptId The id of the script tag.
@param {number} [opt_shaderType] The type of shader. If not passed in it will
    be derived from the type of the script tag.
@param {module:twgl.ErrorCallback} [opt_errorCallback] callback for errors.
@return {WebGLShader?} The created shader or null if error.