Alternative syntax for <|

Claus Reinke claus.reinke at
Tue Nov 22 09:48:46 PST 2011

>> Recently Claus Reinke proposed some alternative that I think feels is so 
>> much more natural and simpler than <| or beget:
>> ..
>> .. re-interpretation deleted ..

Ahem;-) Glad to see my proposal noticed, but what I really
suggested, in

    motivating <| as structure representation, not operator

was to interpret

    proto <| {..}

as a source representation of the unwritable

    { [[prototype]]: proto , .. }

> Two problems:
> 1. Does not work for array, function, and regexp literal right-hand sides.

With my original suggestion, could work for array, and regexpr,
and function. The difference from the original <| was just that I
wanted to interpret <| directly as structure representation, not
as an operator taking a full object rhs.

Though I suggested to eliminate the special case for function,
and to set only [[prototype]], not 'prototype' as well.

We should be explicit about setting function's [[prototype]] or
setting function's 'prototype' (the [[prototype]] for new objects).

> 2. Preempts a property name. We cannot preempt 'prototype',
> and '__proto__' was already tried (it sucks due to preemption
> combined with magic meta-programming power in what looks
> like just another property).

Not an issue with my original suggestion, as the name is implicit.


More information about the es-discuss mailing list