function hoisting like var
Ingvar von Schoultz
ingvar-v-s at comhem.se
Fri Jul 25 19:03:35 PDT 2008
Igor Bukanov wrote:
> Of cause, if desired, such shortcut should be
> pure syntax extension over ES3, not {{ }} as that silently changes the
> meaning of the existing code.
Do you really think {{ }} appears in existing code, correctly
enclosing statement blocks, with the {{ and the }} placed tightly
together both at the beginning and at the end?
I find this somewhat unlikely, since it's a redundant repetition
that means exactly the same as { }.
Ingvar
Igor Bukanov wrote:
> 2008/7/25 Lars Hansen <lhansen at adobe.com>:
>> Is
>>
>> {{ return }}
>>
>> syntactic sugar for
>>
>> (function() {{ return }})()
>>
>> too?
>
> I have forgot about the return or break/continue. But this is not a
> point since a syntax sugar for (function() { code })() can require
> that code must not contain return or break/continue outside the code
> effectively making it a let expression on steroids. The point is that
> is it worth to provide a shortcut for (function() { code })() since
> that is used on web. Of cause, if desired, such shortcut should be
> pure syntax extension over ES3, not {{ }} as that silently changes the
> meaning of the existing code.
>
> One way to get that extension comes from an observation that ES4
> allows to drop the braces around function body and the return keyword
> if the body is the single return exp. If ES3.1 would support it, then
> to simulate an effect of let expression like
>
> let (a = arg1, b = arg2) expression
>
> one could write
>
> (function(a, b) expression)(arg1, arg2)
>
> or
>
> (function(a, b) a = arg1, b = arg2, expression)()
>
> If, in addition to this shortcut, ES4 would allow to drop an empty
> argument list from a function with a requirement that function { }
> always means an expression and ES3.1 would also support that, then in
> place of a block with let variables one can write:
>
> function {
>
> }();
>
> Regards, Igor
> _______________________________________________
> Es4-discuss mailing list
> Es4-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es4-discuss
>
--
Ingvar von Schoultz
------- (My quirky use of capitals in code comes from my opinion that
reserved and predefined words should all start with lowercase, and
user-defined should all start with uppercase, because this will easily
and elegantly prevent a host of name-collision problems when things
like programming languages are upgraded with new labels.)
More information about the Es4-discuss
mailing list