index.js
function getRangeTextNodes(range) {
  var container = range.commonAncestorContainer
    , nodes = getTextNodes(container.parentNode || container)

  return nodes.filter(function (node) {
    return rangeIntersectsNode(range, node) && isNonEmptyTextNode(node)
  })
}
function getRangeTextNodes(range) {
  var container = range.commonAncestorContainer
    , nodes = getTextNodes(container.parentNode || container)

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