On Nov 21, 2011, at 5:55 PM, Irakli Gozalishvili wrote: > Recently Claus Reinke proposed some alternative that I think feels is so much > more natural and simpler than <| or beget: > > Instead of this: > > foo <| { bar: 'bar' } > > prototype can be a special property: > > { prototype: foo, bar: 'bar' }
Two problems: 1. Does not work for array, function, and regexp literal right-hand sides. 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). These really won't cut it, and I think the reasons were covered well by Allen already. /be > > simple and easy, of course it can have a different name from `prototype`. > Also, this special `prototype` property can be non-configurable, non-writable > and non-enumerable falling back to Object.prototype if not provided. Also > Object.create(null, { foo: { value: 'foo' } }) will become as simple as { > prototype: null, foo: 'foo' }. > > Regards > -- > Irakli Gozalishvili > Web: http://www.jeditoolkit.com/ > Address: 29 Rue Saint-Georges, 75009 Paris, France > > On Monday, 2011-11-21 at 10:10 , Allen Wirfs-Brock wrote: > >> >> On Nov 19, 2011, at 11:38 AM, Dean Landolt wrote: >> >>> >>> >>> On Sat, Nov 19, 2011 at 1:57 PM, Allen Wirfs-Brock <al...@wirfs-brock.com> >>> wrote: >>>> >>>> On Nov 15, 2011, at 10:27 PM, Russell Leggett wrote: >>>> >>>> > >>>> > >>>> > but given the overall disapproval of the exact syntax of the <| >>>> > operator, I think its at least a little more obvious what is going on. >>>> > >>>> >>>> Sorry to be coming late to this thread. >>>> >>>> I think the above statement is a false characterization to use to start >>>> this discussion. There are some who disapprove of <| or other similar >>>> special character formulation of this operator. There are other who like >>>> it a lot. Certainly there isn't "overall" disapproval. However, we can't >>>> really even tell whether there is majority (of what population??) approval >>>> or disapproval. At best, all you can legitimately say is that there is >>>> not universal approval of the <| token. >>> >>> >>> I was under the impression that TC39 generally operates by consensus. As >>> you note, there are some who disapprove -- if some is a non-inconsequential >>> number wouldn't this constitute overall disapproval? >> >> It's true that there isn't consensus within TC39 on the "<|" syntax. >> However, there also isn't consensus on any other specific token or keyword >> either. At the May TC39 meeting there was consensus on "advancing to >> proposal status" the semantic capabilities that were in the enhanced object >> literal strawman. At the same time it was noted that there wasn't agreement >> on syntax. >> >> Lack of consensus does not mean "overall disapproval". It means there isn't >> overall approval. Further consensus building is still required it might be >> around the pending proposal or it might be around something else. >> >> However, TC39 wan't even mentioned in the statement I took exception to. It >> seemed to make a broader subjective characterization. >> >>> >>> FWIW I'm indifferent to the syntax, but it reads just fine to me. Still, >>> I'm sure there's something better lurking. Especially if it's true that >>> since it's infix it could be nearly anything. IMHO "begets" is pretty >>> winful. >> >> I find keywords such as "begets" a bit more jarring when used as >> compositional primitives. >> >> To me, "beget" reads fine in isolation such as >> let bob = tom beget {name: 'Robert'); >> >> But when used in combination you get clashes of the underlying natural >> language meaning of the keywords. Compare >> let Point = class AbstractPoint begets {... >> to >> let Point = class AbstractPoint <| {... >> >> The first form just doesn't "read" quite right to me. For the second form, >> I don't necessarily internally vocalize a natural language word for <|. >> >> My personal preference is for a special characters based operator based >> token but it doesn't have to be <|. I've frequently suggested <: as another >> alternative. I'm less happy with a keyword operator token but I don't >> reject that alternative and "beget" may well be the best of those. >> >> However, we have to decide on something or we just won't have this >> functionality at all. >> >> Consensus doesn't mean that everybody likes the solution. It just means >> that everybody is willing to accept it. What we really need to do is build >> such a consensus around one of the alternatives. >> >> Allen >> >> _______________________________________________ >> es-discuss mailing list >> es-discuss@mozilla.org >> https://mail.mozilla.org/listinfo/es-discuss > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss