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

Change subject: Utility function for "index of node in its parentNode's 
childNode list"
......................................................................


Utility function for "index of node in its parentNode's childNode list"

Change-Id: I44c4f1257551e9f3bfec3ee1010b6ba8be09f717
---
M src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js
M src/ce/ve.ce.Surface.js
M src/ce/ve.ce.js
M src/ve.utils.js
4 files changed, 20 insertions(+), 19 deletions(-)

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



diff --git a/src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js 
b/src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js
index 77e0c1f..8a15d1d 100644
--- a/src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js
+++ b/src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js
@@ -116,16 +116,10 @@
                ) {
                        linkNode = skipNode.parentNode;
                        range = document.createRange();
-                       range.setStart(
-                               linkNode.parentNode,
-                               // Link's offset, minus 1 to allow for outer 
nail deletion
-                               // (browsers actually tend to adjust range 
offsets automatically
-                               // for previous sibling deletion, but just in 
case ...)
-                               Array.prototype.indexOf.call(
-                                       linkNode.parentNode.childNodes,
-                                       linkNode
-                               ) - 1
-                       );
+                       // Set start to link's offset, minus 1 to allow for 
outer nail deletion
+                       // (browsers actually tend to adjust range offsets 
automatically
+                       // for previous sibling deletion, but just in case ...)
+                       range.setStart( linkNode.parentNode, ve.parentIndex( 
linkNode ) - 1 );
                        // Remove the outer nails, then the link itself
                        linkNode.parentNode.removeChild( 
linkNode.previousSibling );
                        linkNode.parentNode.removeChild( linkNode.nextSibling );
diff --git a/src/ce/ve.ce.Surface.js b/src/ce/ve.ce.Surface.js
index e288175..a951eb0 100644
--- a/src/ce/ve.ce.Surface.js
+++ b/src/ce/ve.ce.Surface.js
@@ -1414,7 +1414,7 @@
                range.endContainer,
                range.endOffset,
                preUnicorn.parentNode,
-               Array.prototype.indexOf.call( preUnicorn.parentNode.childNodes, 
preUnicorn )
+               ve.parentIndex( preUnicorn )
        ) < 0 ) {
                // before the pre-unicorn
                fixup = -1;
diff --git a/src/ce/ve.ce.js b/src/ce/ve.ce.js
index 8d1ae42..73997fd 100644
--- a/src/ce/ve.ce.js
+++ b/src/ce/ve.ce.js
@@ -139,7 +139,7 @@
                offset = 0;
        } else {
                nextNode = node.parentNode;
-               offset = 1 + Array.prototype.indexOf.call( 
node.parentNode.childNodes, node );
+               offset = 1 + ve.parentIndex( node );
        }
        return { node: nextNode, offset: offset };
 };
@@ -159,7 +159,7 @@
                offset = previousNode.data.length;
        } else {
                previousNode = node.parentNode;
-               offset = Array.prototype.indexOf.call( 
node.parentNode.childNodes, node );
+               offset = ve.parentIndex( node );
        }
        return { node: previousNode, offset: offset };
 };
@@ -396,7 +396,7 @@
                if ( offset > 0 ) {
                        return false;
                }
-               offset = Array.prototype.indexOf.call( 
node.parentNode.childNodes, node );
+               offset = ve.parentIndex( node );
                node = node.parentNode;
        }
        if ( offset === 0 ) {
diff --git a/src/ve.utils.js b/src/ve.utils.js
index 7a15804..e7fb565 100644
--- a/src/ve.utils.js
+++ b/src/ve.utils.js
@@ -1324,6 +1324,16 @@
 };
 
 /**
+ * Get the index of a node in its parentNode's childNode list
+ *
+ * @param {Node} node The node
+ * @return {number} Index in parentNode's childNode list
+ */
+ve.parentIndex = function ( node ) {
+       return Array.prototype.indexOf.call( node.parentNode.childNodes, node );
+};
+
+/**
  * Get the offset path from ancestor to offset in descendant
  *
  * @param {Node} ancestor The ancestor node
@@ -1338,9 +1348,7 @@
                        ve.log( node, 'is not a descendant of', ancestor );
                        throw new Error( 'Not a descendant' );
                }
-               path.unshift(
-                       Array.prototype.indexOf.call( 
node.parentNode.childNodes, node )
-               );
+               path.unshift( ve.parentIndex( node ) );
                node = node.parentNode;
        }
        return path;
@@ -1513,8 +1521,7 @@
                                        steps: steps
                                };
                        }
-                       offset = Array.prototype.indexOf.call( 
node.parentNode.childNodes, node ) +
-                               ( forward ? 1 : 0 );
+                       offset = ve.parentIndex( node ) + ( forward ? 1 : 0 );
                        node = node.parentNode;
                        if ( !skipSoft || isHard ) {
                                return {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I44c4f1257551e9f3bfec3ee1010b6ba8be09f717
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Divec <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to