whole_func_string: function findTextNodeRelative(left, startNode) {
  					var walker, lastInlineElement;
  
  					startNode = startNode || container;
  					walker = new TreeWalker(startNode, dom.getParent(startNode.parentNode, dom.isBlock) || body);
  
  					// Walk left until we hit a text node we can move to or a block/br/img
  					while (node = walker[left ? 'prev' : 'next']()) {
  						// Found text node that has a length
  						if (node.nodeType === 3 && node.nodeValue.length > 0) {
  							container = node;
  							offset = left ? node.nodeValue.length : 0;
  							normalized = true;
  							return;
  						}
  
  						// Break if we find a block or a BR/IMG/INPUT etc
  						if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) {
  							return;
  						}
  
  						lastInlineElement = node;
  					}
  
  					// Only fetch the last inline element when in caret mode for now
  					if (collapsed && lastInlineElement) {
  						container = lastInlineElement;
  						normalized = true;
  						offset = 0;
  					}
  				}
func_code_string: function findTextNodeRelative(left, startNode) {
  					var walker, lastInlineElement;
  
  					startNode = startNode || container;
  					walker = new TreeWalker(startNode, dom.getParent(startNode.parentNode, dom.isBlock) || body);
  
  					// Walk left until we hit a text node we can move to or a block/br/img
  					while (node = walker[left ? 'prev' : 'next']()) {
  						// Found text node that has a length
  						if (node.nodeType === 3 && node.nodeValue.length > 0) {
  							container = node;
  							offset = left ? node.nodeValue.length : 0;
  							normalized = true;
  							return;
  						}
  
  						// Break if we find a block or a BR/IMG/INPUT etc
  						if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) {
  							return;
  						}
  
  						lastInlineElement = node;
  					}
  
  					// Only fetch the last inline element when in caret mode for now
  					if (collapsed && lastInlineElement) {
  						container = lastInlineElement;
  						normalized = true;
  						offset = 0;
  					}
  				}
func_documentation_string: Walks the dom left/right to find a suitable text node to move the endpoint into It will only walk within the current parent block or body and will stop if it hits a block or a BR/IMG