whole_func_string: function(items) {
          var me = this, 
              i;
  
          if (items || me.hasListeners.remove) {
              // Only perform expensive item-by-item removal if there's a listener or specific items
              if (items) {
                  for (i = items.length - 1; i >= 0; --i) {
                      me.remove(items[i]);
                  }
              } else {
                  while (me.length) {
                      me.removeAt(0);
                  }
              }
          } else {
              me.length = me.items.length = me.keys.length = 0;
              me.map = {};
              me.indexMap = {};
              me.generation++;
              me.indexGeneration = me.generation;
          }
      }
func_code_string: function(items) {
          var me = this, 
              i;
  
          if (items || me.hasListeners.remove) {
              // Only perform expensive item-by-item removal if there's a listener or specific items
              if (items) {
                  for (i = items.length - 1; i >= 0; --i) {
                      me.remove(items[i]);
                  }
              } else {
                  while (me.length) {
                      me.removeAt(0);
                  }
              }
          } else {
              me.length = me.items.length = me.keys.length = 0;
              me.map = {};
              me.indexMap = {};
              me.generation++;
              me.indexGeneration = me.generation;
          }
      }
func_documentation_string: Remove all items in the collection. Can also be used
  to remove only the items in the passed array.
  @param {Array} [items] An array of items to be removed.
  @return {Ext.util.MixedCollection} this object