blob: f0f46e2fb20aa4cdbaa240472715016d57d72ea9 (
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
|
if (!("startgc" in this &&
"offThreadCompileScript" in this &&
"runOffThreadScript" in this))
{
quit();
}
if (helperThreadCount() == 0)
quit();
gczeal(0);
gc();
// Start an incremental GC that includes the atoms zone
startgc(0);
var g = newGlobal();
// Start an off thread compilation that will not run until GC has finished
if ("gcstate" in this)
assertEq(gcstate(), "Mark");
g.offThreadCompileScript('23;', {});
// Wait for the compilation to finish, which must finish the GC first
assertEq(23, g.runOffThreadScript());
if ("gcstate" in this)
assertEq(gcstate(), "NotActive");
print("done");
|