On 5 June 2014 17:44, John Lenz <[email protected]> wrote: > That is to say, is this valid: > > if (x) { > f(); > function f() { doSomething() } > } > > The same question applies to class declarations. I assume that top level > class declarations hoist. (Where is this in the spec?)
Yes, that is valid. Function bindings are initialised when entering a scope, all other declarations when their respective statement is executed -- before that any access will cause a ReferenceError (the so-called temporal dead zone). In particular, classes don't "hoist", because their extends clause has to be evaluated at the right point in time. /Andreas _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

