docs: function setValue(descriptor,key,set,update)
          {
            var _descriptor = descriptor,
                _key = key,
                _set = set,
                _update = update,
                _oldValue;
            return function valueSet(v)
            {
              _oldValue = _descriptor.value;
              if(_set(this,_key,v,_oldValue,arguments,this._stopChange))
              {
                _descriptor.value = v;
              }
              if(!this._stopChange)
              {
                _update(this,_key,v,_oldValue,arguments);
              }
              this._stopChange = undefined;
            }
          }