From add281e429c85277087e0c0c71be02614cccf5f9 Mon Sep 17 00:00:00 2001 From: Emad Eid Date: Sun, 8 Mar 2015 08:58:10 -0400 Subject: [PATCH] Fix Node.isEqualNode returning false always --- src/ShadowDOM/wrappers/Node.js | 5 +++++ tests/ShadowDOM/js/Node.js | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/ShadowDOM/wrappers/Node.js b/src/ShadowDOM/wrappers/Node.js index c670e91..c793ac8 100644 --- a/src/ShadowDOM/wrappers/Node.js +++ b/src/ShadowDOM/wrappers/Node.js @@ -344,6 +344,7 @@ var originalAppendChild = OriginalNode.prototype.appendChild; var originalCompareDocumentPosition = OriginalNode.prototype.compareDocumentPosition; + var originalIsEqualNode = OriginalNode.prototype.isEqualNode; var originalInsertBefore = OriginalNode.prototype.insertBefore; var originalRemoveChild = OriginalNode.prototype.removeChild; var originalReplaceChild = OriginalNode.prototype.replaceChild; @@ -682,6 +683,10 @@ unwrapIfNeeded(otherNode)); }, + isEqualNode:function(otherNode){ + return originalIsEqualNode.call(unsafeUnwrap(this), unwrapIfNeeded(otherNode)); + }, + normalize: function() { var nodes = snapshotNodeList(this.childNodes); var remNodes = []; diff --git a/tests/ShadowDOM/js/Node.js b/tests/ShadowDOM/js/Node.js index 3fbd142..2d0e7a8 100644 --- a/tests/ShadowDOM/js/Node.js +++ b/tests/ShadowDOM/js/Node.js @@ -456,4 +456,14 @@ suite('Node', function() { assert.equal(cs.length, 1); assert.equal(cs[0], d); }); + + test('isEqualNode', function() { + var div = document.createElement('div'); + div.innerHTML = '
'; + var clone = div.cloneNode(true); + assert.isTrue(div.isEqualNode(clone)); + clone.innerHTML = "
x
"; + assert.isFalse(div.isEqualNode(clone)); + }); + });