Code coverage report for src/reduce.js

Statements: 100% (18 / 18)      Branches: 100% (14 / 14)      Functions: 100% (2 / 2)      Lines: 100% (12 / 12)      Ignored: 1 branch     

All files » src/ » reduce.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21      1 11 11 11 11 11   11 24 24 24     11        
import identity from './identity';
 
 
function reduce(xs, iteratee=identity, init=undefined, thisArg=undefined) {
    let iter = xs[Symbol.iterator]();
    let fn = thisArg ? iteratee.bind(thisArg) : iteratee;
    let y = init !== undefined ? init : iter.next().value;
    let x = iter.next();
    let i = 0;
 
    while (!x.done) {
        y = fn(y, x.value, i, xs);
        x = iter.next();
        i += 1;
    }
 
    return y;
}
 
export default reduce;