Shaders in Lua? setUniformLocationF32 no effect

Hello everybody!
I’m using Lua in Cocos IDE under Windows.
I wanted to use shaders. This is a piece of code that doesn’t work in my case

local pProgram = cc.GLProgram:createWithFilenames("test.vsh","test.fsh")
pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_POSITION,cc.VERTEX_ATTRIB_POSITION)
pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_COLOR,cc.VERTEX_ATTRIB_COLOR) 
pProgram:bindAttribLocation(cc.ATTRIBUTE_NAME_TEX_COORD,cc.VERTEX_ATTRIB_FLAG_TEX_COORDS)

self.change={}
self.change.val=10.5
pProgram:link() 
pProgram:updateUniforms()
self.location = gl.getUniformLocation(pProgram:getProgram(),"v_change")
pProgram:setUniformsForBuiltins();
pProgram:setUniformLocationF32(self.location,self.change.val)
bgg:setGLProgram(pProgram)

The fragment shader is the following

#ifdef GL_ES
precision mediump float;
#endif
 
varying vec2 v_texCoord;
uniform float v_change;



void main()
{ 
	vec4 normalColor = texture2D(CC_Texture0, v_texCoord).rgba;
	gl_FragColor = normalColor;
	if(v_texCoord.x>v_change)
	{
	gl_FragColor.g=gl_FragColor.g/(1.0+10.0*(v_texCoord.x));
	}
}

Basically the game runs without error messages. However, the shader works like v_change=0.0. But I was thinking that it is linked to self.change.val=10.5.

What is wrong with my implementation?