summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/lexical-environment/unscopables-mutation-frozen.js
blob: 632785c05a56be3187c6c34e3023339044674e29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);