<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Jul 26, 2014, at 20:36 , Kevin Smith <<a href="mailto:zenparsing@gmail.com">zenparsing@gmail.com</a>> wrote:<br><div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto;"><div style="word-wrap:break-word"><div>* As far as I can tell, `hasOwnProperty` is mainly used to implement maps via objects. `Map` will eliminate this use case.</div></div></blockquote><div><br></div><div>To a certain extent yes, but not completely.  Objects-as-maps will still be used quite frequently as object literals passed into functions (as an options object, for example).</div>
<div><br></div><div>I think that there is still a need here.</div></div></div></div></blockquote><div><br></div><div>Yes, but itís much less urgent.</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Since we are really interested in *keys*, what about this:</div><div><br></div><div>    Object.hasKey(obj, someKey);</div></div></div></div></blockquote><div><br></div><div>Ah, good point! I hadnít thought of symbols as property keys.</div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>which would be a more ergonomic and efficient way of saying:</div>
<div><br></div><div>    Object.keys(obj).some(key => key === someKey)<br></div></div></div></div></blockquote><br></div><div>Did you mean `Reflect.ownKeys()`? How about:</div><div><br></div><div>```js</div><div>Reflect.ownKeys(obj).indexOf(someKey) >= 0</div><div>```</div><div><br></div><div>Or, maybe in ES7:</div><div><br></div><div>```js</div><div>Reflect.ownKeys(obj).contains(someKey)</div><div>```</div><br><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">-- <br>Dr. Axel Rauschmayer<br><a href="mailto:axel@rauschma.de">axel@rauschma.de</a><br>rauschma.de<br></div><br></div></div><br class="Apple-interchange-newline">
</div>
<br></body></html>