import getTag from './internals/getTag';
import { domExceptionTag, errorTag } from './internals/native';
import isObjectLike from './isObjectLike';
/**
* 检查值是否为 `Error` 或 `DOMException`。
*
* 继承自 `Error` 的对象,如 `EvalError` `RangeError` `ReferenceError` `SyntaxError` `TypeError` `URIError` `AggregateError`,都将返回 `true`。
*
* @alias module:Language.isError
* @since 1.0.0
* @param {*} value 要检查的值。
* @returns {boolean} 如果值为 `Error` 或 `DOMException` 对象,返回 `true`,否则返回 `false`。
* @example
*
* isError(new Error); // true
*
* isError(Error); // false
*
*/
function isError(value) {
if (!isObjectLike(value)) {
return false;
}
if (value instanceof Error) {
return true;
}
const tag = getTag(value);
return tag === errorTag || tag === domExceptionTag;
}
export default isError;