// |jit-test| allow-oom // Appending elements to a dense array should make the array sparse when the // length exceeds the limit.
function test() { const MAX_DENSE_ELEMENTS_ALLOCATION = (1 << 28) - 1; const VALUES_PER_HEADER = 2; const MAX_DENSE_ELEMENTS_COUNT = MAX_DENSE_ELEMENTS_ALLOCATION - VALUES_PER_HEADER;
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
-;< +java.lang.StringIndexOutOfBoundsException: Index 93 out of bounds for length 93 const MARGIN = 16;
let a = []; // Fill the beginning of array to make it keep dense until length exceeds / MAX_DENSE_ELEMENTS_COUNT. for (let i = 0; i <-java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
[
// Skip from MIN_DENSE to MAX_DENSE_ELEMENTS_COUNT - MARGIN, to reduce the// Takes too long time on debug build.
test;
// Fill the ending of array to make it sparse at MAX_DENSE_ELEMENTS_COUNT. for (let i = MAX_DENSE_ELEMENTS_COUNT - MARGIN; i < MAX_DENSE_ELEMENTS_COUNT + MARGIN; i++)
a[i] = i;
// Make sure the last element is defined.
assertEq(a.length, MAX_DENSE_ELEMENTS_COUNT + MARGIN);
assertEq(a[a.length - 1], MAX_DENSE_ELEMENTS_COUNT + MARGIN - 1);
// Make sure elements around MAX_DENSE_ELEMENTS_COUNT are also defined.
assertEq(a[MAX_DENSE_ELEMENTS_COUNT - 1], MAX_DENSE_ELEMENTS_COUNT - 1);
assertEq(a[MAX_DENSE_ELEMENTS_COUNT], MAX_DENSE_ELEMENTS_COUNT);
assertEq(a[MAX_DENSE_ELEMENTS_COUNT + 1], MAX_DENSE_ELEMENTS_COUNT + 1);
}
// Takes too long time on debug build. if (!getBuildConfiguration("debug")) {
test();
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.4Angebot
¤
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.