Вот так проскочило:
function missNumsFinder(arr) {
const present = new Array(arr.length), result = [];
for(let i = 0, { length } = arr; i < length; ) {
present[arr[i++]] = true;
}
for(let i = 1, { length } = present; ; ) {
while(i in present) i++;
if(i >= length) break;
result.push(i++);
}
return result;
}
Изначально у меня было
const present = [], result = [];
Но если там около 30000000 раз добавлять новые индексы, то массив меняет свой размер (меняются внутренние свойства, что приводит к очень долгому вычислению и изменению внутреннего состояния массива)