diff --git a/lib/sys.js b/lib/sys.js index 7aba932205b..28ec6ff740e 100644 --- a/lib/sys.js +++ b/lib/sys.js @@ -33,7 +33,12 @@ exports.inspect = function (obj, showHidden, depth) { var seen = []; function format(value, recurseTimes) { // Provide a hook for user-specified inspect functions. - if (value && typeof value.inspect === 'function') { + // Check that value is an object with an inspect function on it + if (value && typeof value.inspect === 'function' && + // Filter out the sys module, it's inspect function is special + value !== exports && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { return value.inspect(recurseTimes); }