docs: function onlyWhiteSpaces( startContainer, startOffset ) {
  						// We need to enlarge range if there is white space at the end of the block,
  						// because it is not displayed in WYSIWYG mode and user can not select it. So
  						// "<p>foo[bar] </p>" should be changed to "<p>foo[bar ]</p>". On the other hand
  						// we should do nothing if we are not at the end of the block, so this should not
  						// be changed: "<p><i>[foo] </i>bar</p>".
  						var walkerRange = new CKEDITOR.dom.range( boundary );
  						walkerRange.setStart( startContainer, startOffset );
  						// The guard will find the end of range so I put boundary here.
  						walkerRange.setEndAt( boundary, CKEDITOR.POSITION_BEFORE_END );
  
  						var walker = new CKEDITOR.dom.walker( walkerRange ),
  							node;
  
  						walker.guard = function( node ) {
  							// Stop if you exit block.
  							return !( node.type == CKEDITOR.NODE_ELEMENT && node.isBlockBoundary() );
  						};
  
  						while ( ( node = walker.next() ) ) {
  							if ( node.type != CKEDITOR.NODE_TEXT ) {
  								// Stop if you enter to any node (walker.next() will return node only
  								// it goes out, not if it is go into node).
  								return false;
  							} else {
  								// Trim the first node to startOffset.
  								if ( node != startContainer )
  									siblingText = node.getText();
  								else
  									siblingText = node.substring( startOffset );
  
  								// Check if it is white space.
  								if ( leadingWhitespaceRegex.test( siblingText ) )
  									return false;
  							}
  						}
  
  						return true;
  					}