On Wed, May 30, 2012 at 5:22 PM, David Herman <[email protected]> wrote:
> On May 29, 2012, at 9:33 AM, Tab Atkins Jr. wrote: > > > Same thoughts here. Regular devs (like me!) only see > > [[DefineOwnProperty]] when creating a literal, and then there's no > > observable distinction between these two in normal circumstances: > > Bingo. The different between [[DefineOwnProperty]] and [[Put]] is subtle > and rarely encountered when dealing with a new object. > > The distinction between the two operations is a corner case of the > language, and [[Put]] is the common case. > > > I don't think it's worth optimizing for the [[DefineOwnProperty]] > > case. We should just use the standard "foo:bar" syntax, and have it > > invoke [[Put]] behavior. > > I agree we should only be considering syntax for [[Put]] -- syntactic > sugar should be to support common patterns, not to invent patterns that > don't fit smoothly within the rest of the language. > > However, I really, really oppose reusing syntax that's used for > declarative data construction (i.e., literals) to notate *update* > operations. We should not use the object literal notation for [[Put]]. We > should use assignment syntax, which corresponds to doing assignment on an > object. > > This was the motivation between my blog post a while back on a different > syntax for mustache: > > http://blog.mozilla.org/dherman/2011/12/01/now-thats-a-nice-stache/ > > tl;dr: instead of an object literal, the RHS of mustache should have a > syntax that corresponds more closely to that of blocks. It allows > assignments and method calls. > > array.{ > pop(); > pop(); > pop(); > }; > > path.{ > moveTo(10, 10); > stroke("red"); > fill("blue"); > ellipse(50, 50); > }; > > this.{ > foo = 17; > bar = "hello"; > baz = true; > }; > This is beautiful and looks powerful -- will it still meet the most common/obvious use case? var div = document.createElement(). div.{ style.{ color = "red"; left = "100px"; } }; (the nest is the key) rick > > (I'll eventually write up a new strawman for it, but I'm working on the > new wiki right now which I consider higher priority.) > > Dave > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

