Source code

Revision control

Copy as Markdown

Other Tools

// 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);