summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/proxy/testTestIntegrityLevel.js
blob: 4defb5f607bf8888529549d2205086cc54de0ebf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 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);