mirror of https://github.com/nodejs/node.git
process: fix handling of process.noDeprecation in emitWarning
PR-URL: https://github.com/nodejs/node/pull/8166 Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com>pull/8396/head
parent
2d2a2d7c78
commit
bf91035364
|
@ -1,9 +1,5 @@
|
|||
'use strict';
|
||||
|
||||
const traceWarnings = process.traceProcessWarnings;
|
||||
const noDeprecation = process.noDeprecation;
|
||||
const traceDeprecation = process.traceDeprecation;
|
||||
const throwDeprecation = process.throwDeprecation;
|
||||
const prefix = `(${process.release.name}:${process.pid}) `;
|
||||
|
||||
exports.setup = setupProcessWarnings;
|
||||
|
@ -13,8 +9,9 @@ function setupProcessWarnings() {
|
|||
process.on('warning', (warning) => {
|
||||
if (!(warning instanceof Error)) return;
|
||||
const isDeprecation = warning.name === 'DeprecationWarning';
|
||||
if (isDeprecation && noDeprecation) return;
|
||||
const trace = traceWarnings || (isDeprecation && traceDeprecation);
|
||||
if (isDeprecation && process.noDeprecation) return;
|
||||
const trace = process.traceProcessWarnings ||
|
||||
(isDeprecation && process.traceDeprecation);
|
||||
if (trace && warning.stack) {
|
||||
console.error(`${prefix}${warning.stack}`);
|
||||
} else {
|
||||
|
@ -41,9 +38,12 @@ function setupProcessWarnings() {
|
|||
if (!(warning instanceof Error)) {
|
||||
throw new TypeError('\'warning\' must be an Error object or string.');
|
||||
}
|
||||
if (throwDeprecation && warning.name === 'DeprecationWarning')
|
||||
throw warning;
|
||||
else
|
||||
process.nextTick(() => process.emit('warning', warning));
|
||||
if (warning.name === 'DeprecationWarning') {
|
||||
if (process.noDeprecation)
|
||||
return;
|
||||
if (process.throwDeprecation)
|
||||
throw warning;
|
||||
}
|
||||
process.nextTick(() => process.emit('warning', warning));
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue