process: global.process, global.Buffer getters
PR-URL: https://github.com/nodejs/node/pull/26882 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
parent
2d5387e143
commit
53ebd3311d
@ -1,6 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const { getOptionValue } = require('internal/options');
|
||||
const { Buffer } = require('buffer');
|
||||
|
||||
function prepareMainThreadExecution() {
|
||||
// Patch the process object with legacy properties and normalizations
|
||||
@ -221,6 +222,33 @@ function initializeDeprecations() {
|
||||
'process.binding() is deprecated. ' +
|
||||
'Please use public APIs instead.', 'DEP0111');
|
||||
}
|
||||
|
||||
// Create global.process and global.Buffer as getters so that we have a
|
||||
// deprecation path for these in ES Modules.
|
||||
// See https://github.com/nodejs/node/pull/26334.
|
||||
let _process = process;
|
||||
Object.defineProperty(global, 'process', {
|
||||
get() {
|
||||
return _process;
|
||||
},
|
||||
set(value) {
|
||||
_process = value;
|
||||
},
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
let _Buffer = Buffer;
|
||||
Object.defineProperty(global, 'Buffer', {
|
||||
get() {
|
||||
return _Buffer;
|
||||
},
|
||||
set(value) {
|
||||
_Buffer = value;
|
||||
},
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
||||
}
|
||||
|
||||
function setupChildProcessIpcChannel() {
|
||||
|
27
test/parallel/test-global-setters.js
Normal file
27
test/parallel/test-global-setters.js
Normal file
@ -0,0 +1,27 @@
|
||||
/* eslint-disable strict */
|
||||
require('../common');
|
||||
const assert = require('assert');
|
||||
const _process = require('process');
|
||||
const { Buffer: _Buffer } = require('buffer');
|
||||
|
||||
assert.strictEqual(process, _process);
|
||||
// eslint-disable-next-line no-global-assign
|
||||
process = 'asdf';
|
||||
assert.strictEqual(process, 'asdf');
|
||||
assert.strictEqual(global.process, 'asdf');
|
||||
global.process = _process;
|
||||
assert.strictEqual(process, _process);
|
||||
assert.strictEqual(
|
||||
typeof Object.getOwnPropertyDescriptor(global, 'process').get,
|
||||
'function');
|
||||
|
||||
assert.strictEqual(Buffer, _Buffer);
|
||||
// eslint-disable-next-line no-global-assign
|
||||
Buffer = 'asdf';
|
||||
assert.strictEqual(Buffer, 'asdf');
|
||||
assert.strictEqual(global.Buffer, 'asdf');
|
||||
global.Buffer = _Buffer;
|
||||
assert.strictEqual(Buffer, _Buffer);
|
||||
assert.strictEqual(
|
||||
typeof Object.getOwnPropertyDescriptor(global, 'Buffer').get,
|
||||
'function');
|
Loading…
x
Reference in New Issue
Block a user