diff options
Diffstat (limited to 'js/src/tests/ecma_6/LexicalEnvironment/unscopables-mutation-frozen.js')
-rw-r--r-- | js/src/tests/ecma_6/LexicalEnvironment/unscopables-mutation-frozen.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/js/src/tests/ecma_6/LexicalEnvironment/unscopables-mutation-frozen.js b/js/src/tests/ecma_6/LexicalEnvironment/unscopables-mutation-frozen.js new file mode 100644 index 000000000..632785c05 --- /dev/null +++ b/js/src/tests/ecma_6/LexicalEnvironment/unscopables-mutation-frozen.js @@ -0,0 +1,18 @@ +// When env[@@unscopables].x changes, bindings can appear even if env is inextensible. + +let x = "global"; +let unscopables = {x: true}; +let env = Object.create(null); +env[Symbol.unscopables] = unscopables; +env.x = "object"; +Object.freeze(env); + +for (let i = 0; i < 1004; i++) { + if (i === 1000) + unscopables.x = false; + with (env) { + assertEq(x, i < 1000 ? "global" : "object"); + } +} + +reportCompare(0, 0); |