mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-06-12 01:29:43 +00:00
23 lines
756 B
JavaScript
23 lines
756 B
JavaScript
// Basics of @@unscopables support.
|
|
|
|
// In with(obj), if obj[@@unscopables][id] is truthy, then the identifier id
|
|
// is not present as a binding in the with-block's scope.
|
|
var x = "global";
|
|
with ({x: "with", [Symbol.unscopables]: {x: true}})
|
|
assertEq(x, "global");
|
|
|
|
// But if obj[@@unscopables][id] is false or not present, there is a binding.
|
|
with ({y: "with", z: "with", [Symbol.unscopables]: {y: false}}) {
|
|
assertEq(y, "with");
|
|
assertEq(z, "with");
|
|
}
|
|
|
|
// ToBoolean(obj[@@unscopables][id]) determines whether there's a binding.
|
|
let someValues = [0, -0, NaN, "", undefined, null, "x", {}, []];
|
|
for (let v of someValues) {
|
|
with ({x: "with", [Symbol.unscopables]: {x: v}})
|
|
assertEq(x, v ? "global" : "with");
|
|
}
|
|
|
|
reportCompare(0, 0);
|