Skip to content

Commit 8e70fe7

Browse files
blicklycopybara-github
authored andcommitted
Simplify the definition of $jscomp.iteratorFromArray
PiperOrigin-RevId: 326286105
1 parent f2a3751 commit 8e70fe7

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/com/google/javascript/jscomp/js/es6/util/iteratorfromarray.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,17 @@ $jscomp.iteratorFromArray = function(array, transform) {
3232
// NOTE: IE8 doesn't support indexing from boxed Strings.
3333
if (array instanceof String) array = array + '';
3434
var i = 0;
35+
var done = false;
3536
var iter = {
3637
next: function() {
37-
if (i < array.length) {
38+
// Once we return done, we must always return done, even if the array
39+
// grows later.
40+
if (!done && i < array.length) {
3841
var index = i++;
3942
return {value: transform(index, array[index]), done: false};
4043
}
41-
iter.next = function() { return {done: true, value: void 0}; };
42-
return iter.next();
44+
done = true;
45+
return {done: true, value: void 0};
4346
}
4447
};
4548
iter[Symbol.iterator] = function() { return iter; };

src/com/google/javascript/jscomp/resources/resources.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)