|
|
@ -185,6 +185,9 @@ function formatValue(ctx, value, recurseTimes) { |
|
|
|
if (isDate(value)) { |
|
|
|
return ctx.stylize(value.toUTCString(), 'date'); |
|
|
|
} |
|
|
|
if (isError(value)) { |
|
|
|
return formatError(value); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var base = '', array = false, braces = ['{', '}']; |
|
|
@ -211,6 +214,11 @@ function formatValue(ctx, value, recurseTimes) { |
|
|
|
base = ' ' + value.toUTCString(); |
|
|
|
} |
|
|
|
|
|
|
|
// Make error with message first say the error
|
|
|
|
if (isError(value)) { |
|
|
|
base = ' ' + formatError(value); |
|
|
|
} |
|
|
|
|
|
|
|
if (keys.length === 0 && (!array || value.length == 0)) { |
|
|
|
return braces[0] + base + braces[1]; |
|
|
|
} |
|
|
@ -264,6 +272,11 @@ function formatPrimitive(ctx, value) { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function formatError(value) { |
|
|
|
return '[' + Error.prototype.toString.call(value) + ']'; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { |
|
|
|
var output = []; |
|
|
|
for (var i = 0, l = value.length; i < l; ++i) { |
|
|
@ -374,13 +387,24 @@ function isArray(ar) { |
|
|
|
|
|
|
|
function isRegExp(re) { |
|
|
|
return re instanceof RegExp || |
|
|
|
(typeof re === 'object' && Object.prototype.toString.call(re) === '[object RegExp]'); |
|
|
|
(typeof re === 'object' && objectToString(re) === '[object RegExp]'); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function isDate(d) { |
|
|
|
return d instanceof Date || |
|
|
|
(typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'); |
|
|
|
(typeof d === 'object' && objectToString(d) === '[object Date]'); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function isError(e) { |
|
|
|
return e instanceof Error || |
|
|
|
(typeof e === 'object' && objectToString(e) === '[object Error]'); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function objectToString(o) { |
|
|
|
return Object.prototype.toString.call(o); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|