Brendan Eich wrote: > The language may not support too many binding forms. The TC39 committee > probably won't. Both let and const as block-scoped bindings in the style > of var (but with use before set of a const illegal, and with const > having a mandatory initialiser even though it saves implementations no > cost) seem supported by those who spoke up at the last meeting.
So to convert these vars into consts... if (Debugging) { var DatabaseName = "TestDatabase"; var DisplayCount = 5; ... Ten more ... } else { var DatabaseName = "RealDatabase"; var DisplayCount = 15; ... Ten more ... } ...we'll have to write something like this? const { DatabaseName, DisplayCount, ... Ten more ... } = Debugging ? { DatabaseName: "TestDatabase", DisplayCount: 5, ... Ten more ... } : { DatabaseName: "RealDatabase", DisplayCount: 15, ... Ten more ... }; Very often conditionals aren't that simple. It'll get ugly. The new awkwardness does makes sense in big projects, but only there. > let > blocks and let expressions do not have solid support in TC39. I have no opinion on whether let blocks and let expressions are useful, but you could make them very cheap by dropping the intricacies that make let(x=x){} refer to two different x'es: let (a = x) {...} desugars to {let a = x; ...} let (a = x) a; desugars to {let a = x; a;} As a bonus everyone will rejoice at the lessened cognitive burden of intricacies. Of course Schemers will find a let with these semantics confusing. Clearly it needs a different name. How about... "local"? :-D -- Ingvar von Schoultz _______________________________________________ Es-discuss mailing list Es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss