summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/lexical-environment/unscopables-ignored.js
blob: 08b042a3b5500cc80e6d88f1626554f13cf15811 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// In these cases, @@unscopables should not be consulted.

// Because obj has no properties `assertEq` or `x`,
// obj[@@unscopables] is not checked here:
var obj = {
    get [Symbol.unscopables]() {
        throw "tried to read @@unscopables";
    }
};
var x = 3;
with (obj)
    assertEq(x, 3);

// If @@unscopables is present but not an object, it is ignored:
for (let nonObject of [undefined, null, "nothing", Symbol.for("moon")]) {
    let y = 4;
    let obj2 = {[Symbol.unscopables]: nonObject, y: 5};
    with (obj2)
        assertEq(y, 5);
}

reportCompare(0, 0);