This seems quite bizarre.
Here\'s my experiment in the IE8 console:
typeof obj1 // \"object\" obj1.hasOwnProperty // {...} typeof obj2 // \"object\"
This example is from IE8, but the same return is from IE6+ and most other IE browsers.
IE before #9 does not define it for host objects
var o=window;// or document or document elements o.hasOwnProperty /* returned value: (undefined) undefined */