// |jit-test| skip-if: getBuildConfiguration("wasi") // // Tests aimed at AbstractGeneratorObject::FixedSlotLimit.
"use strict";
function test(n) { const iterate = (start, f) => {
let value = start; for (let i = n; i-- > 0; ) {
value = f(value, i);
} return value;
};
const generate = (start, f) => {
let s = iterate(start, f);
let gen = eval('(function* () {\n' + s + '})'); return gen();
};
// Test 1: many vars in the function scope
{
let it = generate( "yield 0;",
(s, i) => ` var v${i} = ${i};
${s}
assertEq(v${i}, ${i});
`
);
assertEq(it.next().done, false);
assertEq(it.next().done, true);
}
// Test 2: many let-bindings in nested lexical scopes
{
let it = generate( "yield a => v174;",
(s, i) => {
let block = `
let v${i} = ${i};
${s}
assertEq(v${i}, ${i});
`; if (i % 17 == 0) {
block = '{\n' + block + '}\n';
} return block;
}
);
assertEq(it.next().done, false);
assertEq(it.next().done, true);
}
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.