docs: function() {
  			var walkerRange = this.clone();
  
  			// Optimize and analyze the range to avoid DOM destructive nature of walker. (#5780)
  			walkerRange.optimize();
  			if ( walkerRange.startContainer.type != CKEDITOR.NODE_ELEMENT || walkerRange.endContainer.type != CKEDITOR.NODE_ELEMENT )
  				return null;
  
  			var walker = new CKEDITOR.dom.walker( walkerRange ),
  				isNotBookmarks = CKEDITOR.dom.walker.bookmark( false, true ),
  				isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true );
  
  			walker.evaluator = function( node ) {
  				return isNotWhitespaces( node ) && isNotBookmarks( node );
  			};
  			var node = walker.next();
  			walker.reset();
  			return node && node.equals( walker.previous() ) ? node : null;
  		}