jenkins-bot has submitted this change and it was merged.

Change subject: Assert node is still attached after traverse
......................................................................


Assert node is still attached after traverse

 * Folow up on d31145eafe182a51428cd57313acd4357ba2015e.

Change-Id: Idb333aa77d54df4ada3c83da3ceda6e65fc016bc
---
M lib/dom.t.unpackDOMFragments.js
M lib/domTraverser.js
2 files changed, 11 insertions(+), 11 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/dom.t.unpackDOMFragments.js b/lib/dom.t.unpackDOMFragments.js
index 987a948..4fba4d4 100644
--- a/lib/dom.t.unpackDOMFragments.js
+++ b/lib/dom.t.unpackDOMFragments.js
@@ -40,7 +40,7 @@
 
        var resetDSR = false,
                currOffset = 0,
-               dsrFixer = new DOMTraverser(env);
+               dsrFixer = new DOMTraverser(env, true);
        dsrFixer.addHandler(null, function(node) {
                if (DU.isElt(node)) {
                        if (node.nodeName === 'A') {
@@ -70,7 +70,7 @@
        dsrFixer.traverse(fragment.firstChild);
 
        // Since targetNode will get re-organized, save data.parsoid
-       var dsrSaver = new DOMTraverser(env),
+       var dsrSaver = new DOMTraverser(env, true),
                saveHandler = function(node) {
                        if ( DU.isElt( node ) ) {
                                var dp = DU.getDataParsoid( node );
diff --git a/lib/domTraverser.js b/lib/domTraverser.js
index aa9c4f1..bff4dfc 100644
--- a/lib/domTraverser.js
+++ b/lib/domTraverser.js
@@ -7,9 +7,10 @@
  *
  * @param node {HTMLNode} The node to be traversed
  */
-function DOMTraverser(env) {
+function DOMTraverser(env, skipCheckIfAttached) {
        this.handlers = [];
        this.env = env;
+       this.checkIfAttached = !skipCheckIfAttached;
 }
 
 /**
@@ -32,6 +33,7 @@
 
 DOMTraverser.prototype.callHandlers = function ( node ) {
        var name = ( node.nodeName || '' ).toLowerCase(),
+               document = node.ownerDocument,
                ix, result;
 
        for ( ix = 0; ix < this.handlers.length; ix++ ) {
@@ -50,15 +52,13 @@
                                return result;
                        }
 
-                       // FIXME: this should be asserted and fixed, or removed
                        // Sanity check for broken handlers
-                       // if (node.parentNode === null) {
-                       //      this.env.log("error",
-                       //              'DOMPostProcessor.traverse: null 
parentNode!',
-                       //              'Bug in', 
this.handlers[ix].run.toString(),
-                       //              ' when handling', node.outerHTML);
-                       //      return node;
-                       // }
+                       if ( this.checkIfAttached ) {
+                               console.assert( DU.isAncestorOf( document, node 
),
+                                       'DOMPostProcessor.traverse: detached 
node. ' +
+                                       'Bug in ' + 
this.handlers[ix].run.toString() +
+                                       ' when handling', node.outerHTML );
+                       }
                }
        }
        return true;

-- 
To view, visit https://gerrit.wikimedia.org/r/124481
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Idb333aa77d54df4ada3c83da3ceda6e65fc016bc
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
Gerrit-Reviewer: Arlolra <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to