8000 fix slice iterator bug #394 · powercoder23/immutable-js@6b2b75b · GitHub
[go: up one dir, main page]

Skip to content

Commit 6b2b75b

Browse files
committed
fix slice iterator bug immutable-js#394
1 parent f15503f commit 6b2b75b

File tree

4 files changed

+54
-33
lines changed

4 files changed

+54
-33
lines changed

__tests__/slice.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ describe('slice', () => {
9797
expect(v.slice(31).toList().toArray()).toEqual(a.slice(31));
9898
})
9999

100+
it('can create an iterator', () => {
101+
var iter = Seq([0,1,2,3,4,5]).slice(2,4).values();
102+
expect(iter.next()).toEqual({value: 2, done: false});
103+
expect(iter.next()).toEqual({value: 3, done: false});
104+
expect(iter.next()).toEqual({value: undefined, done: true});
105+
})
106+
100107
check.it('works like Array.prototype.slice',
101108
[gen.int, gen.array(gen.oneOf([gen.int, gen.undefined]), 0, 3)],
102109
(valuesLen, args) => {

dist/immutable.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,10 +1349,10 @@
13491349
var iterator = sliceSize && iterable.__iterator(type, reverse);
13501350
var skipped = 0;
13511351
var iterations = 0;
1352+
while (skipped++ !== resolvedBegin) {
1353+
iterator.next();
1354+
}
13521355
return new src_Iterator__Iterator(function() {
1353-
while (skipped++ !== resolvedBegin) {
1354-
iterator.next();
1355-
}
13561356
if (++iterations > sliceSize) {
13571357
return iteratorDone();
13581358
}

0 commit comments

Comments
 (0)
0