Quasis: assignable substitutions?

Mark S. Miller erights at google.com
Fri Jun 17 13:26:40 PDT 2011


On Fri, Jun 17, 2011 at 12:46 PM, Axel Rauschmayer <axel at rauschma.de> wrote:

> Syntax error (in some cases)?
>

Yes:

    const x = 8;
    foo`${=x}`

expands to

    const x = 8;
    foo(callSiteId, function() { ... x = arguments[0] ... })

throws an early SyntaxError


>
> On Jun 17, 2011, at 21:38 , Mark S. Miller wrote:
>
>
>
> On Fri, Jun 17, 2011 at 12:18 PM, Mike Samuel <mikesamuel at gmail.com>wrote:
>
>> 2011/6/17 Axel Rauschmayer <axel at rauschma.de>:
>> > and redefines the SVE of ${=x.y} to be
>> >
>> >     function () { return arguments.length ? (x.y = arguments[0]) : x.y }
>> >
>> > so instead of passing substitution values, for read-only substitutions
>> >
>> > (those without the = modifier) you get a thunk, and for writable
>> >
>> > substitutions you get a function that returns the value when called
>> >
>> > with 0 arguments or assigns the first parameter if passed one.
>> >
>> > It also allows for multiple evaluation of substitutions which might be
>> > useful for looping constructs in the template use-case.
>> >
>> > Yes, useful. I assume that if the expression is not assignable, trying
>> to
>> > use the function as a setter will produce an exception(?)
>>
>> That's a good point.  It should but does not currently.
>>
>
> A failed strict assignment throws, and therefore a failed ES-next
> assignment does. So are you sure it does not currently throw? From your
> expansion, I'd expect it does.
>
>
>
>>
>> > --
>> > Dr. Axel Rauschmayer
>> > axel at rauschma.de
>> > twitter.com/rauschma
>> > home: rauschma.de
>> > blog: 2ality.com
>> >
>> >
>> >
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
>
>
> --
>     Cheers,
>     --MarkM
>
>
> --
>
> Dr. Axel Rauschmayer
> axel at rauschma.de
> twitter.com/rauschma
>
> Home: rauschma.de
> Blog: 2ality.com
>
>


-- 
    Cheers,
    --MarkM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20110617/240de1ef/attachment.html>


More information about the es-discuss mailing list