Por que redeclarar um identificador de função em um bloco try lança um SyntaxError?
As seguintes linhas de JavaScript
try {
function _free() {}
var _free = 1;
} finally { }
resultar no seguinte erro:
Uncaught SyntaxError: Identifier '_free' has already been declared
No entanto, os dois blocos a seguir do código JavaScript não:
Sem otry
escopo do bloco:
function _free() {}
var _free = 1;
Dentro de umfunction
escopo:
function a() {
function _free() {}
var _free = 1;
}
Mas por que?
(Ambiente de teste: Chromium 61.0.3126.0)