Code coverage report for array/reduceRight.js

Statements: 100% (14 / 14)      Branches: 100% (6 / 6)      Functions: 100% (3 / 3)      Lines: 100% (13 / 13)     

All files » array/ » reduceRight.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 331         1   10         10 1     9     45 45 4 4   41     9     1    
define(function () {
 
    /**
     * Array reduceRight
     */
    function reduceRight(arr, fn, initVal) {
        // check for args.length since initVal might be "undefined" see #gh-57
        var hasInit = arguments.length > 2,
            result = initVal,
            i = arr.length,
            val;
 
        if (!i && !hasInit) {
            throw new Error('reduce of empty array with no initial value');
        }
 
        while (--i >= 0) {
            // we iterate over sparse items since there is no way to make it
            // work properly on IE 7-8. see #64
            val = arr[i];
            if (! hasInit) {
                result = val;
                hasInit = true;
            } else {
                result = fn(result, val, i, arr);
            }
        }
        return result;
    }
 
    return reduceRight;
});