util: fix util.inspect with proxied function

PR-URL: https://github.com/nodejs/node/pull/25244
Fixes: https://github.com/nodejs/node/issues/25212
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
This commit is contained in:
Weijia Wang 2018-12-28 10:03:00 +08:00 committed by Anna Henningsen
parent ad10cc57ee
commit 6c7c77ef05
No known key found for this signature in database
GPG Key ID: 9C63F3A6CD2AD8F9
2 changed files with 18 additions and 1 deletions

View File

@ -628,7 +628,10 @@ function formatRaw(ctx, value, recurseTimes) {
}
} else if (typeof value === 'function') {
const type = constructor || tag || 'Function';
const name = `${type}${value.name ? `: ${value.name}` : ''}`;
let name = `${type}`;
if (value.name && typeof value.name === 'string') {
name += `: ${value.name}`;
}
if (keys.length === 0)
return ctx.stylize(`[${name}]`, 'special');
base = `[${name}]`;

View File

@ -87,3 +87,17 @@ assert.strictEqual(util.inspect(proxy8, opts), expected8);
assert.strictEqual(util.inspect(proxy9, opts), expected9);
assert.strictEqual(util.inspect(proxy8), '[Function: Date]');
assert.strictEqual(util.inspect(proxy9), '[Function: Date]');
const proxy10 = new Proxy(() => {}, {});
const proxy11 = new Proxy(() => {}, {
get() {
return proxy11;
},
apply() {
return proxy11;
}
});
const expected10 = '[Function]';
const expected11 = '[Function]';
assert.strictEqual(util.inspect(proxy10), expected10);
assert.strictEqual(util.inspect(proxy11), expected11);