The conditions for hoisting are "If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList,"
As such, the nested b should not create a var-scoped declaration. It currently does.
(I missed the clause about "not an element of BoundNames of argumentsList" when I was reading it, I guess.)
Consider
The conditions for hoisting are "If replacing the FunctionDeclaration f with a VariableStatement that has F as a BindingIdentifier would not produce any Early Errors for func and F is not an element of BoundNames of argumentsList,"
As such, the nested
b
should not create a var-scoped declaration. It currently does.(I missed the clause about "not an element of BoundNames of argumentsList" when I was reading it, I guess.)