Recently, I've noticed that operation BlockDeclarationInstantiation has some changes. Take a look at these points:
Perform ! env.CreateMutableBinding(dn, false). NOTE: This step is replaced in section B.3.2.6.
and
Perform env.InitializeBinding(fn, fo). NOTE: This step is replaced in section B.3.2.6.
Earlier I've not seen them. In draft specification we have for BlockDeclarationInstantiation this. In comparison with ECMAScript 7 we have not this point, but in ECMAScript 8 we have part of that what we have in the draft version.
These "replacements" are not due to differences in version.
If you look at it, they are specified in Annex B, "Additional ECMAScript Features for Web Browsers".
This annex contains alternative rules specifically for web browsers. As the header says, rules defined there are required only if the host is a browser, optional otherwise.
Annex B is mostly for specifying legacy language features that weren't specified but were implemented in browsers. These two are for FunctionDeclarations inside BlockStatements, a legacy feature first specified in ES6.
The ES6 spec gives a detailed description of this feature, with a different set of rather-complex modifications.