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