code: function(property, root, allowNull) {
          var values = this.extractValues(property, root),
              length = values.length,
              hits   = {},
              unique = [],
              value, strValue, i;
  
          for (i = 0; i < length; i++) {
              value = values[i];
              strValue = String(value);
  
              if ((allowNull || !Ext.isEmpty(value)) && !hits[strValue]) {
                  hits[strValue] = true;
                  unique.push(value);
              }
          }
  
          return unique;
      }
docs: Collects unique values of a particular property in this MixedCollection
  @param {String} property The property to collect on
  @param {String} root (optional) 'root' property to extract the first argument from. This is used mainly when
  summing fields in records, where the fields are all stored inside the 'data' object
  @param {Boolean} allowBlank (optional) Pass true to allow null, undefined or empty string values
  @return {Array} The unique values