Source code

Revision control

Copy as Markdown

Other Tools

// isSealed/isFrozen should short-circuit.
var count = 0;
var target = Object.preventExtensions({a: 1, b: 2, c: 3});
var p = new Proxy(target, {
getOwnPropertyDescriptor(t, id) {
count++;
return Object.getOwnPropertyDescriptor(t, id);
}
});
assertEq(Object.isSealed(p), false);
assertEq(count, 1);
count = 0;
assertEq(Object.isFrozen(p), false);
assertEq(count, 1);
Object.seal(target);
count = 0;
assertEq(Object.isSealed(p), true);
assertEq(count, 3);
count = 0;
assertEq(Object.isFrozen(p), false);
assertEq(count, 1);
Object.freeze(target);
count = 0;
assertEq(Object.isFrozen(p), true);
assertEq(count, 3);