| 'use strict'; |
| |
| 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 = require('has-tostringtag/shams')(); |
| |
| 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; |
| }; |