code: function getUniformBufferSetFunction( index, gl, context ){
    var unit = context.ublockIndex++;
    return function(){
      if( arguments.length === 1 ) {
        if( arguments[0] instanceof WebGLBuffer ){ // is buffer
          gl.uniformBlockBinding(this.program, index, unit);
          gl.bindBufferBase(gl.UNIFORM_BUFFER, unit, arguments[0] );
        } else {
          gl.uniformBlockBinding(this.program, index, arguments[0]);
        }
      }
      return index;
    };
  }
docs: /*
  setter factory for uniform buffers
  can be
  f( buffer )
  buffer is bound to auto increment binding point unit and block binding reset to this point
  f( unit )
  only set the block binding point to given unit