object functions can handle hasOwnProperty override

The advantage of this is that it's possible to overwrite `hasOwnProperty` with your own value.