Generator issue: exceptions while initializing arguments

Jason Orendorff jason.orendorff at gmail.com
Mon Sep 10 14:47:23 PDT 2012


On Mon, Sep 10, 2012 at 2:59 PM, Tobie Langel <tobie.langel at gmail.com> wrote:
> On Sep 10, 2012, at 9:48 PM, Jason Orendorff <jason.orendorff at gmail.com> wrote:
>
>> On Mon, Sep 10, 2012 at 12:50 PM, Kevin Smith <khs4473 at gmail.com> wrote:
>>>>>    function f(x=EXPR1, y=EXPR2) { BODY }
>>>>>    ===>
>>>>>    function f(x, y) {
>>>>>        if (x === void 0) x = EXPR1;
>>>>>        if (y === void 0) y = EXPR2;
>>>>>        BODY
>>>>>    }
>>>
>>> I'm not so sure - the desugaring above would mean that default expressions
>>> would have visibility across curly-brace boundaries, which I find to be
>>> quite surprising.
>>
>> It is surprising.  It could even bite unwary programmers.  But in what
>> scope do you propose to evaluate default-param expressions?
>
> In their lexical scope.

This isn't a complete answer. As it stands, the lexical scope of
arguments is the same as the scope of everything else in the function
body. Which leaves us with exactly what I was saying earlier.

-j


More information about the es-discuss mailing list