travis-ci
3296 of 4011 branches covered (82.17%)
Branch coverage included in aggregate %.
8 of 8 new or added lines in 1 file covered. (100.0%)
6540 of 7392 relevant lines covered (88.47%)
635438.03 hits per line
1 |
import ISequence from '../dataTypes/ISequence'; |
|
2 |
import sequenceFactory from '../dataTypes/sequenceFactory'; |
3✔ |
3 |
|
|
4 |
export default function createDoublyIterableSequence(sequence: ISequence): () => ISequence { |
3✔ |
5 |
const savedValues = [];
|
79,534✔ |
6 |
const backingIterator = sequence.value;
|
79,534✔ |
7 |
return () => {
|
79,534✔ |
8 |
let i = 0;
|
166,267✔ |
9 |
return sequenceFactory.create({
|
166,267✔ |
10 |
next: () => {
|
|
11 |
if (savedValues[i] !== undefined) {
|
|
12 |
return savedValues[i++];
|
197,851✔ |
13 |
} |
|
14 |
const val = backingIterator.next();
|
356,812✔ |
15 |
if (!val.ready) {
|
|
16 |
return val;
|
× |
17 |
} |
|
18 |
if (val.done) {
|
|
19 |
return val;
|
109,511✔ |
20 |
} |
|
21 |
savedValues[i++] = val; |
247,299✔ |
22 |
return val;
|
247,299✔ |
23 |
} |
|
24 |
}); |
|
25 |
}; |
|
26 |
} |