-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
util: adhere to
noDeprecation
set at runtime
Until now, the docs stated that `process.noDeprecation` could be set at runtime, but before any modules were loaded. That was not true, because `lib/internal/util.js` was loaded during the process startup process, so setting the flag at runtime was pointless. Minimal test case: process.noDeprecation = true; process.EventEmitter; This patch moves checking `process.noDeprecation` to the place where it was actually used. PR-URL: #6683 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
- Loading branch information
Showing
3 changed files
with
37 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
'use strict'; | ||
// Flags: --expose_internals --no-warnings | ||
|
||
// The --no-warnings flag only supresses writing the warning to stderr, not the | ||
// emission of the corresponding event. This test file can be run without it. | ||
|
||
process.noDeprecation = true; | ||
|
||
const common = require('../common'); | ||
const assert = require('assert'); | ||
|
||
function listener() { | ||
common.fail('received unexpected warning'); | ||
} | ||
|
||
process.addListener('warning', listener); | ||
|
||
const internalUtil = require('internal/util'); | ||
internalUtil.printDeprecationMessage('Something is deprecated.'); | ||
|
||
// The warning would be emitted in the next tick, so continue after that. | ||
process.nextTick(common.mustCall(() => { | ||
// Check that deprecations can be re-enabled. | ||
process.noDeprecation = false; | ||
process.removeListener('warning', listener); | ||
|
||
process.addListener('warning', common.mustCall((warning) => { | ||
assert.strictEqual(warning.name, 'DeprecationWarning'); | ||
assert.strictEqual(warning.message, 'Something else is deprecated.'); | ||
})); | ||
|
||
internalUtil.printDeprecationMessage('Something else is deprecated.'); | ||
})); |