nodejs/test/parallel/test-global-setters.js
Rich Trott 1263efdfca
test: use strict mode in global setters test
test-global-setters.js was added in
https://github.com/nodejs/node/pull/26882 and hasn't been modified
since. It appears that it avoids strict mode so that unscoped
identifiers are treated as globals, but that's true in strict mode too.
(In sloppy mode, an assignment to an undefined identifier will create a
global, but that's not what this test does. In strict mode, those
assignments will throw an error, which would seem to be what we would
want.)

PR-URL: https://github.com/nodejs/node/pull/56742
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
2025-01-27 00:02:05 +00:00

34 lines
1.1 KiB
JavaScript

// When setters and getters were added for global.process and global.Buffer to
// create a deprecation path for them in ESM, this test was added to make sure
// the setters and getters behaved as expected.
// Ref: https://github.com/nodejs/node/pull/26882
// Ref: https://github.com/nodejs/node/pull/26334
'use 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(globalThis.process, 'asdf');
globalThis.process = _process;
assert.strictEqual(process, _process);
assert.strictEqual(
typeof Object.getOwnPropertyDescriptor(globalThis, 'process').get,
'function');
assert.strictEqual(Buffer, _Buffer);
// eslint-disable-next-line no-global-assign
Buffer = 'asdf';
assert.strictEqual(Buffer, 'asdf');
assert.strictEqual(globalThis.Buffer, 'asdf');
globalThis.Buffer = _Buffer;
assert.strictEqual(Buffer, _Buffer);
assert.strictEqual(
typeof Object.getOwnPropertyDescriptor(globalThis, 'Buffer').get,
'function');