diff options
author | Anna Henningsen <anna@addaleax.net> | 2016-11-16 02:27:14 +0100 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2016-11-20 01:40:33 +0100 |
commit | 3295a7febad0502dd79ad9fdae4c0975d1fb271c (patch) | |
tree | 9540bcbabb671a58613ecc30b4c7f5cb00c9e1b6 /test/parallel/test-process-env-symbols.js | |
parent | 6b86ecc007db251047c4a19990eca86af1e4c954 (diff) | |
download | android-node-v8-3295a7febad0502dd79ad9fdae4c0975d1fb271c.tar.gz android-node-v8-3295a7febad0502dd79ad9fdae4c0975d1fb271c.tar.bz2 android-node-v8-3295a7febad0502dd79ad9fdae4c0975d1fb271c.zip |
src: allow getting Symbols on process.env
1aa595e5bd6 introduced a `throw` for accessing `Symbol` properties of
`process.env`. However, this breaks `util.inspect(process)` and
things like `Object.prototype.toString.call(process.env)`, so this
patch changes the behaviour for the getter to just always return
`undefined`.
Ref: https://github.com/nodejs/node/pull/9446
Fixes: https://github.com/nodejs/node/issues/9641
PR-URL: https://github.com/nodejs/node/pull/9631
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-process-env-symbols.js')
-rw-r--r-- | test/parallel/test-process-env-symbols.js | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/test/parallel/test-process-env-symbols.js b/test/parallel/test-process-env-symbols.js index bb6e1f8778..a8798fc457 100644 --- a/test/parallel/test-process-env-symbols.js +++ b/test/parallel/test-process-env-symbols.js @@ -5,10 +5,8 @@ const assert = require('assert'); const symbol = Symbol('sym'); const errRegExp = /^TypeError: Cannot convert a Symbol value to a string$/; -// Verify that getting via a symbol key throws. -assert.throws(() => { - process.env[symbol]; -}, errRegExp); +// Verify that getting via a symbol key returns undefined. +assert.strictEqual(process.env[symbol], undefined); // Verify that assigning via a symbol key throws. assert.throws(() => { @@ -24,3 +22,6 @@ assert.throws(() => { assert.throws(() => { symbol in process.env; }, errRegExp); + +// Checks that well-known symbols like `Symbol.toStringTag` won’t throw. +assert.doesNotThrow(() => Object.prototype.toString.call(process.env)); |