1 var baseGetTag = require('./_baseGetTag'),
2 isObjectLike = require('./isObjectLike'),
3 isPlainObject = require('./isPlainObject');
5 /** `Object#toString` result references. */
6 var domExcTag = '[object DOMException]',
7 errorTag = '[object Error]';
10 * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
11 * `SyntaxError`, `TypeError`, or `URIError` object.
17 * @param {*} value The value to check.
18 * @returns {boolean} Returns `true` if `value` is an error object, else `false`.
21 * _.isError(new Error);
27 function isError(value) {
28 if (!isObjectLike(value)) {
31 var tag = baseGetTag(value);
32 return tag == errorTag || tag == domExcTag ||
33 (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
36 module.exports = isError;