lib/shared.js
function treatAs(value) {
            var s = typeof value;
            if(s === 'object') {
                if(value) {
                    return Object.prototype.toString.call(value).match(/^\[object\s(.*)\]$/)[1];
                } else {
                    s = 'null';
                }
            }
            return s;
        }
function treatAs(value) {
            var s = typeof value;
            if(s === 'object') {
                if(value) {
                    return Object.prototype.toString.call(value).match(/^\[object\s(.*)\]$/)[1];
                } else {
                    s = 'null';
                }
            }
            return s;
        }
function treatAs ( value ) { var s = typeof value ; if ( s === 'object' ) { if ( value ) { return Object . prototype . toString . call ( value ) . match ( / ^\[object\s(.*)\]$ / ) [ 1 ] ; } else { s = 'null' ; } } return s ; }
Corrected type of value.
Arrays & null are not 'objects'
Objects return their prototype type.
Corrected type of value . Arrays & null are not objects Objects return their prototype type .