Catrope has uploaded a new change for review.
https://gerrit.wikimedia.org/r/82745
Change subject: Merge undefineds into undefined rather than []
......................................................................
Merge undefineds into undefined rather than []
ve.dm.MetaLinearData.static.merge( [ undefined, undefined, ... ] )
returned [ [] ], make it return [ undefined ] instead. This allows
us to lazily use the merge function to create metadata without having
to worry about denormalizing undefined to [] all over the place.
Change-Id: I41fe6472c2185a6315119a546a73765966d013d3
---
M modules/ve/dm/lineardata/ve.dm.MetaLinearData.js
1 file changed, 15 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/45/82745/1
diff --git a/modules/ve/dm/lineardata/ve.dm.MetaLinearData.js
b/modules/ve/dm/lineardata/ve.dm.MetaLinearData.js
index 32467e6..29344f7 100644
--- a/modules/ve/dm/lineardata/ve.dm.MetaLinearData.js
+++ b/modules/ve/dm/lineardata/ve.dm.MetaLinearData.js
@@ -27,25 +27,37 @@
/* Static Methods */
/**
- * Takes an array of meta linear data arrays and collapses them into a single
array.
+ * Takes an array of meta linear data arrays and collapses them into a single
array
+ * wrapped in an array.
*
* Undefined values will be discarded e.g.
* [ [ metaItem1, metaItem2 ], undefined, [ metaItem3 ], undefined ]
* =>
* [ [ metaItem1, metaItem2, metaItem3 ] ]
*
+ * If all values are undefined, the result is undefined wrapped in an array:
+ * [ undefined, undefined, ... ]
+ * =>
+ * [ undefined ]
+ *
+ * But if some of the values are empty arrays, the result is an empty array
wrapped in an array:
+ * [ undefined, [], undefined, undefined, [] ]
+ * =>
+ * [ [] ]
+ *
* @static
* @param {Array} data Meta linear data arrays
* @returns {Array} Merged data
*/
ve.dm.MetaLinearData.static.merge = function ( data ) {
- var i, merged = [];
+ var i, merged = [], allUndefined = true;
for ( i = 0; i < data.length; i++ ) {
if ( data[i] !== undefined ) {
+ allUndefined = false;
merged = merged.concat( data[i] );
}
}
- return [ merged ];
+ return allUndefined ? [ undefined ] : [ merged ];
};
/* Methods */
--
To view, visit https://gerrit.wikimedia.org/r/82745
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I41fe6472c2185a6315119a546a73765966d013d3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits