My understanding of `hasOwnProperty` in IE8, is that it is present, but not necessarily for all types of objects.

A polyfill should not be required, but instead it can be leveraged for all arraylike objects using

`Object.prototype.hasOwnProperty.call([targetObject], arguments...)`

This should work on IE7 as well, to my knowledge. In order to save a few bytes, Object.prototype.hasOwnProperty could be cached in Angular somewhere for internal use, if people think that's a good idea/important.

---

But this isn't really what my comment was about. The issue is that it's just not clear what this test is actually testing, and I think you should make it as explicit as possible, to avoid any confusion.

Spell out as clearly as possible what is being tested in the spec description, and if it's still not crystal clear, add some comments, IMO.