code: function (range) {
  		// add range or combine with existing range
  		var selection = this._document.selection.createRange(), textRange = TextRangeUtils.convertFromDOMRange(range);
  		if (!this._selectionExists(selection))
  		{
  			// select range
  			textRange.select();
  		}
  		else
  		{
  			// only modify range if it intersects with current range
  			if (textRange.compareEndPoints('StartToStart', selection) == -1)
  				if (textRange.compareEndPoints('StartToEnd', selection) > -1 &&
  				    textRange.compareEndPoints('EndToEnd', selection) == -1)
  					selection.setEndPoint('StartToStart', textRange);
  			else
  				if (textRange.compareEndPoints('EndToStart', selection) < 1 &&
  				    textRange.compareEndPoints('EndToEnd', selection) > -1)
  					selection.setEndPoint('EndToEnd', textRange);
  			selection.select();
  		}
  	}
docs: public methods