`obj.hasOwnProperty('foo')` fails with objects that do not inherit from
`Object.prototype`

I'd personally +1 `Reflect.hasOwnProperty(genericObject, propertyName)`
without going fancy with shortcuts if the meaning and the result should be
exactly the same as `Object.prototype.hasOwnProperty.call(genericObject,
propertyName)`

My $0.02


On Fri, Jul 25, 2014 at 9:13 PM, Axel Rauschmayer <a...@rauschma.de> wrote:

> On Jul 26, 2014, at 6:02 , Peter van der Zee <e...@qfox.nl> wrote:
>
> On Sat, Jul 26, 2014 at 5:43 AM, Axel Rauschmayer <a...@rauschma.de>
> wrote:
>
> The only exception that comes to my mind is `{}.hasOwnProperty.call(obj,
> key)` (which is the only safe way to invoke this method). Would it make
> sense to provide that as a tool function, e.g. as `Reflect.hasOwn()`?
>
>
> That would make it unsafe again. Not so much from random people
> polluting the global Object, but certainly unsafe from a security
> perspective.
>
>
> With “safe”, I only meant w.r.t. overriding (e.g.,
> `obj.hasOwnProperty('foo')` fails if `obj` has an own property whose name
> is `'hasOwnProperty'`).
>
> Security-wise, how is `{}.hasOwnProperty.call()` safer than a hypothetical
> `Reflect.hasOwn()`?
>
> Axel
>
> --
> Dr. Axel Rauschmayer
> a...@rauschma.de
> rauschma.de
>
>
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to