No code block without introductory keyword (was: Re: Boolean shortcuts)

Maël Nison nison.mael at gmail.com
Wed Jan 4 05:56:37 PST 2012


If we force a formal block introduction, there will be some problems
with codes like this one :

var foo = function ( ) {
    {
        let x = 42;
        console.log( x );
    }
    {
        let x = 24;
        console.log( x );
    }
}

On 4 January 2012 14:51, Herby Vojčík <herby at mailbox.sk> wrote:
> Hi,
>
> what you proposed seems like a pretty good idea (at least imho).
> All other uses of {...} as code block have a introductory keyword / control
> structure (if, else, while, do, function), and even the newcomer {...} uses
> like module and class are preceded by one. If (maybe in "strict ES6+" only)
> there was the general rule of "no code block without formal introduction",
> it could make parsing much more quirk-free (and it would be clearly define
> that {...} without introduction is _always_ object literal (or, more
> broadly, data-producing {...} (declarative curlie)) in contrast to
> imperative curlie that contains some form of action to perform).
>
> Herby
>
> -----Pôvodná správa----- From: François REMY
> Sent: Wednesday, January 04, 2012 2:27 PM
> To: Herby Vojčík ; es-discuss at mozilla.org
> Subject: Re: Boolean shortcuts
>
> I agree that code block is a complex feature that is (almost) never used and
> that has many quirks.
>
> If ES6 could remove it, I would not be upset at all. If it's here to stay,
> we should at least have an introductory keyword like "eval { ... }" and
> allow "var x = eval { ... }".
>
> BTW, I think the reason of your inconsistency is a bug : eval("{}") should
> return undefined, as in IE9. It seems that node.js has a special case for
> {}, probably to avoid a common mistake. Or there's a bug in the parser, I
> don't know.
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss



-- 
Maël Nison
Epitech 2014, Paris - Astek


More information about the es-discuss mailing list