diff --git a/src/dom.coffee b/src/dom.coffee index 75d3a2668c..6d9fd9fb61 100644 --- a/src/dom.coffee +++ b/src/dom.coffee @@ -218,6 +218,13 @@ DOM = DOM.removeNode(curNode.nextSibling) curNode = nextNode + isAncestor: (ancestor, node, inclusive = false) -> + return inclusive if ancestor == node + while node + return true if node == ancestor + node = node.parentNode + return false + isIE: (maxVersion) -> version = document.documentMode return version and maxVersion >= version diff --git a/src/line.coffee b/src/line.coffee index 04697f2c4c..77c4663ef9 100644 --- a/src/line.coffee +++ b/src/line.coffee @@ -134,8 +134,8 @@ class Line extends LinkedList.Node rebuild: (force = false) -> if !force and @outerHTML? and @outerHTML == @node.outerHTML - if _.all(@leaves.toArray(), (leaf) -> - return leaf.node.parentNode? + if _.all(@leaves.toArray(), (leaf) => + return DOM.isAncestor(@node, leaf.node) ) return false @node = Normalizer.normalizeNode(@node)