docs: function(fields, oldValue) {
              fields = this.__resolveFields(fields);
  
              var prop, key, i, ii;
  
              this.__checkEmitEvent(true);
  
              if (_.isSimpleObject(oldValue)) {
                  for (key in oldValue) {
                      this.__emitPropertyRemove(fields.concat(key), oldValue[key]);
                  }
              }
              else if (_.isArray(oldValue)) {
                  for (i = 0, ii = oldValue.length; i < ii; ++i) {
                      this.__emitPropertyRemove(fields.concat(i), oldValue[i]);
                  }
              }
  
              prop = fields.join('.');
  
              this.__emitEvent('property.' + prop + '.clear', oldValue);
              this.__emitEvent('property.clear', prop, oldValue);
  
              return this;
          }