code: function RangeIterator(range) {
  	this.range = range;
  	if (range.collapsed)
  		return;
  
  //[TODO] ensure this works
  	// get anchors
  	var root = range.commonAncestorContainer;
  	this._next = range.startContainer == root && !DOMUtils.isDataNode(range.startContainer) ?
  	    range.startContainer.childNodes[range.startOffset] :
  	    DOMUtils.findClosestAncestor(root, range.startContainer);
  	this._end = range.endContainer == root && !DOMUtils.isDataNode(range.endContainer) ?
  	    range.endContainer.childNodes[range.endOffset] :
  	    DOMUtils.findClosestAncestor(root, range.endContainer).nextSibling;
  }
docs: /*
  Range iterator