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`