Code coverage report for string/typecast.js

Statements: 100% (18 / 18)      Branches: 100% (16 / 16)      Functions: 100% (3 / 3)      Lines: 100% (17 / 17)     

All files » string/ » typecast.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 301   1         1 32 32 4 28 1 27 7 20 2 18   10     8   32     1    
define(function () {
 
    var UNDEF;
 
    /**
     * Parses string and convert it into a native value.
     */
    function typecast(val) {
        var r;
        if ( val === null || val === 'null' ) {
            r = null;
        } else if ( val === 'true' ) {
            r = true;
        } else if ( val === 'false' ) {
            r = false;
        } else if ( val === UNDEF || val === 'undefined' ) {
            r = UNDEF;
        } else if ( val === '' || isNaN(val) ) {
            //isNaN('') returns false
            r = val;
        } else {
            //parseFloat(null || '') returns NaN
            r = parseFloat(val);
        }
        return r;
    }
 
    return typecast;
});