Thanks for filling in those blanks -Rick
On Wednesday, May 23, 2012 at 7:43 PM, Brendan Eich wrote: > Rick, thanks for taking these. I'll try to add a bit of explanation > where it looks like "you had to be there" ;-). > > /be > > Rick Waldron wrote: > > # 4.10 Object.observe (Rafeal Weinstein) > > > > Rafeal Weinstein: > > - Introduction to proposal > > > > See: http://wiki.ecmascript.org/doku.php?id=strawman:observe > > > > MM: > > - In favor of spec'ing an event loop > > > > > BE: let's subset the parts of Hixie's HTML5 spec that we need, and no > more (and reference that spec so it's likelier we keep the subset relation). > > > > AWB: > > - There is too much going on at low level with this proposal > > > > > Allen's point was that all of the strawman champions and Allen, the spec > editor, and experts and interested folks (Tom Van Cutsem, people on > es-discuss) all need to digest the non-local effects of the local but > low-level changes in the strawman. > > I said this, and also offered that we would prototype in SpiderMonkey > alongside V8. > > > RWeinstein: > > - Asking for blessing to prototype in v8: approved. > > > > > I emphasized that all strawman not moved to deferred: namespace in the > wiki (and there's a curation process here, which can fail sometimes) are > fair game for prototyping. > > > Property Assignment Shorthand > > Rather, "Object Literal" or "Property Definition" (in ES3, > PropertyAssignment) shorthand. > > > eg. > > function point(x, y) { > > return { x, y }; > > } > > > > { x: x, y: y } > > > > This is too unclear > > w/r to destructuring: both, or nothing. > > Plenty of opposition based on clarity. > > > > Resolution: Nothing, no change. > > That is, we keep the shorthand for *structuring* as well as for > *destructuring* where it is clearly useful. > > LH observed that the 90%+ by frequency use-case for destructuring wants > the shorthand, whereas for structuring (making an object via an object > literal expression) it's more like 10% or 1%. BE agrees but BE and MM at > least want duality consistency: shorthand for both literals and patterns. > > That's where we left ES6. > > I personally think the "n00bs will see the new shorthand and > artificiailly declare variables of the same name as the property just to > use the shorthand" worry as an undemonstrated speculation, and too > fearful. We need user-testing evidence of this! > > EA raised the other interpretation of {x,y} in an expression, as a > WebIDL-ish enum equivalent to {x: "x", y: "y"} -- for making string > manifest constants named by the string contents -- but this is a > different semantics, and rarer yet than {x,y} to make a point from x and > y bindings. > > AR mentioned future-hostility to set notation in JS. BE ack'ed that, > figures it is un-possible given object literals being wrapped in curlies > anyway. > > > Triangle > > > > Is capable of giving up private names > > > > If people have __proto__ they will not use <|. > > > > MM: > > - From a security perspective, I'd like to move __proto__ out of annex > > B and into normative body > > > > BE: > > - If MS puts __proto__ in IE, then it becomes defacto standard and we > > might as well put it in the standard. > > > > 1. __proto__ > > 2. grawlix > > > > > > Resolution: Indefinite postpone\ > > I.e., we defer/cancel triangle and go with normative mandatory > __proto__. W00t! Kidding, mostly, but I perpetrated it, it is in all > browsers but IE, and IE feels the heat on mobile (thank you Thomas > Fuchs!). So __proto__ is the winner already, we're just trying to > forestall the inevitable. > > > Moustache > > > > o.{ p: v } > > > > BE: > > - Propose that moustache is kept, but still consider Object.extend > > > > MM: > > - Would like to consider both moustache and Object.extend > > > > > > How about… both? > > = assign > > : define > > > > ie. > > > > o.{ > > p1: "to define", > > p2 = "to assign" > > }; > > > > > Further choice: allow = instead of : in object literals too, not just in > mustache-literals! > > > Positions: > > > > Just Define > > Just Assign > > Both Define and Assign > > Alone > > Applied to object literals > > > > > Ah, you got that one. Thanks. > > OH worried that the JSON theft attack (a global setter targeting > well-known id in top-level JSON blob) would work, but this requires both > = instead of : in the JSON blob, and the wrong MIME type for loading > JSON as a <script>. > > > Resolution: Return to strawman for revision, needs own wiki page. > > I still want mustache. My advice was to copy and lightly mutate the > ObjectLiteral grammar instead of reusing it, to allow = and : as > alternatives for assign and define, respectively; and for any other > reason. Sometimes pattern languages diverge from expression grammars for > good reason. > > > Computed Keys > > > > Erik Arvidsson: > > - Today, properties are static and knowable, computed keys are not > > knowable. > > > > Resolution: Deferred. > > But just to capture all the nuance, the idea of @privateName: value in > an object literal has support and maintains the compile-time name > structure that EA rightly cited. > > The [anyExpr]: value idea for a property definition in an object literal > is what I believe died today. If you want to extend an object with a > computed property name, use assignment or Object.defineProperty. > > > # Weak Refs > > > > Yehuda Katz: > > - Use case: observers > > > > > > Resolution: Continued, due to lack of time. > > BE: valid use-case for observers, virtualization layers, other such > bridging functions. MM/AWB need to discuss more, ideally here on es-discuss! > > > > # Value Objects > > > > Brendan demos, explanation of the implementation and operator overloading > See https://bugzilla.mozilla.org/show_bug.cgi?id=749786 and stay tuned. > > Thanks again, Rick! > > /be
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

