8000 Merge branch 'ellbee-slice_iterator_bug_#394' · powercoder23/immutable-js@6bb9e4a · GitHub
[go: up one dir, main page]

Skip to content

Commit 6bb9e4a

Browse files
committed
Merge branch 'ellbee-slice_iterator_bug_#394'
2 parents 82da3c5 + b1d0e11 commit 6bb9e4a

File tree

4 files changed

+21
-3
lines changed

4 files changed

+21
-3
lines changed

__tests__/slice.ts

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

100+
it('can create an iterator', () => {
101+
var seq = Seq([0,1,2,3,4,5]);
102+
var iterFront = seq.slice(0,2).values();
103+
expect(iterFront.next()).toEqual({value: 0, done: false});
104+
expect(iterFront.next()).toEqual({value: 1, done: false});
105+
expect(iterFront.next()).toEqual({value: undefined, done: true});
106+
107+
var iterMiddle = seq.slice(2,4).values();
108+
expect(iterMiddle.next()).toEqual({value: 2, done: false});
109+
expect(iterMiddle.next()).toEqual({value: 3, done: false});
110+
expect(iterMiddle.next()).toEqual({value: undefined, done: true});
111+
112+
var iterTail = seq.slice(4,123456).values();
113+
expect(iterTail.next()).toEqual({value: 4, done: false});
114+
expect(iterTail.next()).toEqual({value: 5, done: false});
115+
expect(iterTail.next()).toEqual({value: undefined, done: true});
116+
})
117+
100118
check.it('works like Array.prototype.slice',
101119
[gen.int, gen.array(gen.oneOf([gen.int, gen.undefined]), 0, 3)],
102120
(valuesLen, args) => {

dist/immutable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1350,7 +1350,7 @@
13501350
var skipped = 0;
13511351
var iterations = 0;
13521352
return new src_Iterator__Iterator(function() {
1353-
while (skipped++ !== resolvedBegin) {
1353+
while (skipped++ < resolvedBegin) {
13541354
iterator.next();
13551355
}
13561356
if (++iterations > sliceSize) {

dist/immutable.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Operations.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ export function sliceFactory(iterable, begin, end, useKeys) {
433433
var skipped = 0;
434434
var iterations = 0;
435435
return new Iterator(() => {
436-
while (skipped++ !== resolvedBegin) {
436+
while (skipped++ < resolvedBegin) {
437437
iterator.next();
438438
}
439439
if (++iterations > sliceSize) {

0 commit comments

Comments
 (0)
0