function walkPoint(startPoint, endPoint, handler, isSkipInnerOffset) {
  let point = startPoint;

  while (point && point.node) {
    handler(point);

    if (isSamePoint(point, endPoint)) {
      break;
    }

    const isSkipOffset = isSkipInnerOffset &&
                       startPoint.node !== point.node &&
                       endPoint.node !== point.node;
    point = nextPointWithEmptyNode(point, isSkipOffset);
  }
}
@method walkPoint - preorder / depth first traversal of the DOM

@param {BoundaryPoint} startPoint
@param {BoundaryPoint} endPoint
@param {Function} handler
@param {Boolean} isSkipInnerOffset