exports.isDate = isDate;
function isError(e) {
- return isObject(e) && objectToString(e) === '[object Error]';
+ return isObject(e) &&
+ (objectToString(e) === '[object Error]' || e instanceof Error);
}
exports.isError = isError;
o.o = o;
assert.equal(util.format('%j', o), '[Circular]');
})();
+
+// Errors
+assert.equal(util.format(new Error('foo')), '[Error: foo]');
+function CustomError(msg) {
+ Error.call(this);
+ Object.defineProperty(this, 'message', { value: msg, enumerable: false });
+ Object.defineProperty(this, 'name', { value: 'CustomError', enumerable: false });
+}
+util.inherits(CustomError, Error);
+assert.equal(util.format(new CustomError('bar')), '[CustomError: bar]');
assert.equal(false, util.isError({}));
assert.equal(false, util.isError({ name: 'Error', message: '' }));
assert.equal(false, util.isError([]));
-assert.equal(false, util.isError(Object.create(Error.prototype)));
+assert.equal(true, util.isError(Object.create(Error.prototype)));
// isObject
assert.ok(util.isObject({}) === true);