Brendan Eich (2014-01-30T16:13:18.000Z)
John Barton wrote:
>
> On Thu, Jan 30, 2014 at 7:54 AM, Brendan Eich <brendan at mozilla.com 
> <mailto:brendan at mozilla.com>> wrote:
>
>     John Lenz wrote:
>
>         Generally, I've always thought of:
>
>         "if (x) ..." as equivalent to "if (x) { ... }"
>
>
>     let and const (and class) are block-scoped. {...} in your "if (x)
>     {...}" is a block. An unbraced consequent is not a block, and you
>     can't have a "conditional let binding".
>
>     The restriction avoids nonsense such as
>
>     let x = 0; { if (y) let x = 42; alert(x); }
>
>     What pray tell is going on here, in your model?
>
>
> I'm with John: the alert should say 0 and I can't see why that is not 
> obvious.

Interesting!

You don't want the alert to show undefined, so the extent of the inner 
binding in your model is the unbraced consequent of the  "if".

That is not "block scope" in any plain sense.

/be
domenic at domenicdenicola.com (2014-02-04T21:33:18.649Z)
John Barton wrote:

> I'm with John: the alert should say 0 and I can't see why that is not 
> obvious.

Interesting!

You don't want the alert to show undefined, so the extent of the inner 
binding in your model is the unbraced consequent of the  "if".

That is not "block scope" in any plain sense.