Quando o contador recebe 33, caso a variável não seja incrementada (fora do if), o loop se torna infinito... é isso mesmo?
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
//Variável que quebra o loop
var contador = 30;
//Imprimindo de 30 a 40
while(contador <= 40) {
//Impedindo que os números 33 e 37 sejam mostrados
if(contador !== 33 && contador !== 37) {
mostra(contador);
}
//Incrementa o 33 e 37 e impede que o loop seja infinito
contador++;
}
mostra("Fim");