Code coverage report for lang/toArray.js

Statements: 100% (13 / 13)      Branches: 100% (9 / 9)      Functions: 100% (3 / 3)      Lines: 100% (12 / 12)     

All files » lang/ » toArray.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 321   1         1 44       44 41     22         19 19 61       44   1    
define(['./kindOf'], function (kindOf) {
 
    var _win = this;
 
    /**
     * Convert array-like object into array
     */
    function toArray(val){
        var ret = [],
            kind = kindOf(val),
            n;
 
        if (val != null) {
            if ( val.length == null || kind === 'String' || kind === 'Function' || kind === 'RegExp' || val === _win ) {
                //string, regexp, function have .length but user probably just want
                //to wrap value into an array..
                ret[ret.length] = val;
            } else {
                //window returns true on isObject in IE7 and may have length
                //property. `typeof NodeList` returns `function` on Safari so
                //we can't use it (#58)
                n = val.length;
                while (n--) {
                    ret[n] = val[n];
                }
            }
        }
        return ret;
    }
    return toArray;
});