// Crash test. Try lots of different combinations of mark colors and // sequencing, and rely on the in-code asserts to detect problems.
// This test requires precise control over GC timing. The SM(cgc) job will fail // without this, because startgc() asserts if an incremental GC is already in // progress.
gczeal(0);
function global(where) { if (where == 'same-realm') return globalThis; if (where == 'same-compartment') return newGlobal(); if (where == 'same-zone')
newGlobal({sameZoneAs: {}}); return newGlobal({newCompartment: true});
}
function varying(mapColor, keyColor, delegateColor, order, where) { const vals = {}; const g = global(where);
if (this.enqueueMark) { for (const mapColor of ['gray', 'black']) { for (const keyColor of ['gray', 'black', 'unmarked']) { for (const delegateColor of ['gray', 'black', 'unmarked', 'uncollected']) { for (const order of [['map', 'key'],
['key', 'map'],
['map', 'delegate'],
['delegate', 'map']])
{ for (const where of ['same-realm', 'same-compartment', 'same-zone', 'other-zone']) {
print(`\nRunning variant map/key/delegate=${mapColor}/${keyColor}/${delegateColor}, key is ${where}, order: ${order.join(" ")}`);
varying(mapColor, keyColor, delegateColor, order, where);
}
}
}
}
}
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.