ificantNode = this.nextSignificantNode(node);
              if (significantNode) {
                return significantNode;
              }
            }
          }
        }

        nextSignificantNode(sib) {
          while ((sib = sib.nextSibling)) {
            if (!this.isIgnorable(sib)) return sib;
          }
          return null;
        }

        isIgnorable(node) {
          return (node.nodeType === 8) || // A comment node
            ((node.nodeType === 3) && this.isAllWhitespace(node)); // a