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