process: global.process, global.Buffer getters · nodejs/node@53ebd33 (original) (raw)
2 files changed
lines changed
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
1 | 1 | 'use strict'; |
2 | 2 | |
3 | 3 | const { getOptionValue } = require('internal/options'); |
4 | +const { Buffer } = require('buffer'); | |
4 | 5 | |
5 | 6 | function prepareMainThreadExecution() { |
6 | 7 | // Patch the process object with legacy properties and normalizations |
@@ -221,6 +222,33 @@ function initializeDeprecations() { | ||
221 | 222 | 'process.binding() is deprecated. ' + |
222 | 223 | 'Please use public APIs instead.', 'DEP0111'); |
223 | 224 | } |
225 | + | |
226 | +// Create global.process and global.Buffer as getters so that we have a | |
227 | +// deprecation path for these in ES Modules. | |
228 | +// See https://github.com/nodejs/node/pull/26334. | |
229 | +let _process = process; | |
230 | +Object.defineProperty(global, 'process', { | |
231 | +get() { | |
232 | +return _process; | |
233 | +}, | |
234 | +set(value) { | |
235 | +_process = value; | |
236 | +}, | |
237 | +enumerable: false, | |
238 | +configurable: true | |
239 | +}); | |
240 | + | |
241 | +let _Buffer = Buffer; | |
242 | +Object.defineProperty(global, 'Buffer', { | |
243 | +get() { | |
244 | +return _Buffer; | |
245 | +}, | |
246 | +set(value) { | |
247 | +_Buffer = value; | |
248 | +}, | |
249 | +enumerable: false, | |
250 | +configurable: true | |
251 | +}); | |
224 | 252 | } |
225 | 253 | |
226 | 254 | function setupChildProcessIpcChannel() { |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
1 | +/* eslint-disable strict */ | |
2 | +require('../common'); | |
3 | +const assert = require('assert'); | |
4 | +const _process = require('process'); | |
5 | +const { Buffer: _Buffer } = require('buffer'); | |
6 | + | |
7 | +assert.strictEqual(process, _process); | |
8 | +// eslint-disable-next-line no-global-assign | |
9 | +process = 'asdf'; | |
10 | +assert.strictEqual(process, 'asdf'); | |
11 | +assert.strictEqual(global.process, 'asdf'); | |
12 | +global.process = _process; | |
13 | +assert.strictEqual(process, _process); | |
14 | +assert.strictEqual( | |
15 | +typeof Object.getOwnPropertyDescriptor(global, 'process').get, | |
16 | +'function'); | |
17 | + | |
18 | +assert.strictEqual(Buffer, _Buffer); | |
19 | +// eslint-disable-next-line no-global-assign | |
20 | +Buffer = 'asdf'; | |
21 | +assert.strictEqual(Buffer, 'asdf'); | |
22 | +assert.strictEqual(global.Buffer, 'asdf'); | |
23 | +global.Buffer = _Buffer; | |
24 | +assert.strictEqual(Buffer, _Buffer); | |
25 | +assert.strictEqual( | |
26 | +typeof Object.getOwnPropertyDescriptor(global, 'Buffer').get, | |
27 | +'function'); |