blob: 2aad9d330c65a1e57d35edf1c230585d62943590 (
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
31
32
33
34
35
36
37
38
|
function testNuke() {
var wrapper = evaluate("({a: 15, b: {c: 42}})", {global: newGlobal({sameZoneAs: this})});
var i, error;
try {
for (i = 0; i < 150; i++) {
assertEq(wrapper.b.c, 42);
assertEq(wrapper.a, 15);
if (i == 142) {
// Next access to wrapper.b should throw.
nukeCCW(wrapper);
}
}
} catch (e) {
error = e;
}
assertEq(error.message.includes("dead object"), true);
assertEq(i, 143);
}
function testSweep() {
var wrapper = evaluate("({a: 15, b: {c: 42}})", {global: newGlobal({})});
var error;
nukeCCW(wrapper);
gczeal(8, 1); // Sweep zones separately
try {
// Next access to wrapper.b should throw.
wrapper.x = 4;
} catch (e) {
error = e;
}
assertEq(error.message.includes("dead object"), true);
}
testNuke();
testSweep();
|