The spec says for the various Object functions that the properties are iterated in "list order". Doesn't this indicate the order is defined?
On Wed, Dec 12, 2012 at 4:57 PM, John J Barton <johnjbar...@johnjbarton.com>wrote: > > > > On Wed, Dec 12, 2012 at 11:13 AM, Allen Wirfs-Brock <al...@wirfs-brock.com > > wrote: > >> >> On Dec 12, 2012, at 10:10 AM, John J Barton wrote: >> >> On Wed, Dec 12, 2012 at 10:05 AM, Allen Wirfs-Brock < >> al...@wirfs-brock.com> wrote: >> >>> >>> On Dec 12, 2012, at 9:50 AM, John J Barton wrote: >>> ... >>> > But most of all we want this feature to land and not just spin around >>> here. >>> > >>> > jjb >>> >>> As Object.mixin or as Object.define?? >>> >> >> Object.mixin >> >> >> What should be the effect of trying to "mixin" a property that already >> exists (as an own property) of the target object. >> >> Object.define(target,src) would presumably have redefined such properties >> using the Object.defineProperty rules. Is that what Object.mixin should do. >> It could, have different rules. >> >> For example, it could simply replace an existing target property (if the >> existing property is configurable). Or it could skip existing properties >> or throw an error if a property exists. >> >> Replace is attractive, but it may or may not be what you want for >> accessor properties. Consider: >> >> var objTarget = {get foo() {/*target*/...}}); >> Object.mixin(objTarget, {set foo(v) {/*src*/...}}); >> >> after the mixin do you want objTarget to look like: >> {set foo(v) {/*src*/...}} //replace semantics gives you this >> or >> {set foo(v) {/*src*/...}, >> get foo() {/*target*/...} } //Object.defineProperty semantics gives >> you this >> > > The general character of Object.mixin is to produce an object with all of > the properties of both arguments. In the case of duplicate *properties* we > want replace LHS with RHS. In my opinion your example is not such a > duplicate. Rather we have two functions one on each argument. I would > expect the general character to apply: two functions on the result. > > Or maybe this should just throw. Either of the above choices will cause > surprising errors if the developer expected the other result. > > jjb > > > >> >> Allen >> >> >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss