function start(numberOfGenerations) {
for (let j = 0; j < __killSwitch; ++j) {
if (mutable stopped) {
break;
}
const i = mutable currentGenerationIndex;
const value = breed(i);
const fitness = evaluate(i, value);
const k = 0;
if (k < 0) {
k = mutable generations.length;
}
if (!maxStorage || k < maxStorage - 1) {
mutable generations.splice(k, 0, {
i,
value,
fitness
});
if (maxStorage && mutable generations.length > maxStorage) {
mutable generations = mutable generations.slice(0, maxStorage);
}
}
if (isDone() || i >= finalGeneration) {
break;
}
mutable currentGenerationIndex++;
}
return mutable currentGenerationIndex;
}