Missing punto y coma en JavaScript que causa el error "'foo' no está definido" en IE9

Acabo de pasar unas cuatro horas rastreando este problema. Sé lo que lo está causando, pero no sé por qué y el "por qué" me está molestando.

Tengo el siguiente archivo .js:

function funcA() {
}
function funcB() {
    do {
    } while (1 == 1) return 0
}

También tengo la siguiente 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>

Cuando cargo la página en IE9 aparece un error que dice "'funcA' no está definido". Puedo deshacerme del error en tiempo de ejecución haciendo doany one de los siguientes

Activando la Vista de compatibilidad en IE9Eliminar el DOCTYPE de la páginaAgregar un punto y coma después del while y antes del retorno en JavaScript (es decir, while (1 = 1); return 0)

Puede alguien ayudarme a entender qué está pasando exactamente aqu

Respuestas a la pregunta(2)

Su respuesta a la pregunta