123456789101112131415161718192021222324252627282930313233343536 |
- var baseGetTag = require('./_baseGetTag'),
- isObjectLike = require('./isObjectLike'),
- isPlainObject = require('./isPlainObject');
-
- /** `Object#toString` result references. */
- var domExcTag = '[object DOMException]',
- errorTag = '[object Error]';
-
- /**
- * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
- * `SyntaxError`, `TypeError`, or `URIError` object.
- *
- * @static
- * @memberOf _
- * @since 3.0.0
- * @category Lang
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is an error object, else `false`.
- * @example
- *
- * _.isError(new Error);
- * // => true
- *
- * _.isError(Error);
- * // => false
- */
- function isError(value) {
- if (!isObjectLike(value)) {
- return false;
- }
- var tag = baseGetTag(value);
- return tag == errorTag || tag == domExcTag ||
- (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
- }
-
- module.exports = isError;
|