'use strict'; | |
var getDay = Date.prototype.getDay; | |
var tryDateObject = function tryDateObject(value) { | |
try { | |
getDay.call(value); | |
return true; | |
} catch (e) { | |
return false; | |
} | |
}; | |
var toStr = Object.prototype.toString; | |
var dateClass = '[object Date]'; | |
var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; | |
module.exports = function isDateObject(value) { | |
if (typeof value !== 'object' || value === null) { return false; } | |
return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; | |
}; |