If we have a macro named `hasOwnProperty` this will fail right? Need `Object.prototype.hasOwnProperty.call(this.__data, key)` I think.