summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/gc/bug-1374797.js
blob: f22b06e2785ee6c9944b854aeb0852cf7f30aa3c (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
// |jit-test| skip-if: helperThreadCount() === 0

// Exercise triggering GC of atoms zone while off-thread parsing is happening.

gczeal(0);

// Reduce some GC parameters so that we can trigger a GC more easily.
gcparam('lowFrequencyHeapGrowth', 120);
gcparam('highFrequencyLargeHeapGrowth', 120);
gcparam('highFrequencySmallHeapGrowth', 120);
gcparam('allocationThreshold', 1);
gc();

// Start an off-thread parse.
offThreadCompileToStencil("print('Finished')");

// Allocate lots of atoms, parsing occasionally.
for (let i = 0; i < 10; i++) {
    print(i);
    for (let j = 0; j < 10000; j++)
        Symbol.for(i + 10 * j);
    eval(`${i}`);
}

// Finish the off-thread parse.
var stencil = finishOffThreadStencil();
evalStencil(stencil);