<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">`obj.hasOwnProperty('foo')` fails with objects that do not inherit from `Object.prototype`</span><br><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">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(</span><span style="font-family:arial,sans-serif;font-size:13px">genericObject, propertyName</span><span style="font-family:arial,sans-serif;font-size:13px">)`</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">My $0.02</span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Fri, Jul 25, 2014 at 9:13 PM, Axel Rauschmayer <span dir="ltr"><<a href="mailto:axel@rauschma.de" target="_blank">axel@rauschma.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div class="">On Jul 26, 2014, at 6:02 , Peter van der Zee <<a href="mailto:ecma@qfox.nl" target="_blank">ecma@qfox.nl</a>> wrote:<br></div><div><div class=""><br><blockquote type="cite">
On Sat, Jul 26, 2014 at 5:43 AM, Axel Rauschmayer <<a href="mailto:axel@rauschma.de" target="_blank">axel@rauschma.de</a>> wrote:<br><blockquote type="cite">The only exception that comes to my mind is `{}.hasOwnProperty.call(obj,<br>
key)` (which is the only safe way to invoke this method). Would it make<br>sense to provide that as a tool function, e.g. as `Reflect.hasOwn()`?<br></blockquote><br>That would make it unsafe again. Not so much from random people<br>
polluting the global Object, but certainly unsafe from a security<br>perspective.<br></blockquote><div><br></div></div><div>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'`).</div>
<div><br></div><div>Security-wise, how is `{}.hasOwnProperty.call()` safer than a hypothetical `Reflect.hasOwn()`?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Axel</div><div><br></div></font></span></div>
<div class=""><div>
<div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word">
<div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word">-- <br>Dr. Axel Rauschmayer<br><a href="mailto:axel@rauschma.de" target="_blank">axel@rauschma.de</a><br>
<a href="http://rauschma.de" target="_blank">rauschma.de</a><br></div><br></div></div><br>
</div>
<br></div></div><br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>