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';
|
'use strict';
|
||||||
|
|
||||||
const { getOptionValue } = require('internal/options');
|
const { getOptionValue } = require('internal/options');
|
||||||
|
const { Buffer } = require('buffer');
|
||||||
|
|
||||||
function prepareMainThreadExecution() {
|
function prepareMainThreadExecution() {
|
||||||
// Patch the process object with legacy properties and normalizations
|
// Patch the process object with legacy properties and normalizations
|
||||||
@ -221,6 +222,33 @@ function initializeDeprecations() {
|
|||||||
'process.binding() is deprecated. ' +
|
'process.binding() is deprecated. ' +
|
||||||
'Please use public APIs instead.', 'DEP0111');
|
'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() {
|
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