code: function getRangeTextNodes(range) {
    var container = range.commonAncestorContainer
      , nodes = getTextNodes(container.parentNode || container)
  
    return nodes.filter(function (node) {
      return rangeIntersectsNode(range, node) && isNonEmptyTextNode(node)
    })
  }
docs: return all non-empty text nodes fully or partially selected by `range`