¿Por qué la redeclaración de un identificador de función dentro de un bloque try arroja un SyntaxError?
Las siguientes líneas de JavaScript
try {
function _free() {}
var _free = 1;
} finally { }
resultar en el siguiente error:
Uncaught SyntaxError: Identifier '_free' has already been declared
Sin embargo, los siguientes dos bloques de código JavaScript no lo hacen:
Sin eltry
alcance del bloque:
function _free() {}
var _free = 1;
Dentro de unfunction
alcance:
function a() {
function _free() {}
var _free = 1;
}
¿Pero por qué?
(Entorno de prueba: cromo 61.0.3126.0)