Будет ли переполнение стэка и как это проверить?
В setTimeout заверни тогда переполнения стека не будетfunction readNumber() {
  let answer = prompt('Введите число?', 0);
  if (isFinite(answer) == true && answer != '') {
    alert('Это число: ' + answer);
  } else {
    setTimeout(readNumber, 0);
  }
}
либо перепиши без рекурсии
ну если юзер очень несообразительныйfunction readNumber(n) {
  console.log(n)

  if(n > 10000) {
    return 'DONE!'
  } else {
    return readNumber(n + 1)
  }
}

readNumber(0)
на 10000 раз проверить так
UPD:
ооо, у меня на дряхлом рабочем компе в браузере случается переполнение между 25000 и 26000 вызовами :D