I think I agree with current wm.get(o, def) which is indeed the one implemented in Firefox and all other shims I have seen so far ... I don't agree about the third argument to set it automatically if not there: a bit too much for a get semantic, imho
On Mon, Jan 16, 2012 at 10:46 PM, Mark S. Miller <[email protected]> wrote: > David and Axel, I don't get it. What's wrong with the get with the > optional default value, as specified by that text and as currently > implemented by FF? What additional value does this contingent mutation add, > regardless of how it's packaged? Do you really want "has" to answer true > for a key merely because a previous get (or setdefault) with that key > caused a default value to be stored? Axel, does this add enough value to > expand the API by 25%? > > > On Mon, Jan 16, 2012 at 1:26 PM, Axel Rauschmayer <[email protected]>wrote: > >> A separate method such as the previously mentioned setdefault() provided >> by Python [1] might answer both Mark’s concerns and yours. >> >> [1] http://docs.python.org/dev/library/stdtypes.html#mapping-types-dict >> >> >> On Jan 16, 2012, at 22:21 , David Bruant wrote: >> >> > [Specifying the Davids] >> > >> > Le 16/01/2012 21:56, Mark S. Miller a écrit : >> >> I like the idea of the two argument get as proposed by David [BRUANT]. >> >> (In fact, I like it so much that I thought I'd already specified it >> >> that way ;).) David [HERMAN], I'm glad to see you got it right in your >> >> suggestion at >> >> < >> http://wiki.ecmascript.org/doku.php?id=harmony:weak_maps#alternate_spec_based_on_ff6.0a1 >> >. >> > Actually, that's not what I meant. >> > What I meant was to replace the get that is currently where you link to >> with >> > ------ >> > get(key, defaultValue = undefined) { >> > if (key !== Object(key)) { >> > throw new TypeError(...); // key must be an object >> > } >> > const i = private(this).keys.indexOf(key); >> > >> > if(i < 0 && defaultValue !== undefined){ >> > this.set(key, defaultValue); >> > } >> > >> > return private(this).values[i]; >> > } >> > ------ >> > >> > In this version, if the key is not found, the property is set to the >> > return value. >> > The return statement returns the value that is there if the key existed >> > in the map or the default value (which has just been assigned). >> > >> > David >> > >> >> -- >> Dr. Axel Rauschmayer >> [email protected] >> >> home: rauschma.de >> twitter: twitter.com/rauschma >> blog: 2ality.com >> >> > > > -- > Cheers, > --MarkM > > _______________________________________________ > 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

