uniform vec4 offset;을 선언하고, 셰이더 코드의 main()함수 내부를 아래와 같이 바꿔 보세요. gl_Position = a_position + offset;
그리고 나서 JS쪽에서 offset uniform으로 값을 전달해서 결과가 어떻게 달라지는지 살펴보세요.
var vertexShaderSource = `#version 300 es
layout(location=0) in vec4 a_position;
uniform vec4 u_offset;
void main() {
gl_Position = a_position + u_offset;
}
`;

// gl.useProgram(program); // 컴파일 한 쉐이더를 바인딩
