Previously the expression was parsed in the fragment shader context, which
meant in case the expression used an attributes the resulting GLSL code
would be wrong.
Fragment shader context:
`float angle = v_heading; // we're using the varying: not OK`
Vertex shader context:
`float angle = a_heading; // we're using the attribute: OK`