Skip to content

Commit d7bf070

Browse files
joyeecheungtargos
authored andcommitted
process: move deprecation warning initialization into pre_execution.js
Since this is only necessary when user code execution is expected. PR-URL: #25825 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 88019b0 commit d7bf070

8 files changed

+53
-22
lines changed

lib/internal/bootstrap/node.js

+1-22
Original file line numberDiff line numberDiff line change
@@ -241,28 +241,6 @@ if (process._invalidDebug) {
241241
}
242242

243243
const { deprecate } = NativeModule.require('internal/util');
244-
{
245-
// Install legacy getters on the `util` binding for typechecking.
246-
// TODO(addaleax): Turn into a full runtime deprecation.
247-
const pendingDeprecation = getOptionValue('--pending-deprecation');
248-
const utilBinding = internalBinding('util');
249-
const types = NativeModule.require('internal/util/types');
250-
for (const name of [
251-
'isArrayBuffer', 'isArrayBufferView', 'isAsyncFunction',
252-
'isDataView', 'isDate', 'isExternal', 'isMap', 'isMapIterator',
253-
'isNativeError', 'isPromise', 'isRegExp', 'isSet', 'isSetIterator',
254-
'isTypedArray', 'isUint8Array', 'isAnyArrayBuffer'
255-
]) {
256-
utilBinding[name] = pendingDeprecation ?
257-
deprecate(types[name],
258-
'Accessing native typechecking bindings of Node ' +
259-
'directly is deprecated. ' +
260-
`Please use \`util.types.${name}\` instead.`,
261-
'DEP0103') :
262-
types[name];
263-
}
264-
}
265-
266244
// TODO(jasnell): The following have been globals since around 2012.
267245
// That's just silly. The underlying perfctr support has been removed
268246
// so these are now deprecated non-ops that can be removed after one
@@ -307,6 +285,7 @@ Object.defineProperty(process, 'allowedNodeEnvironmentFlags', {
307285
enumerable: true,
308286
configurable: true
309287
});
288+
310289
// process.assert
311290
process.assert = deprecate(
312291
perThreadSetup.assert,

lib/internal/bootstrap/pre_execution.js

+40
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,45 @@
22

33
const { getOptionValue } = require('internal/options');
44

5+
// In general deprecations are intialized wherever the APIs are implemented,
6+
// this is used to deprecate APIs implemented in C++ where the deprecation
7+
// utitlities are not easily accessible.
8+
function initializeDeprecations() {
9+
const { deprecate } = require('internal/util');
10+
const pendingDeprecation = getOptionValue('--pending-deprecation');
11+
12+
// DEP0103: access to `process.binding('util').isX` type checkers
13+
// TODO(addaleax): Turn into a full runtime deprecation.
14+
const utilBinding = internalBinding('util');
15+
const types = require('internal/util/types');
16+
for (const name of [
17+
'isArrayBuffer',
18+
'isArrayBufferView',
19+
'isAsyncFunction',
20+
'isDataView',
21+
'isDate',
22+
'isExternal',
23+
'isMap',
24+
'isMapIterator',
25+
'isNativeError',
26+
'isPromise',
27+
'isRegExp',
28+
'isSet',
29+
'isSetIterator',
30+
'isTypedArray',
31+
'isUint8Array',
32+
'isAnyArrayBuffer'
33+
]) {
34+
utilBinding[name] = pendingDeprecation ?
35+
deprecate(types[name],
36+
'Accessing native typechecking bindings of Node ' +
37+
'directly is deprecated. ' +
38+
`Please use \`util.types.${name}\` instead.`,
39+
'DEP0103') :
40+
types[name];
41+
}
42+
}
43+
544
function initializeClusterIPC() {
645
// If this is a worker in cluster mode, start up the communication
746
// channel. This needs to be done before any user code gets executed
@@ -75,6 +114,7 @@ function loadPreloadModules() {
75114
}
76115

77116
module.exports = {
117+
initializeDeprecations,
78118
initializeClusterIPC,
79119
initializePolicy,
80120
initializeESMLoader,

lib/internal/main/check_syntax.js

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// instead of actually running the file.
55

66
const {
7+
initializeDeprecations,
78
initializeClusterIPC,
89
initializePolicy,
910
initializeESMLoader,
@@ -21,6 +22,7 @@ const {
2122
} = require('internal/modules/cjs/helpers');
2223

2324
// TODO(joyeecheung): not every one of these are necessary
25+
initializeDeprecations();
2426
initializeClusterIPC();
2527
initializePolicy();
2628
initializeESMLoader();

lib/internal/main/eval_stdin.js

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// Stdin is not a TTY, we will read it and execute it.
44

55
const {
6+
initializeDeprecations,
67
initializeClusterIPC,
78
initializePolicy,
89
initializeESMLoader,
@@ -14,6 +15,7 @@ const {
1415
readStdin
1516
} = require('internal/process/execution');
1617

18+
initializeDeprecations();
1719
initializeClusterIPC();
1820
initializePolicy();
1921
initializeESMLoader();

lib/internal/main/eval_string.js

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// `--interactive`.
55

66
const {
7+
initializeDeprecations,
78
initializeClusterIPC,
89
initializePolicy,
910
initializeESMLoader,
@@ -13,6 +14,7 @@ const { evalScript } = require('internal/process/execution');
1314
const { addBuiltinLibsToObject } = require('internal/modules/cjs/helpers');
1415

1516
const source = require('internal/options').getOptionValue('--eval');
17+
initializeDeprecations();
1618
initializeClusterIPC();
1719
initializePolicy();
1820
initializeESMLoader();

lib/internal/main/repl.js

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// the main module is not specified and stdin is a TTY.
55

66
const {
7+
initializeDeprecations,
78
initializeClusterIPC,
89
initializePolicy,
910
initializeESMLoader,
@@ -14,6 +15,7 @@ const {
1415
evalScript
1516
} = require('internal/process/execution');
1617

18+
initializeDeprecations();
1719
initializeClusterIPC();
1820
initializePolicy();
1921
initializeESMLoader();

lib/internal/main/run_main_module.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
'use strict';
22

33
const {
4+
initializeDeprecations,
45
initializeClusterIPC,
56
initializePolicy,
67
initializeESMLoader,
78
loadPreloadModules
89
} = require('internal/bootstrap/pre_execution');
910

11+
initializeDeprecations();
1012
initializeClusterIPC();
1113
initializePolicy();
1214
initializeESMLoader();

lib/internal/main/worker_thread.js

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// message port.
55

66
const {
7+
initializeDeprecations,
78
initializeClusterIPC,
89
initializeESMLoader,
910
loadPreloadModules
@@ -55,6 +56,7 @@ port.on('message', (message) => {
5556
if (manifestSrc) {
5657
require('internal/process/policy').setup(manifestSrc, manifestURL);
5758
}
59+
initializeDeprecations();
5860
initializeClusterIPC();
5961
initializeESMLoader();
6062
loadPreloadModules();

0 commit comments

Comments
 (0)