Faltando ponto-e-vírgula no JavaScript, causando o erro “'foo' não está definido” no IE9
Acabei de passar cerca de quatro horas rastreando esse problema. Eu sei o que está causando isso, mas não sei por que e o "por que" está me incomodand
Tenho o seguinte arquivo .js:
function funcA() {
}
function funcB() {
do {
} while (1 == 1) return 0
}
Também tenho a seguinte página HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<script src="JScript1.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
new funcA();
</script>
</body>
</html>
Quando carrego a página no IE9, recebo um erro que "'funcA' é indefinido". Para me livrar do erro em tempo de execução, façaalgué da seguinte
Ativando a exibição de compatibilidade no IE9Removendo o DOCTYPE da páginaAdicionando um ponto-e-vírgula após o tempo e antes do retorno no JavaScript (ou seja, while (1 = 1); return 0)Alguém pode me ajudar a entender o que exatamente está acontecendo aqu