object functions can handle hasOwnProperty override

> I don't think making the user type check in partially applied applications makes sense

i agree--i also don't think we should hold the user's hand and make it work when they feed bad data in. Object.keys does not do that:

    Object.keys(5);
    TypeError: Object.keys called on non-object