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