Source code

Revision control

Copy as Markdown

Other Tools

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