WatchAll: use Object.prototype.hasOwnProperty.call() instead of obj.hasOwnProperty

I faced serious issue when dealing with an object that the method is removed, it's also not available when an object is created with Object.create(null). This is generally a better way IMO.