Javascript, sobre o prompt de loop infinito e a interrupção desse loop

Eu sou novo em javascript, então essa é a minha história por trás :) Esse código continua travando meu navegador e não me permite cancelar o prompt se eu não cancelar na primeira tentativa, digitando um número ou não. De qualquer forma, mesmo o jogo não funciona, que é apenas para chegar a um ponto em que o número secreto é o número de adivinhação da pessoa. Para cancelar o prompt, eu até tentei se (answer === null || answer === false || answer === "null") break; mas não vai funcionar. Alguém pode ajudar? Obrigado.

Aqui está o meu código:

<script>
var secret_number=Math.floor((Math.random() * 10) + 1); 
var answer=prompt("Enter a number you want to try");

while(secret_number!==Number(answer))
{
if(name===null||name===false||name==="null")
break;

if(Number(answer)>secret_number)
prompt("This number is too high!");

else if(Number(answer)<secret_number)
prompt("This number is too low!");

else
prompt("You got it!");
}

</script>

Eu tenho uma questão de acompanhamento. Levei em consideração o que as pessoas me disseram e sugeri isso:

var secret_number=Math.floor((Math.random() * 10) + 1); 
var answer=parseInt(prompt("Enter a number you want to try"));

while(secret_number!==answer)
{
if(answer == null || answer == "" ||isNaN(answer))
break;

if(answer>secret_number)
answer=prompt("This number is too high!");

else if(answer<secret_number)
answer=prompt("This number is too low!");

else
alert("You got it!");
}

Minha pergunta é: como é que o meu "Você conseguiu!" alerta continua infinitamente? Sei que posso fazê-lo parar por aí, mas quero saber por que continua fazendo isso. Deveria ter essa resposta secret_number === e sair do loop while, então obviamente não está fazendo isso, e eu não entendo o porquê. Mais uma vez obrigado.

questionAnswers(5)

yourAnswerToTheQuestion