RenderTexture does not clear buffer

Hello all, please help. I’m getting mad.
I’m trying to implement the Pixel-perfect collision testing in cocos2d-js.

I can not get pixel buffer cleared. I don’t know why.

I do:

var winSize = cc.director.getWinSize();

var rend = new cc.RenderTexture( winSize.width , winSize.height, cc.Texture2D.PIXEL_FORMAT_RGBA8888);
var pixels = new Uint8Array(4 * ~~numPixels);   

rend.beginWithClear( 0, 0, 0, 255); 

gl.readPixels(x, y, w, h, gl.RGBA, gl.UNSIGNED_BYTE, pixels);

rend.end();

for(var i = 0; i < ~~numPixels; i+= 1)
{
    var rb = pixels[4*i + 0];
    var gb = pixels[4*i + 1];
    DEBUG(LEVEL_DEBUG, "PP - collision test", "i=%s; rb=%s; gb=%s;", ""+i, ""+rb, ""+gb);
}

So far I do not do even any drawing. Just trying to clear buffer in renderTexture, readPixels and check them if it was cleared. It was not.

I even tried first to fill the array pixels with some known values, checked it - yes it was there. After readPixels there are different values but not clear… What is wrong? Can somebody help? I also tried rend.cleanup(); I tried split beginWithClear to separate clear() and begin() … same result. I tried rend.clearRectrend.setClearColor … nothing helped.
What can I do?
Thanks a lot.

P.S. I found that I could probably need to call Director::getInstance()->getRenderer()->render(); after rend.end(); to force to proceed pending commands immediately.
Trying it for hours and studding jsBindings and JSB I was not able to access the renderer nor call its method render()… Is it possible from java-script? How?