Thanks.

1. It has lot of typos (I remember two uses of := in examples in the first half where in fact legacy = should have been plus there are a few others, it would benefit from proofreading with someone with editing access).

2. As was already mentioned, the super rebinding allows me to just

  iWantSuperHere := (class { m(...) {super....} }).prototype;

to get to generic super, but spec's lack of genericity must be worked around this way (or similar). Which is probably different discussion (and with this := around but with super still restricted to classes it would look strange or maybe even ridiculous).

Herby

Allen Wirfs-Brock wrote:
Based upon discussions last week in the "July 25, 2012 - TC39 Meeting
Notes" thread, I've created a new strawman proposal for a := operator.
See
http://wiki.ecmascript.org/doku.php?id=strawman:define_properties_operator

:= is a convient way to copy properties from one object to another or to
extend an object with new properties. It combines supports for many of
the same use cases as the previously proposed "object extension
literals" and the JSFixed Object.extend proposal.

The most important characteristic of := is that it uses
[[DefineOwnProperty]] semantics rather than [[Put]] semantics to define
properties on its target object so it doesn't run into issues with
assignment to accessor properties or over-riding inherited readonly
properties. It is also smart about dealing with methods that reference
super.

Some basic examples:

target := src; //define all own properties of src onto target

//add a method and an accessor to an existing prototype
Point.prototype := {
plus(aPoint) {return new this.comstructor(this.x+aPoint.x,this.y+aPoint.y},
get rho() {return Math.sqrt(this.x*this.x+this.y*this.y}
};


Have at it,

Allen


------------------------------------------------------------------------

_______________________________________________
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

Reply via email to