code: function getCheckStartEndBlockEvalFunction( isStart )
  	{
  		var hadBr = false, bookmarkEvaluator = CKEDITOR.dom.walker.bookmark( true );
  		return function( node )
  		{
  			// First ignore bookmark nodes.
  			if ( bookmarkEvaluator( node ) )
  				return true;
  
  			if ( node.type == CKEDITOR.NODE_TEXT )
  			{
  				// If there's any visible text, then we're not at the start.
  				if ( node.hasAscendant( 'pre' ) || CKEDITOR.tools.trim( node.getText() ).length )
  					return false;
  			}
  			else if ( node.type == CKEDITOR.NODE_ELEMENT )
  			{
  				// If there are non-empty inline elements (e.g. <img />), then we're not
  				// at the start.
  				if ( !inlineChildReqElements[ node.getName() ] )
  				{
  					// If we're working at the end-of-block, forgive the first <br /> in non-IE
  					// browsers.
  					if ( !isStart && !CKEDITOR.env.ie && node.getName() == 'br' && !hadBr )
  						hadBr = true;
  					else
  						return false;
  				}
  			}
  			return true;
  		};
  	}
docs: Creates the appropriate node evaluator for the dom walker used inside check(Start|End)OfBlock.