mirror of
https://github.com/nodejs/node.git
synced 2025-05-10 17:57:53 +00:00

In addition to `--pending-deprecation`, emit a deprecation warning for usage of the `Buffer()` constructor for call sites that are outside of `node_modules`. The goal of this is to better target developers, rather than burdening users with an omnipresent and quickly ignored warning. This implements the result of a TSC meeting discussion from March 22, 2018. PR-URL: https://github.com/nodejs/node/pull/19524 Refs: https://github.com/nodejs/node/issues/19079#issuecomment-375121443 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Myles Borins <myles.borins@gmail.com>
30 lines
1007 B
JavaScript
30 lines
1007 B
JavaScript
// Flags: --no-warnings
|
|
'use strict';
|
|
|
|
const vm = require('vm');
|
|
const assert = require('assert');
|
|
const common = require('../common');
|
|
|
|
if (new Error().stack.includes('node_modules'))
|
|
common.skip('test does not work when inside `node_modules` directory');
|
|
if (process.env.NODE_PENDING_DEPRECATION)
|
|
common.skip('test does not work when NODE_PENDING_DEPRECATION is set');
|
|
|
|
const bufferWarning = 'Buffer() is deprecated due to security and usability ' +
|
|
'issues. Please use the Buffer.alloc(), ' +
|
|
'Buffer.allocUnsafe(), or Buffer.from() methods instead.';
|
|
|
|
process.addListener('warning', common.mustCall((warning) => {
|
|
assert(warning.stack.includes('this_should_emit_a_warning'), warning.stack);
|
|
}));
|
|
|
|
vm.runInNewContext('new Buffer(10)', { Buffer }, {
|
|
filename: '/a/node_modules/b'
|
|
});
|
|
|
|
common.expectWarning('DeprecationWarning', bufferWarning, 'DEP0005');
|
|
|
|
vm.runInNewContext('new Buffer(10)', { Buffer }, {
|
|
filename: '/this_should_emit_a_warning'
|
|
});
|