docs: function(keyOrDict, value, result) {
      var values;
      var target = result || this[0];
      if(!target) return this;
  
      if(this.dh.objectType(keyOrDict) == "object") {
        values = keyOrDict;
      }
      else {
        values = {};
        values[keyOrDict] = value;
      }
  
      var dispatch = false;
      var originalValue = this.dh.deepClone(target.value);
  
      for(var hKey in values) {
        var v = values[hKey];
        var k = this.dh.coerceKeyForObject(hKey, target.value);
  
        if(k != null) {
          if(!this.dh.eq(v, target.value[k])) {
            target.value[k] = v;
            dispatch = true;
          }
        }
      }
      if(dispatch) this.resultModified(target, originalValue);
      return this;
    }