static compileShader(gl, shaderType, sourceCode) {
        let shader = gl.createShader(shaderType);

        gl.shaderSource(shader, sourceCode);
        gl.compileShader(shader);

        let info = gl.getShaderInfoLog(shader);
        if (info !== '') {
            let ignored = false;
            for (let term of Config.IGNORED_WEBGL_INFO_TERMS) {
                if (info.indexOf(term)) {
                    ignored = true;
                }
            }
            if (!ignored) {
                console.warn("WebGLShader: gl.getShaderInfoLog() wasn't empty: " + gl.getShaderInfoLog(shader));
                console.warn("Source code was: " + sourceCode);
            }
        }

        if (gl.getShaderParameter(shader, WebGLRenderingContext.COMPILE_STATUS) === false) {
            throw new Error(`WebGLShader: Shader compile failed.
                Info: ${info}
                Source: ${sourceCode}`);
        }

        return shader;
    }
@param {!WebGLRenderingContext} gl
@param {number} shaderType
@param {!string} sourceCode
@returns {!WebGLShader}