code: function (point) {
              var textRangeInfo = function (container, offset) {
                  var node, isCollapseToStart;
  
                  if (dom.isText(container)) {
                      var prevTextNodes = dom.listPrev(container, func.not(dom.isText));
                      var prevContainer = list.last(prevTextNodes).previousSibling;
                      node =  prevContainer || container.parentNode;
                      offset += list.sum(list.tail(prevTextNodes), dom.nodeLength);
                      isCollapseToStart = !prevContainer;
                  } else {
                      node = container.childNodes[offset] || container;
                      if (dom.isText(node)) {
                          return textRangeInfo(node, 0);
                      }
  
                      offset = 0;
                      isCollapseToStart = false;
                  }
  
                  return {
                      node: node,
                      collapseToStart: isCollapseToStart,
                      offset: offset
                  };
              };
  
              var textRange = document.body.createTextRange();
              var info = textRangeInfo(point.node, point.offset);
  
              textRange.moveToElementText(info.node);
              textRange.collapse(info.collapseToStart);
              textRange.moveStart('character', info.offset);
              return textRange;
          }
docs: return TextRange from boundary point (inspired by google closure-library)
  @param {BoundaryPoint} point
  @return {TextRange}