code: function (point, isInline) {
              // find splitRoot, container
              //  - inline: splitRoot is a child of paragraph
              //  - block: splitRoot is a child of bodyContainer
              var pred = isInline ? isPara : isBodyContainer;
              var ancestors = listAncestor(point.node, pred);
              var topAncestor = list.last(ancestors) || point.node;
  
              var splitRoot, container;
              if (pred(topAncestor)) {
                  splitRoot = ancestors[ancestors.length - 2];
                  container = topAncestor;
              } else {
                  splitRoot = topAncestor;
                  container = splitRoot.parentNode;
              }
  
              // if splitRoot is exists, split with splitTree
              var pivot = splitRoot && splitTree(splitRoot, point, {
                  isSkipPaddingBlankHTML: isInline,
                  isNotSplitEdgePoint: isInline
              });
  
              // if container is point.node, find pivot with point.offset
              if (!pivot && container === point.node) {
                  pivot = point.node.childNodes[point.offset];
              }
  
              return {
                  rightNode: pivot,
                  container: container
              };
          }
docs: split point
  
  @param {Point} point
  @param {Boolean} isInline
  @return {Object}