The difference is in the translated fragment shader source.
Before:
invariant varying mediump vec4 webgl_a78e73e400000001;
void main(){
(gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0));
(gl_FragColor = webgl_a78e73e400000001);
}
After:
varying mediump vec4 webgl_a78e73e400000001;
void main(){
(gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0));
(gl_FragColor = webgl_a78e73e400000001);
}
However, my reading of the GLSL specifications says this is ok.
"Only variables output from a shader can be candidates for invariance. This includes user-defined output variables and the built-in output variables. As only outputs can be declared as invariant, an output from one shader stage will still match an input of a subsequent stage without the input being declared as invariant."