Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion lib/internal/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ const {
arrow_message_private_symbol: kArrowMessagePrivateSymbolIndex,
decorated_private_symbol: kDecoratedPrivateSymbolIndex
} = internalBinding('util');
const {
isNativeError
} = internalBinding('types');

const { errmap } = internalBinding('uv');

Expand All @@ -26,7 +29,8 @@ function removeColors(str) {
}

function isError(e) {
return objectToString(e) === '[object Error]' || e instanceof Error;
// An error could be an instance of Error while not being a native error.
return isNativeError(e) || e instanceof Error;
Comment thread
BridgeAR marked this conversation as resolved.
}

function objectToString(o) {
Expand Down
12 changes: 10 additions & 2 deletions lib/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,16 @@ const {
const {
deprecate,
getSystemErrorName: internalErrorName,
isError,
promisify,
} = require('internal/util');

const ReflectApply = Reflect.apply;
Comment thread
BridgeAR marked this conversation as resolved.

function uncurryThis(func) {
return (thisArg, ...args) => ReflectApply(func, thisArg, args);
}
const objectToString = uncurryThis(Object.prototype.toString);

let CIRCULAR_ERROR_MESSAGE;
let internalDeepEqual;

Expand Down Expand Up @@ -434,7 +440,9 @@ module.exports = exports = {
isRegExp,
isObject,
isDate,
isError,
isError(e) {
return objectToString(e) === '[object Error]' || e instanceof Error;
},
isFunction,
isPrimitive,
log,
Expand Down