You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
598 B
JavaScript
24 lines
598 B
JavaScript
6 years ago
|
'use strict';
|
||
|
|
||
|
var objectToString = Object.prototype.toString;
|
||
|
var getPrototypeOf = Object.getPrototypeOf;
|
||
|
var ERROR_TYPE = '[object Error]';
|
||
|
|
||
|
module.exports = function isError(err) {
|
||
|
if (typeof err !== 'object') {
|
||
|
return false;
|
||
|
}
|
||
|
if (err instanceof Error) {
|
||
|
// Accept `AssertionError`s from the `assert` module that ships
|
||
|
// with Node.js v6.1.0, compare issue #4.
|
||
|
return true;
|
||
|
}
|
||
|
while (err) {
|
||
|
if (objectToString.call(err) === ERROR_TYPE) {
|
||
|
return true;
|
||
|
}
|
||
|
err = getPrototypeOf(err);
|
||
|
}
|
||
|
return false;
|
||
|
};
|