1var isObjectLike = require('../internal/isObjectLike'); 2 3/** `Object#toString` result references. */ 4var errorTag = '[object Error]'; 5 6/** Used for native method references. */ 7var objectProto = Object.prototype; 8 9/** 10 * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) 11 * of values. 12 */ 13var objToString = objectProto.toString; 14 15/** 16 * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, 17 * `SyntaxError`, `TypeError`, or `URIError` object. 18 * 19 * @static 20 * @memberOf _ 21 * @category Lang 22 * @param {*} value The value to check. 23 * @returns {boolean} Returns `true` if `value` is an error object, else `false`. 24 * @example 25 * 26 * _.isError(new Error); 27 * // => true 28 * 29 * _.isError(Error); 30 * // => false 31 */ 32function isError(value) { 33 return isObjectLike(value) && typeof value.message == 'string' && objToString.call(value) == errorTag; 34} 35 36module.exports = isError; 37 38