if (helperThreadCount() == 0) quit(); if (!("oomAtAllocation" in this && "resetOOMFailure" in this)) quit(); if ("gczeal" in this) gczeal(0); eval("g=function() {}") var lfGlobal = newGlobal(); for (lfLocal in this) { if (!(lfLocal in lfGlobal)) { lfGlobal[lfLocal] = this[lfLocal]; } } lfGlobal.offThreadCompileScript(` if (!("oomAtAllocation" in this && "resetOOMFailure" in this)) gczeal(0); function oomTest(f) { var i = 1; do { try { oomAtAllocation(i); f(); more = resetOOMFailure(); } catch (e) { more = resetOOMFailure(); } i++; } while(more); } var g = newGlobal(); oomTest(function() { new revocable(); }); `); lfGlobal.runOffThreadScript();