| '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. |
| Object.prototype.toString.call(process.env); |