Krinkle has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/76660


Change subject: ve.copy: Remove obsolete copyArray and copyObject
......................................................................

ve.copy: Remove obsolete copyArray and copyObject

These have been pointing to the same method for a while now,
we can safely remove these obsolete aliases and just use it
as generic copy.

* Each file touched by my editor had its new line at EOF fixed
  where absent
* Don't copy an otherwise unused empty object
  (ve.dm.Converter)
* Use common ve#copy syntax instead to create a link
  (ve.dm.Document, ve.dm.example)
* Remove redundant conditionals for isArray/copyArray/copyObject
  (ve.dm.example)

Change-Id: If560e658dc1fb59bf01f702c97e3e82a50a8a255
---
M modules/ve-mw/dm/annotations/ve.dm.MWNowikiAnnotation.js
M modules/ve-mw/dm/nodes/ve.dm.MWMathNode.js
M modules/ve-mw/dm/nodes/ve.dm.MWReferenceListNode.js
M modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
M modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
M modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
M modules/ve-mw/test/dm/ve.dm.MWConverter.test.js
M modules/ve-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js
M modules/ve-mw/ui/widgets/ve.ui.MWMediaSearchWidget.js
M modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
M modules/ve/dm/metaitems/ve.dm.AlienMetaItem.js
M modules/ve/dm/nodes/ve.dm.AlienNode.js
M modules/ve/dm/ve.dm.Annotation.js
M modules/ve/dm/ve.dm.Converter.js
M modules/ve/dm/ve.dm.Document.js
M modules/ve/dm/ve.dm.DocumentSlice.js
M modules/ve/dm/ve.dm.IndexValueStore.js
M modules/ve/dm/ve.dm.LinearData.js
M modules/ve/dm/ve.dm.Model.js
M modules/ve/dm/ve.dm.Node.js
M modules/ve/dm/ve.dm.NodeFactory.js
M modules/ve/dm/ve.dm.Transaction.js
M modules/ve/test/dm/lineardata/ve.dm.MetaLinearData.test.js
M modules/ve/test/dm/ve.dm.Converter.test.js
M modules/ve/test/dm/ve.dm.Document.test.js
M modules/ve/test/dm/ve.dm.LinearData.test.js
M modules/ve/test/dm/ve.dm.SurfaceFragment.test.js
M modules/ve/test/dm/ve.dm.TransactionProcessor.test.js
M modules/ve/test/dm/ve.dm.example.js
M modules/ve/test/init/ve.init.Platform.test.js
M modules/ve/test/ui/actions/ve.ui.IndentationAction.test.js
M modules/ve/test/ui/actions/ve.ui.ListAction.test.js
M modules/ve/test/ve.qunit.js
M modules/ve/test/ve.test.js
M modules/ve/test/ve.test.utils.js
M modules/ve/ve.js
36 files changed, 76 insertions(+), 85 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/60/76660/1

diff --git a/modules/ve-mw/dm/annotations/ve.dm.MWNowikiAnnotation.js 
b/modules/ve-mw/dm/annotations/ve.dm.MWNowikiAnnotation.js
index ceb1bc0..abbb3d7 100644
--- a/modules/ve-mw/dm/annotations/ve.dm.MWNowikiAnnotation.js
+++ b/modules/ve-mw/dm/annotations/ve.dm.MWNowikiAnnotation.js
@@ -35,7 +35,7 @@
        return {
                'type': 'mwNowiki',
                'attributes': {
-                       'originalDomElements': ve.copyArray( domElements )
+                       'originalDomElements': ve.copy( domElements )
                }
        };
 };
@@ -71,8 +71,8 @@
        var parentResult = ve.dm.Annotation.static.getHashObject( dataElement );
        if ( parentResult.attributes.originalDomElements ) {
                // If present, replace originalDomElements with a DOM summary
-               parentResult.attributes = ve.copyObject( 
parentResult.attributes );
-               parentResult.attributes.originalDomElements = ve.copyArray(
+               parentResult.attributes = ve.copy( parentResult.attributes );
+               parentResult.attributes.originalDomElements = ve.copy(
                        parentResult.attributes.originalDomElements, 
ve.convertDomElements
                );
        }
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWMathNode.js 
b/modules/ve-mw/dm/nodes/ve.dm.MWMathNode.js
index 50edb39..cbd823b 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWMathNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWMathNode.js
@@ -56,7 +56,7 @@
 
 ve.dm.MWMathNode.static.toDomElements = function ( dataElement, doc ) {
        var el = doc.createElement( 'img' ),
-               mwData = ve.copyObject( dataElement.attributes.mw ),
+               mwData = ve.copy( dataElement.attributes.mw ),
                originalMw = dataElement.attributes.originalMw;
 
        mwData.body.extsrc = dataElement.attributes.extsrc;
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWReferenceListNode.js 
b/modules/ve-mw/dm/nodes/ve.dm.MWReferenceListNode.js
index bd5f82d..b2bc8ec 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWReferenceListNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWReferenceListNode.js
@@ -45,7 +45,7 @@
                        'mw': mwData,
                        'originalMw': mwDataJSON,
                        'about': domElements[0].getAttribute( 'about' ),
-                       'domElements': ve.copyArray( domElements ),
+                       'domElements': ve.copy( domElements ),
                        'refGroup': refGroup,
                        'listGroup': listGroup
                }
@@ -65,7 +65,7 @@
                els = [ el ];
        }
 
-       mwData = attribs.mw ? ve.copyObject( attribs.mw ) : {};
+       mwData = attribs.mw ? ve.copy( attribs.mw ) : {};
 
        mwData.name = 'references';
 
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js 
b/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
index cf7b19c..6ec731b 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
@@ -57,7 +57,7 @@
                'attributes': {
                        'mw': mwData,
                        'originalMw': mwDataJSON,
-                       'childDomElements': ve.copyArray( 
Array.prototype.slice.apply( domElements[0].childNodes ) ),
+                       'childDomElements': ve.copy( 
Array.prototype.slice.apply( domElements[0].childNodes ) ),
                        'about': about,
                        'listIndex': listIndex,
                        'listGroup': listGroup,
@@ -80,7 +80,7 @@
        el.setAttribute( 'about', dataElement.attributes.about );
        el.setAttribute( 'typeof', 'mw:Extension/ref' );
 
-       mwData = dataElement.attributes.mw ? ve.copyObject( 
dataElement.attributes.mw ) : {};
+       mwData = dataElement.attributes.mw ? ve.copy( dataElement.attributes.mw 
) : {};
        mwData.name = 'ref';
 
        setContents = dataElement.attributes.contentsUsed || 
dataElement.attributes.listKey === null;
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js 
b/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
index 6ffbf8f..a55fa6f 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
@@ -75,7 +75,7 @@
                'type': type,
                'attributes': {
                        'mw': mwData,
-                       'originalDomElements': ve.copyArray( domElements ),
+                       'originalDomElements': ve.copy( domElements ),
                        'originalMw': mwDataJSON
                }
        };
diff --git a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js 
b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
index 29a4b97..1964b55 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
@@ -1115,7 +1115,7 @@
        // but we can defer the actual comparison
        var viewPage = this,
                doc = viewPage.surface.getModel().getDocument(),
-               data = ve.copyArray( doc.getFullData() ),
+               data = ve.copy( doc.getFullData() ),
                oldDom = viewPage.doc,
                d = $.Deferred();
 
diff --git a/modules/ve-mw/test/dm/ve.dm.MWConverter.test.js 
b/modules/ve-mw/test/dm/ve.dm.MWConverter.test.js
index b12d533..0140a38 100644
--- a/modules/ve-mw/test/dm/ve.dm.MWConverter.test.js
+++ b/modules/ve-mw/test/dm/ve.dm.MWConverter.test.js
@@ -10,9 +10,9 @@
 /* Tests */
 
 QUnit.test( 'getDataFromDom', function ( assert ) {
-       ve.test.utils.runGetDataFromDomTests( assert, ve.copyObject( 
ve.dm.mwExample.domToDataCases ) );
+       ve.test.utils.runGetDataFromDomTests( assert, ve.copy( 
ve.dm.mwExample.domToDataCases ) );
 } );
 
 QUnit.test( 'getDomFromData', function ( assert ) {
-       ve.test.utils.runGetDomFromDataTests( assert, ve.copyObject( 
ve.dm.mwExample.domToDataCases ) );
+       ve.test.utils.runGetDomFromDataTests( assert, ve.copy( 
ve.dm.mwExample.domToDataCases ) );
 } );
diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js 
b/modules/ve-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js
index 2794be0..0bfc223 100644
--- a/modules/ve-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js
+++ b/modules/ve-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js
@@ -101,7 +101,7 @@
 
        // Initialization
        if ( this.node instanceof ve.ce.MWTransclusionNode ) {
-               this.transclusion.load( ve.copyObject( 
this.node.getModel().getAttribute( 'mw' ) ) );
+               this.transclusion.load( ve.copy( 
this.node.getModel().getAttribute( 'mw' ) ) );
        } else {
                this.transclusion.addPart(
                        new ve.dm.MWTemplatePlaceholderModel( 
this.transclusion, 'user' )
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWMediaSearchWidget.js 
b/modules/ve-mw/ui/widgets/ve.ui.MWMediaSearchWidget.js
index aee1b8c..990f848 100755
--- a/modules/ve-mw/ui/widgets/ve.ui.MWMediaSearchWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWMediaSearchWidget.js
@@ -28,7 +28,7 @@
        ve.ui.SearchWidget.call( this, config );
 
        // Properties
-       this.sources = ve.copyArray( ve.init.platform.getMediaSources() );
+       this.sources = ve.copy( ve.init.platform.getMediaSources() );
        this.size = config.size || 150;
        this.queryTimeout = null;
        this.titles = {};
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js 
b/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
index b45110f..548a666 100644
--- a/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
@@ -111,7 +111,7 @@
                indexOrder = group.indexOrder;
                for ( j = 0, jLen = indexOrder.length; j < jLen; j++ ) {
                        refnode = firstNodes[indexOrder[j]];
-                       attr = ve.copyObject( refnode.getAttributes() );
+                       attr = ve.copy( refnode.getAttributes() );
                        view = new ve.ce.InternalItemNode( 
internalList.getItemNode( attr.listIndex ) );
 
                        // HACK: PHP parser doesn't wrap single lines in a 
paragraph
diff --git a/modules/ve/dm/metaitems/ve.dm.AlienMetaItem.js 
b/modules/ve/dm/metaitems/ve.dm.AlienMetaItem.js
index a7e58ae..c6ab644 100644
--- a/modules/ve/dm/metaitems/ve.dm.AlienMetaItem.js
+++ b/modules/ve/dm/metaitems/ve.dm.AlienMetaItem.js
@@ -34,7 +34,7 @@
        return {
                'type': this.name,
                'attributes': {
-                       'domElements': ve.copyArray( domElements )
+                       'domElements': ve.copy( domElements )
                }
        };
 };
diff --git a/modules/ve/dm/nodes/ve.dm.AlienNode.js 
b/modules/ve/dm/nodes/ve.dm.AlienNode.js
index 880dca7..073cfbf 100644
--- a/modules/ve/dm/nodes/ve.dm.AlienNode.js
+++ b/modules/ve/dm/nodes/ve.dm.AlienNode.js
@@ -46,7 +46,7 @@
        return {
                'type': type,
                'attributes': {
-                       'domElements': ve.copyArray( domElements )
+                       'domElements': ve.copy( domElements )
                }
        };
 };
diff --git a/modules/ve/dm/ve.dm.Annotation.js 
b/modules/ve/dm/ve.dm.Annotation.js
index 89933b1..cdedd31 100644
--- a/modules/ve/dm/ve.dm.Annotation.js
+++ b/modules/ve/dm/ve.dm.Annotation.js
@@ -114,7 +114,7 @@
        var comparableAttributes, attributes = this.getHtmlAttributes();
 
        if ( attributes[0] ) {
-               comparableAttributes = ve.copyObject( attributes[0].values );
+               comparableAttributes = ve.copy( attributes[0].values );
                delete comparableAttributes['data-parsoid'];
                return comparableAttributes;
        } else {
diff --git a/modules/ve/dm/ve.dm.Converter.js b/modules/ve/dm/ve.dm.Converter.js
index 09c9222..f79afaa 100644
--- a/modules/ve/dm/ve.dm.Converter.js
+++ b/modules/ve/dm/ve.dm.Converter.js
@@ -1383,7 +1383,7 @@
                                        // we modify .veInternal.whitespace[1] 
in some cases
                                        childDomElements[0].veInternal = 
ve.extendObject(
                                                { 'childDomElements': 
childDomElements },
-                                               ve.copyObject( 
dataElement.internal || {} )
+                                               dataElement.internal ? ve.copy( 
dataElement.internal ) : {}
                                        );
                                        // Add elements
                                        for ( j = 0; j < 
childDomElements.length; j++ ) {
diff --git a/modules/ve/dm/ve.dm.Document.js b/modules/ve/dm/ve.dm.Document.js
index 56bf4cb..19806a7 100644
--- a/modules/ve/dm/ve.dm.Document.js
+++ b/modules/ve/dm/ve.dm.Document.js
@@ -10,7 +10,7 @@
  *
  * WARNING: The data parameter is passed by reference. Do not modify a data 
array after passing
  * it to this constructor, and do not construct multiple Documents with the 
same data array. If you
- * need to do these things, make a deep copy (ve.copyArray()) of the data 
array and operate on the
+ * need to do these things, make a deep copy (ve#copy) of the data array and 
operate on the
  * copy.
  *
  * @class
@@ -322,7 +322,7 @@
        } else {
                throw new Error( 'rangeOrNode must be a ve.Range or a 
ve.dm.Node' );
        }
-       data = ve.copyArray( this.getFullData( range, true ) );
+       data = ve.copy( this.getFullData( range, true ) );
        if ( range.start > listRange.start || range.end < listRange.end ) {
                // The range does not include the entire internal list, so add 
it
                data = data.concat( this.getFullData( listRange ) );
@@ -749,7 +749,7 @@
                                        if ( openingStack.length > 0 ) {
                                                popped = openingStack.pop();
                                                parentType = popped.type;
-                                               reopenElements.push( 
ve.copyObject( popped ) );
+                                               reopenElements.push( ve.copy( 
popped ) );
                                                // The opening was on 
openingStack, so we're closing a node that was opened
                                                // within data. Don't track 
that on closingStack
                                        } else {
diff --git a/modules/ve/dm/ve.dm.DocumentSlice.js 
b/modules/ve/dm/ve.dm.DocumentSlice.js
index cd912a0..9d6d1a1 100644
--- a/modules/ve/dm/ve.dm.DocumentSlice.js
+++ b/modules/ve/dm/ve.dm.DocumentSlice.js
@@ -14,7 +14,7 @@
  */
 ve.dm.DocumentSlice = function VeDmDocumentSlice( data, range ) {
        // Properties
-       this.data = ve.copyArray( data );
+       this.data = ve.copy( data );
        this.range = range || new ve.Range( 0, data.length );
 };
 
@@ -53,4 +53,4 @@
                        this.data[i] = node.getClonedElement();
                }
        }
-};
\ No newline at end of file
+};
diff --git a/modules/ve/dm/ve.dm.IndexValueStore.js 
b/modules/ve/dm/ve.dm.IndexValueStore.js
index 350047e..4ba3d3d 100644
--- a/modules/ve/dm/ve.dm.IndexValueStore.js
+++ b/modules/ve/dm/ve.dm.IndexValueStore.js
@@ -42,7 +42,7 @@
                        index = this.valueStore.length;
                }
                if ( ve.isArray( value ) ) {
-                       this.valueStore[index] = ve.copyArray( value );
+                       this.valueStore[index] = ve.copy( value );
                } else if ( typeof value === 'object' ) {
                        this.valueStore[index] = ve.cloneObject( value );
                } else {
@@ -151,4 +151,4 @@
                mapping[other.hashStore[key]] = this.hashStore[key];
        }
        return mapping;
-};
\ No newline at end of file
+};
diff --git a/modules/ve/dm/ve.dm.LinearData.js 
b/modules/ve/dm/ve.dm.LinearData.js
index 98bb7fb..1f887f8 100644
--- a/modules/ve/dm/ve.dm.LinearData.js
+++ b/modules/ve/dm/ve.dm.LinearData.js
@@ -217,5 +217,5 @@
        // IE work-around: arr.slice( 0, undefined ) returns [] while 
arr.slice( 0 ) behaves correctly
        data = end === undefined ? this.slice( start ) : this.slice( start, end 
);
        // Return either the slice or a deep copy of the slice
-       return deep ? ve.copyArray( data ) : data;
+       return deep ? ve.copy( data ) : data;
 };
diff --git a/modules/ve/dm/ve.dm.Model.js b/modules/ve/dm/ve.dm.Model.js
index c04eed2..d02f05f 100644
--- a/modules/ve/dm/ve.dm.Model.js
+++ b/modules/ve/dm/ve.dm.Model.js
@@ -371,7 +371,7 @@
  * @returns {Object} Cloned element object
  */
 ve.dm.Model.prototype.getClonedElement = function () {
-       return ve.copyObject( this.element );
+       return ve.copy( this.element );
 };
 
 /**
diff --git a/modules/ve/dm/ve.dm.Node.js b/modules/ve/dm/ve.dm.Node.js
index 4ac942a..f1b1b05 100644
--- a/modules/ve/dm/ve.dm.Node.js
+++ b/modules/ve/dm/ve.dm.Node.js
@@ -254,7 +254,7 @@
  * @returns {Object} Cloned element object
  */
 ve.dm.Node.prototype.getClonedElement = function () {
-       var clone = ve.copyObject( this.element );
+       var clone = ve.copy( this.element );
        if ( clone.internal ) {
                delete clone.internal.generated;
                if ( ve.isEmptyObject( clone.internal ) ) {
diff --git a/modules/ve/dm/ve.dm.NodeFactory.js 
b/modules/ve/dm/ve.dm.NodeFactory.js
index 812c542..d4a50e6 100644
--- a/modules/ve/dm/ve.dm.NodeFactory.js
+++ b/modules/ve/dm/ve.dm.NodeFactory.js
@@ -37,7 +37,7 @@
        if ( type in this.registry ) {
                attributes = ve.extendObject( {}, 
this.registry[type].static.defaultAttributes, attributes );
                if ( !ve.isEmptyObject( attributes ) ) {
-                       element.attributes = ve.copyObject( attributes );
+                       element.attributes = ve.copy( attributes );
                }
                return element;
        }
diff --git a/modules/ve/dm/ve.dm.Transaction.js 
b/modules/ve/dm/ve.dm.Transaction.js
index 15261d1..f5b7e3a 100644
--- a/modules/ve/dm/ve.dm.Transaction.js
+++ b/modules/ve/dm/ve.dm.Transaction.js
@@ -452,11 +452,11 @@
                                branchOuterRange.start - ( previousBranch ? 
previousBranchOuterRange.end : 0 )
                        );
                        // Replace the opening
-                       tx.pushReplace( doc, branchOuterRange.start, 1, 
[ve.copyObject( opening )] );
+                       tx.pushReplace( doc, branchOuterRange.start, 1, [ 
ve.copy( opening ) ] );
                        // Retain the contents
                        tx.pushRetain( branch.getLength() );
                        // Replace the closing
-                       tx.pushReplace( doc, branchOuterRange.end - 1, 1, 
[ve.copyObject( closing )] );
+                       tx.pushReplace( doc, branchOuterRange.end - 1, 1, [ 
ve.copy( closing ) ] );
                        // Remember this branch and its range for next time
                        previousBranch = branch;
                        previousBranchOuterRange = branchOuterRange;
@@ -540,7 +540,7 @@
                }
                // Instead of putting in unwrapOuter as given, put it in the
                // way it appears in the model so we pick up any attributes
-               tx.pushReplace( doc, range.start - unwrapOuter.length, 
unwrapOuter.length, ve.copyArray( wrapOuter ) );
+               tx.pushReplace( doc, range.start - unwrapOuter.length, 
unwrapOuter.length, ve.copy( wrapOuter ) );
        }
 
        if ( wrapEach.length > 0 || unwrapEach.length > 0 ) {
@@ -567,7 +567,7 @@
                                                }
                                                // Instead of putting in 
unwrapEach as given, put it in the
                                                // way it appears in the model, 
so we pick up any attributes
-                                               tx.pushReplace( doc, i, 
unwrapEach.length, ve.copyArray( wrapEach ) );
+                                               tx.pushReplace( doc, i, 
unwrapEach.length, ve.copy( wrapEach ) );
 
                                                // Store this offset for later
                                                startOffset = i;
@@ -581,7 +581,7 @@
                                                // Retain the contents of what 
we're wrapping
                                                tx.pushRetain( i - startOffset 
+ 1 - unwrapEach.length*2 );
                                                // Replace the closing elements
-                                               tx.pushReplace( doc, i + 1 - 
unwrapEach.length, unwrapEach.length, ve.copyArray( closingWrapEach ) );
+                                               tx.pushReplace( doc, i + 1 - 
unwrapEach.length, unwrapEach.length, ve.copy( closingWrapEach ) );
                                        }
                                }
                        }
diff --git a/modules/ve/test/dm/lineardata/ve.dm.MetaLinearData.test.js 
b/modules/ve/test/dm/lineardata/ve.dm.MetaLinearData.test.js
index e5fff04..1cb9d3a 100644
--- a/modules/ve/test/dm/lineardata/ve.dm.MetaLinearData.test.js
+++ b/modules/ve/test/dm/lineardata/ve.dm.MetaLinearData.test.js
@@ -11,7 +11,7 @@
 
 QUnit.test( 'basic usage', 6, function ( assert ) {
        var store = new ve.dm.IndexValueStore(),
-               data = new ve.dm.MetaLinearData( store, ve.copyArray( 
ve.dm.example.withMetaMetaData ) );
+               data = new ve.dm.MetaLinearData( store, ve.copy( 
ve.dm.example.withMetaMetaData ) );
 
        assert.equal( data.getData(), data.data, 'getData: with no arguments 
returns data by reference' );
        assert.deepEqualWithDomElements( data.getData(), 
ve.dm.example.withMetaMetaData, 'getData: full array matches source data' );
diff --git a/modules/ve/test/dm/ve.dm.Converter.test.js 
b/modules/ve/test/dm/ve.dm.Converter.test.js
index 4de2d16..8221cde 100644
--- a/modules/ve/test/dm/ve.dm.Converter.test.js
+++ b/modules/ve/test/dm/ve.dm.Converter.test.js
@@ -40,9 +40,9 @@
 } );
 
 QUnit.test( 'getDataFromDom', function ( assert ) {
-       ve.test.utils.runGetDataFromDomTests( assert, ve.copyObject( 
ve.dm.example.domToDataCases ) );
+       ve.test.utils.runGetDataFromDomTests( assert, ve.copy( 
ve.dm.example.domToDataCases ) );
 } );
 
 QUnit.test( 'getDomFromData', function ( assert ) {
-       ve.test.utils.runGetDomFromDataTests( assert, ve.copyObject( 
ve.dm.example.domToDataCases ) );
+       ve.test.utils.runGetDomFromDataTests( assert, ve.copy( 
ve.dm.example.domToDataCases ) );
 } );
diff --git a/modules/ve/test/dm/ve.dm.Document.test.js 
b/modules/ve/test/dm/ve.dm.Document.test.js
index ae33b0e..bcacb2d 100644
--- a/modules/ve/test/dm/ve.dm.Document.test.js
+++ b/modules/ve/test/dm/ve.dm.Document.test.js
@@ -60,7 +60,7 @@
 
 QUnit.test( 'getData', 1, function ( assert ) {
        var doc = ve.dm.example.createExampleDocument(),
-               expectedData = ve.dm.example.preprocessAnnotations( 
ve.copyArray( ve.dm.example.data ) );
+               expectedData = ve.dm.example.preprocessAnnotations( ve.copy( 
ve.dm.example.data ) );
        assert.deepEqualWithDomElements( doc.getData(), expectedData.getData() 
);
 } );
 
@@ -221,7 +221,7 @@
 
 QUnit.test( 'getDataFromNode', 3, function ( assert ) {
        var doc = ve.dm.example.createExampleDocument(),
-               expectedData = ve.dm.example.preprocessAnnotations( 
ve.copyArray( ve.dm.example.data ) );
+               expectedData = ve.dm.example.preprocessAnnotations( ve.copy( 
ve.dm.example.data ) );
        assert.deepEqual(
                doc.getDataFromNode( doc.getDocumentNode().getChildren()[0] ),
                expectedData.slice( 1, 4 ),
@@ -450,4 +450,4 @@
                Error,
                'exception thrown when trying to roll back a transaction that 
has already been rolled back'
        );
-} );
\ No newline at end of file
+} );
diff --git a/modules/ve/test/dm/ve.dm.LinearData.test.js 
b/modules/ve/test/dm/ve.dm.LinearData.test.js
index 7c2fe62..6fd379e 100644
--- a/modules/ve/test/dm/ve.dm.LinearData.test.js
+++ b/modules/ve/test/dm/ve.dm.LinearData.test.js
@@ -11,7 +11,7 @@
 
 QUnit.test( 'basic usage', 7, function ( assert ) {
        var store = new ve.dm.IndexValueStore(),
-               data = new ve.dm.LinearData( store, ve.copyArray( 
ve.dm.example.data ) );
+               data = new ve.dm.LinearData( store, ve.copy( ve.dm.example.data 
) );
 
        assert.equal( data.getData(), data.data, 'getData: with no arguments 
returns data by reference' );
        assert.deepEqual( data.getData(), ve.dm.example.data, 'getData: full 
array matches source data' );
@@ -28,8 +28,8 @@
        var dataSlice, expectedDataSlice,
                dataSplice, expectedDataSplice,
                store = new ve.dm.IndexValueStore(),
-               data = new ve.dm.LinearData( store, ve.copyArray( 
ve.dm.example.data ) ),
-               expectedData = ve.copyArray( ve.dm.example.data );
+               data = new ve.dm.LinearData( store, ve.copy( ve.dm.example.data 
) ),
+               expectedData = ve.copy( ve.dm.example.data );
 
        assert.deepEqual( data.slice( 7, 22 ), expectedData.slice( 7, 22 ),
                'slice: result matches slice'
@@ -49,8 +49,8 @@
        );
 
        // reset data
-       data = new ve.dm.LinearData( store, ve.copyArray( ve.dm.example.data ) 
);
-       expectedData = ve.copyArray( ve.dm.example.data );
+       data = new ve.dm.LinearData( store, ve.copy( ve.dm.example.data ) );
+       expectedData = ve.copy( ve.dm.example.data );
 
        assert.deepEqual( data.splice( 1, 3, 'x', 'y', 'z' ), 
expectedData.splice( 1, 3, 'x', 'y', 'z' ),
                'splice: result matches splice'
@@ -70,8 +70,8 @@
        );
 
        // reset data
-       data = new ve.dm.LinearData( store, ve.copyArray( ve.dm.example.data ) 
);
-       expectedData = ve.copyArray( ve.dm.example.data );
+       data = new ve.dm.LinearData( store, ve.copy( ve.dm.example.data ) );
+       expectedData = ve.copy( ve.dm.example.data );
 
        assert.deepEqual(
                data.batchSplice( 1, 3, ['x', 'y', 'z'] ),
diff --git a/modules/ve/test/dm/ve.dm.SurfaceFragment.test.js 
b/modules/ve/test/dm/ve.dm.SurfaceFragment.test.js
index 07da586..f188eab 100644
--- a/modules/ve/test/dm/ve.dm.SurfaceFragment.test.js
+++ b/modules/ve/test/dm/ve.dm.SurfaceFragment.test.js
@@ -147,9 +147,9 @@
                expectedDoc = ve.dm.example.createExampleDocument(),
                surface = new ve.dm.Surface( doc ),
                fragment = new ve.dm.SurfaceFragment( surface, new ve.Range( 1, 
56 ) ),
-               expectedData = ve.copyArray( expectedDoc.data.slice( 0, 1 ) )
-                       .concat( ve.copyArray( expectedDoc.data.slice( 4, 5 ) ) 
)
-                       .concat( ve.copyArray( expectedDoc.data.slice( 55 ) ) );
+               expectedData = ve.copy( expectedDoc.data.slice( 0, 1 ) )
+                       .concat( ve.copy( expectedDoc.data.slice( 4, 5 ) ) )
+                       .concat( ve.copy( expectedDoc.data.slice( 55 ) ) );
        fragment.removeContent();
        assert.deepEqual(
                doc.getData(),
@@ -350,7 +350,7 @@
        // Rewrap paragrphs as headings
        // The intermediate stage (plain text attached to the document) would 
be invalid
        // if performed as an unwrap and a wrap
-       expectedData = ve.copyArray( doc.getData() );
+       expectedData = ve.copy( doc.getData() );
 
        fragment = new ve.dm.SurfaceFragment( surface, new ve.Range( 59, 65 ) );
        fragment.rewrapNodes( 1, [ { 'type': 'heading', 'attributes': { 
'level': 1 } } ] );
@@ -369,7 +369,7 @@
                originalDoc = ve.dm.example.createExampleDocument(),
                surface = new ve.dm.Surface( doc ),
                fragment = new ve.dm.SurfaceFragment( surface, new ve.Range( 
55, 61 ) ),
-               expectedData = ve.copyArray( doc.getData() );
+               expectedData = ve.copy( doc.getData() );
 
        // Make 2 paragraphs into 1 lists of 1 item with 2 paragraphs
        fragment.wrapAllNodes(
diff --git a/modules/ve/test/dm/ve.dm.TransactionProcessor.test.js 
b/modules/ve/test/dm/ve.dm.TransactionProcessor.test.js
index b52623a..886f1b4 100644
--- a/modules/ve/test/dm/ve.dm.TransactionProcessor.test.js
+++ b/modules/ve/test/dm/ve.dm.TransactionProcessor.test.js
@@ -350,10 +350,10 @@
                // Generate original document
                originalData = cases[msg].data || ve.dm.example.data;
                originalDoc = new ve.dm.Document(
-                       ve.dm.example.preprocessAnnotations( ve.copyArray( 
originalData ), store )
+                       ve.dm.example.preprocessAnnotations( ve.copy( 
originalData ), store )
                );
                testDoc = new ve.dm.Document(
-                       ve.dm.example.preprocessAnnotations( ve.copyArray( 
originalData ), store )
+                       ve.dm.example.preprocessAnnotations( ve.copy( 
originalData ), store )
                );
 
                tx = new ve.dm.Transaction();
@@ -367,7 +367,7 @@
 
                if ( 'expected' in cases[msg] ) {
                        // Generate expected document
-                       expectedData = ve.copyArray( originalData );
+                       expectedData = ve.copy( originalData );
                        cases[msg].expected( expectedData );
                        expectedDoc = new ve.dm.Document(
                                ve.dm.example.preprocessAnnotations( 
expectedData, store )
diff --git a/modules/ve/test/dm/ve.dm.example.js 
b/modules/ve/test/dm/ve.dm.example.js
index b190508..e3012f3 100644
--- a/modules/ve/test/dm/ve.dm.example.js
+++ b/modules/ve/test/dm/ve.dm.example.js
@@ -34,7 +34,7 @@
        var i, key;
 
        // Sanity check to make sure ve.dm.example data has not been passed in
-       // by reference. Always use ve.copyArray.
+       // by reference. Always use ve#copy.
        for ( i in ve.dm.example ) {
                if ( data === ve.dm.example[i] ) {
                        throw new Error( 'Example data passed to 
preprocessAnnotations by reference' );
@@ -118,7 +118,7 @@
                throw new Error( 'Example data \'' + name + '\' not found' );
        }
        doc = new ve.dm.Document(
-               ve.dm.example.preprocessAnnotations( ve.copyArray( object[name] 
), store )
+               ve.dm.example.preprocessAnnotations( ve.copy( object[name] ), 
store )
        );
        // HACK internalList isn't populated when creating a document from data
        if ( object[name].internalItems ) {
diff --git a/modules/ve/test/init/ve.init.Platform.test.js 
b/modules/ve/test/init/ve.init.Platform.test.js
index ec021b4..27515f8 100644
--- a/modules/ve/test/init/ve.init.Platform.test.js
+++ b/modules/ve/test/init/ve.init.Platform.test.js
@@ -21,7 +21,7 @@
                        ve.init.platform.messages = {};
                } else if ( ve.init.mw && ve.init.platform instanceof 
ve.init.mw.Platform ) {
                        /*global mw */
-                       this.mwMessagesValues = ve.copyObject( 
mw.messages.values );
+                       this.mwMessagesValues = ve.copy( mw.messages.values );
                }
        },
        teardown: function () {
diff --git a/modules/ve/test/ui/actions/ve.ui.IndentationAction.test.js 
b/modules/ve/test/ui/actions/ve.ui.IndentationAction.test.js
index 89ec5ea..baadf20 100644
--- a/modules/ve/test/ui/actions/ve.ui.IndentationAction.test.js
+++ b/modules/ve/test/ui/actions/ve.ui.IndentationAction.test.js
@@ -15,8 +15,8 @@
                target = new ve.init.sa.Target( $( '#qunit-fixture' ), dom ),
                surface = target.surface,
                indentationAction = new ve.ui.IndentationAction( surface ),
-               data = ve.copyArray( 
surface.getModel().getDocument().getFullData() ),
-               originalData = ve.copyArray( data );
+               data = ve.copy( surface.getModel().getDocument().getFullData() 
),
+               originalData = ve.copy( data );
 
        expectedData( data );
        if ( expectedOriginalData ) {
diff --git a/modules/ve/test/ui/actions/ve.ui.ListAction.test.js 
b/modules/ve/test/ui/actions/ve.ui.ListAction.test.js
index 956cbdc..6d0ade2 100644
--- a/modules/ve/test/ui/actions/ve.ui.ListAction.test.js
+++ b/modules/ve/test/ui/actions/ve.ui.ListAction.test.js
@@ -15,8 +15,8 @@
                target = new ve.init.sa.Target( $( '#qunit-fixture' ), dom ),
                surface = target.surface,
                listAction = new ve.ui.ListAction( surface ),
-               data = ve.copyArray( 
surface.getModel().getDocument().getFullData() ),
-               originalData = ve.copyArray( data );
+               data = ve.copy( surface.getModel().getDocument().getFullData() 
),
+               originalData = ve.copy( data );
 
        expectedData( data );
        if ( expectedOriginalData ) {
diff --git a/modules/ve/test/ve.qunit.js b/modules/ve/test/ve.qunit.js
index 5b96c5f..c33fc05 100644
--- a/modules/ve/test/ve.qunit.js
+++ b/modules/ve/test/ve.qunit.js
@@ -84,9 +84,8 @@
 }
 
 /**
- * Callback for ve.copyArray/Object to convert nodes to a comparable summary
+ * Callback for ve#copy to convert nodes to a comparable summary.
  *
- * @method
  * @private
  * @param {ve.dm.Node|Object} value Value in the object/array
  * @returns {Object} Node summary if value is a node, otherwise just the value
@@ -161,8 +160,8 @@
  */
 QUnit.assert.deepEqualWithDomElements = function ( actual, expected, message ) 
{
        // Recursively copy objects or arrays, converting any dom elements 
found to comparable summaries
-       actual = ve.isArray( actual ) ? ve.copyArray( actual, 
ve.convertDomElements ) : ve.copyObject( actual, ve.convertDomElements );
-       expected = ve.isArray( expected ) ? ve.copyArray( expected, 
ve.convertDomElements ) : ve.copyObject( expected, ve.convertDomElements );
+       actual = ve.copy( actual, ve.convertDomElements );
+       expected = ve.copy( expected, ve.convertDomElements );
 
        QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
 };
@@ -174,8 +173,8 @@
  */
 QUnit.assert.deepEqualWithNodeTree = function ( actual, expected, message ) {
        // Recursively copy objects or arrays, converting any dom elements 
found to comparable summaries
-       actual = ve.isArray( actual ) ? ve.copyArray( actual, convertNodes ) : 
ve.copyObject( actual, convertNodes );
-       expected = ve.isArray( expected ) ? ve.copyArray( expected, 
convertNodes ) : ve.copyObject( expected, convertNodes );
+       actual = ve.copy( actual, convertNodes );
+       expected = ve.copy( expected, convertNodes );
 
        QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
 };
diff --git a/modules/ve/test/ve.test.js b/modules/ve/test/ve.test.js
index 0c6ce34..c87ba9c 100644
--- a/modules/ve/test/ve.test.js
+++ b/modules/ve/test/ve.test.js
@@ -48,9 +48,7 @@
 
 // ve.compare: Tested upstream (OOJS)
 
-// ve.copyArray: Tested upstream (OOJS)
-
-// ve.copyObject: Tested upstream (OOJS)
+// ve.copy: Tested upstream (OOJS)
 
 // ve.isPlainObject: Tested upstream (jQuery)
 
@@ -495,4 +493,4 @@
                        cases[i].msg + ' (inner)'
                );
        }
-} );
\ No newline at end of file
+} );
diff --git a/modules/ve/test/ve.test.utils.js b/modules/ve/test/ve.test.utils.js
index 42d9033..1f34080 100644
--- a/modules/ve/test/ve.test.utils.js
+++ b/modules/ve/test/ve.test.utils.js
@@ -13,7 +13,7 @@
                fragment = new ve.dm.SurfaceFragment( surface, range ),
                data;
 
-       data = ve.copyArray( doc.getFullData() );
+       data = ve.copy( doc.getFullData() );
        fragment.isolateAndUnwrap( type );
        expected( data );
 
@@ -26,8 +26,8 @@
                target = new ve.init.sa.Target( $( '#qunit-fixture' ), dom ),
                surface = target.surface,
                formatAction = new ve.ui.FormatAction( surface ),
-               data = ve.copyArray( 
surface.getModel().getDocument().getFullData() ),
-               originalData = ve.copyArray( data );
+               data = ve.copy( surface.getModel().getDocument().getFullData() 
),
+               originalData = ve.copy( data );
 
        expectedData( data );
 
@@ -108,7 +108,7 @@
                        cases[msg].modify( cases[msg].data );
                }
                doc = new ve.dm.Document( ve.dm.example.preprocessAnnotations( 
cases[msg].data, store ) );
-               originalData = ve.copyArray( doc.getFullData() );
+               originalData = ve.copy( doc.getFullData() );
                assert.equalDomElement(
                        ve.dm.converter.getDomFromData( doc.getFullData(), 
doc.getStore(), doc.getInternalList() ),
                        ve.createDocumentFromHtml( cases[msg].normalizedHtml || 
cases[msg].html ),
diff --git a/modules/ve/ve.js b/modules/ve/ve.js
index 622a513..21391f8 100644
--- a/modules/ve/ve.js
+++ b/modules/ve/ve.js
@@ -114,13 +114,7 @@
         * @method
         * @inheritdoc OO#copy
         */
-       ve.copyArray = oo.copy;
-
-       /**
-        * @method
-        * @inheritdoc OO#copy
-        */
-       ve.copyObject = oo.copy;
+       ve.copy = oo.copy;
 
        /**
         * Copy an array of DOM elements, optionally into a different document.
@@ -803,7 +797,7 @@
        };
 
        /**
-        * Callback for #copyArray and #copyObject to convert nodes to a 
comparable summary.
+        * Callback for #copy to convert nodes to a comparable summary.
         *
         * @private
         * @param {Object} value Value in the object/array

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If560e658dc1fb59bf01f702c97e3e82a50a8a255
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Krinkle <[email protected]>

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

Reply via email to