Do not check the error message if it is generated by the JavaScript engine (V8, ChakraCore, etc.). Do confirm that it is a `TypeError`. PR-URL: https://github.com/nodejs/node/pull/16272 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
'use strict';
|
||
require('../common');
|
||
|
||
const assert = require('assert');
|
||
const symbol = Symbol('sym');
|
||
|
||
// Verify that getting via a symbol key returns undefined.
|
||
assert.strictEqual(process.env[symbol], undefined);
|
||
|
||
// Verify that assigning via a symbol key throws.
|
||
// The message depends on the JavaScript engine and so will be different between
|
||
// different JavaScript engines. Confirm that the `Error` is a `TypeError` only.
|
||
assert.throws(() => {
|
||
process.env[symbol] = 42;
|
||
}, TypeError);
|
||
|
||
// Verify that assigning a symbol value throws.
|
||
// The message depends on the JavaScript engine and so will be different between
|
||
// different JavaScript engines. Confirm that the `Error` is a `TypeError` only.
|
||
assert.throws(() => {
|
||
process.env.foo = symbol;
|
||
}, TypeError);
|
||
|
||
// Verify that using a symbol with the in operator returns false.
|
||
assert.strictEqual(symbol in process.env, false);
|
||
|
||
// Verify that deleting a symbol key returns true.
|
||
assert.strictEqual(delete process.env[symbol], true);
|
||
|
||
// Checks that well-known symbols like `Symbol.toStringTag` won’t throw.
|
||
assert.doesNotThrow(() => Object.prototype.toString.call(process.env));
|