Source code

Revision control

Copy as Markdown

Other Tools

gczeal(0);
gcparam('maxNurseryBytes', 262144);
gc();
setJitCompilerOption("baseline.warmup.trigger", 9);
setJitCompilerOption("ion.warmup.trigger", 20);
function fill(arr, count) {
for (let i = 0; i < count; i++) {
arr[i] = {a: i, b: i, c: i, d: i, e: i, f: i};
}
}
let warmTA = new Int32Array(1);
function alwaysTrue(i) { return true; }
let uceFault = function(i) {
if (i > 98) uceFault = alwaysTrue;
return false;
};
function recoverSubarray(i, ta) {
let view = ta.subarray(1);
if (uceFault(i)) view.length;
}
for (let j = 0; j < 21; j++) {
recoverSubarray(j, warmTA);
}
let filler = new Array(3000);
minorgc();
let targetTA = new Int32Array(new ArrayBuffer(8));
let keep = [];
keep.push(new Uint8Array(targetTA.buffer));
minorgc();
keep.push(new Uint8Array(targetTA.buffer));
fill(filler, 1634);
recoverSubarray(99, targetTA);
minorgc();