domain: show falsy names as anonymous for DEP0097

Many anonymous functions use the empty string as their name.
Since the DEP0097 logic was using nullish coalescing, these
functions were not being displayed as anonymous. This commit
updates the logic to use || instead of ??.

PR-URL: https://github.com/nodejs/node/pull/37550
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
cjihrig 2021-02-28 14:33:11 -05:00
parent 934d3f05a3
commit 9dca43e709
No known key found for this signature in database
GPG Key ID: 7434390BDBE9B9C5
2 changed files with 18 additions and 1 deletions

View File

@ -130,7 +130,7 @@ function emitMakeCallbackDeprecation({ target, method }) {
'Using a domain property in MakeCallback is deprecated. Use the ' +
'async_context variant of MakeCallback or the AsyncResource class ' +
'instead. ' +
`(Triggered by calling ${method?.name ?? '<anonymous>'} ` +
`(Triggered by calling ${method?.name || '<anonymous>'} ` +
`on ${target?.constructor?.name}.)`,
'DeprecationWarning', 'DEP0097');
sendMakeCallbackDeprecation = true;

View File

@ -0,0 +1,17 @@
'use strict';
const common = require('../common');
common.skipIfInspectorDisabled();
const assert = require('assert');
const domain = require('domain');
const inspector = require('inspector');
process.on('warning', common.mustCall((warning) => {
assert.strictEqual(warning.code, 'DEP0097');
assert.match(warning.message, /Triggered by calling <anonymous> on process/);
}));
domain.create().run(() => {
inspector.open();
});