Recientemente, noté que la operación BlockDeclarationInstantiation tiene algunos cambios. Echa un vistazo a estos puntos:
Llevar a cabo ! env.CreateMutableBinding(dn, falso). NOTA: Este paso se sustituye en el apartado B.3.2.6.
y
Ejecute env.InitializeBinding(fn, fo). NOTA: Este paso se sustituye en el apartado B.3.2.6.
Antes no los he visto. En el borrador de especificación tenemos para BlockDeclarationInstantiation this . En comparación con ECMAScript 7 no tenemos este punto, pero en ECMAScript 8 tenemos parte de eso que tenemos en la versión borrador.
Estos "reemplazos" no se deben a diferencias de versión.
Si te fijas, se especifican en el Anexo B , "Características adicionales de ECMAScript para navegadores web".
Este anexo contiene reglas alternativas específicas para navegadores web. Como dice el encabezado, las reglas definidas allí son obligatorias solo si el host es un navegador; de lo contrario, son opcionales.
El Anexo B es principalmente para especificar funciones de lenguaje heredadas que no se especificaron pero que se implementaron en los navegadores. Estos dos son para FunctionDeclaration s dentro BlockStatement s, una función heredada que se especificó por primera vez en ES6.
La especificación ES6 brinda una descripción detallada de esta función, con un conjunto diferente de modificaciones bastante complejas.