Following up to myself: > -----Original Message----- > From: Lars Hansen > Sent: 3. mars 2008 08:04 > To: 'Waldemar Horwat' > Cc: [email protected] > Subject: RE: ES4 draft: Map > > > -----Original Message----- > > From: Waldemar Horwat [mailto:[EMAIL PROTECTED] > > Sent: 1. mars 2008 01:53 > > > > Why does get return null instead of undefined when it fails > > to find an instance? > > No good reason that I can think of. I think undefined is at > least as sensible; will fix.
Actually, it was for Java compatibility (the API is modelled on Java, but imperfectly). No matter. > > A version of get with a second parameter X that returns X when the > > value isn't present would be useful. > > I agree, and that parameter could be optional and default to > undefined. Will fix. There is actually a problem with an arbitrary optional parameter, and the problem also comes up if -- as somebody sent me private mail about -- we want put() to return the previous value for the key, if there is one. For strict mode we probably would like get() to be declared to returning V or at most (V|undefined). So X would be constrained likewise. In summary, this seems reasonably simple: function get(key:K, default:(V|undefined)=undefined):(V|undefined) ... function put(key:K, value:V, default:(V|undefined)=undefined):(V|undefined) ... with the proviso that if the table may associate K with the value undefined then the programmer has to be careful and use "has". --lars _______________________________________________ Es4-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es4-discuss
