code: function callItems( currentEntry )
  	{
  		var isNode = currentEntry.type
  			|| currentEntry instanceof CKEDITOR.htmlParser.fragment;
  
  		for ( var i = 0 ; i < this.length ; i++ )
  		{
  			// Backup the node info before filtering.
  			if ( isNode )
  			{
  				var orgType = currentEntry.type,
  						orgName = currentEntry.name;
  			}
  
  			var item = this[ i ],
  				ret = item.apply( window, arguments );
  
  			if ( ret === false )
  				return ret;
  
  			// We're filtering node (element/fragment).
  			if ( isNode )
  			{
  				// No further filtering if it's not anymore
  				// fitable for the subsequent filters.
  				if ( ret && ( ret.name != orgName
  					|| ret.type != orgType ) )
  				{
  					return ret;
  				}
  			}
  			// Filtering value (nodeName/textValue/attrValue).
  			else
  			{
  				// No further filtering if it's not
  				// any more values.
  				if ( typeof ret != 'string' )
  					return ret;
  			}
  
  			ret != undefined && ( currentEntry = ret );
  		}
  
  		return currentEntry;
  	}
docs: Invoke filters sequentially on the array, break the iteration when it doesn't make sense to continue anymore.