1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-25 13:12:26 +01:00

Fix iter.zip.

This doesn't appear to be called anywhere but is presumably available
for symmetry so the implementation roughly matches the slightly quirky
Ary#zip.  These might be better generalised at some point.
This commit is contained in:
Doug Kearns
2015-06-24 00:25:01 +10:00
parent 5eece742e1
commit 723ab5c052

View File

@@ -1743,18 +1743,19 @@ update(iter, {
},
/**
* Zips the contents of two arrays. The resulting array is the length of
* ary1, with any shortcomings of ary2 replaced with null strings.
* Zips the contents of two iterables. The resulting iterable is the length
* of iter1, with any shortcomings of iter2 replaced with null strings.
*
* @param {Array} ary1
* @param {Array} ary2
* @returns {Array}
* @param {Iterable} iter1
* @param {Iterable} iter2
* @returns {Generator}
*/
zip: function* zip(iter1, iter2) {
try {
yield [iter1.next(), iter2.next()];
let i = iter2[Symbol.iterator]();
for (let x of iter1) {
let y = i.next().value;
yield [x, y === undefined ? "" : y];
}
catch (e if e instanceof StopIteration) {}
}
});