[+es5-discuss] Hi Wes,
In Annex E, "Additions and Changes in the 5th Edition that Introduce Incompatibilities with the 3rd Edition", we list 27 potential compat problems, including the one you encountered: In particular, in Edition 5 built-in functions that are specified to actually use the passed this value as an object typically throw a TypeError exception if passed null or undefined as the this value. If you're looking for other daemons, I'd start there. If you find daemons that we missed, please let us know, as further errata may be called for. So far, AFAIK Annex E has done quite well. On Mon, Feb 7, 2011 at 10:54 AM, Wes Garland <[email protected]> wrote: > I bumped into something this morning that I thought might be worth pointing > out -- mostly because I was surprised to have seemingly-valid ES3 code break > on an ES5 browser without strict mode in play. > > One of my developers has a habit of writing tests like > > if (!hasOwnProperty("console")) > // supply my own console object instead > > This works fine on our deployment-target browsers, and up until very > recently, on Firefox 4 betas. With the latest Firefox Minefield build, > this same code throws a surprising (to me) error: "Error: can't convert > undefined to object". > > If I understand the relevant Mozilla bug correctly (and I'm not sure that I > do) -- https://bugzilla.mozilla.org/show_bug.cgi?id=619283 -- this is > because of the way bindings are looked up in ES5 10.2.1.2.4. > > Interesting. > > Comments? Obviously, the work-around is easy -- always invoke > window.hasOwnProperty instead of hasOwnProperty -- but I wonder what other > daemons lurk in the same corners. > > Wes > > -- > Wesley W. Garland > Director, Product Development > PageMail, Inc. > +1 613 542 2787 <+16135422787> x 102 > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > > -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

