kitchensink
Version:
Dispatch's awesome components and style guide
21 lines (18 loc) • 597 B
JavaScript
;
var numToStr = Number.prototype.toString;
var tryNumberObject = function tryNumberObject(value) {
try {
numToStr.call(value);
return true;
} catch (e) {
return false;
}
};
var toStr = Object.prototype.toString;
var numClass = '[object Number]';
var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
module.exports = function isNumberObject(value) {
if (typeof value === 'number') { return true; }
if (typeof value !== 'object') { return false; }
return hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass;
};