compileShader(source, type) {
    const gl = this.gl_;
    const shader = gl.createShader(type);
    gl.shaderSource(shader, source);
    gl.compileShader(shader);
    return shader;
  }
Will attempt to compile a vertex or fragment shader based on source
On error, the shader will be returned but
`gl.getShaderParameter(shader, gl.COMPILE_STATUS)` will return `true`
Use `gl.getShaderInfoLog(shader)` to have details
@param {string} source Shader source
@param {ShaderType} type VERTEX_SHADER or FRAGMENT_SHADER
@return {WebGLShader} Shader object