<div dir="ltr">I mixed up ... sorry, let me recap:<div><ol><li>`Object.getOwnPropertyNames(O)` list of `properties` and `Object.getOwnPropertySymbols(O)` list of `Symbols` can be both used, per each item of each list, with `Object.getOwnPropertyDescriptor(O, propertyOrSymbol)`<br>
</li><li>`Object.getOwnPropertyDescriptor(O, propertyOrSymbol)` accepts, as second argument, only as a `property` name or a `Symbol`, otherwise it throws [as specified here](<a href="https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey">https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey</a>)<br>
</li><li>accordingly, the most meaningful collection as `Object` of descriptors the proposed plural `Object.getOwnPropertyDescriptors(O)` should return is a collection that includes descriptors for both `properties` and `Symbols`</li>
</ol></div><div><div>I hope this makes sense.</div></div><div>Thanks again Rick for, at least, trying and helping out with this.</div><div><br></div><div>Cheers</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Tue, Mar 4, 2014 at 9:48 AM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">yes, because `Object.getOwnPropertyDescriptor(O, k)` accepts both `propertyName` and `Symbol` as second argument. The plural, and to be consistent with the shallowCopy example, should return a list of both.<div>

<br></div><div>This is also because all descriptors returned by `Object.getOwnPropertySymbols` can be used same way `Object.getOwnPropertyNames` ... so, unless `Object.defineProperty(O, k, d)` does not accept `k` as `Symbol` (basically breaking this proposal via `Object.create`) I don't see why the plural version should not return descriptors for both kind of properties.</div>

<div><br></div><div>My 2 cents</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 4, 2014 at 9:38 AM, Rick Waldron <span dir="ltr"><<a href="mailto:waldron.rick@gmail.com" target="_blank">waldron.rick@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Question: should the returned array include property descriptors for properties whose key is a symbol? <span><font color="#888888"><div>

<br></div></font></span><div><span><font color="#888888">Rick</font></span><div><div><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 4, 2014 at 12:34 PM, Rick Waldron <span dir="ltr"><<a href="mailto:waldron.rick@gmail.com" target="_blank">waldron.rick@gmail.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div>On Tue, Mar 4, 2014 at 12:30 PM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br>




<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">

<div>
<div>
<div style="font-size:11pt;font-family:Calibri,sans-serif">Apparently this triggered an @rwaldron which seems to be super-effective<br><br>In agenda for April's meeting.<br></div></div></div></blockquote><div><br></div>




</div><div>Yep: <a href="https://github.com/tc39/agendas/blob/master/2014/04.md" target="_blank">https://github.com/tc39/agendas/blob/master/2014/04.md</a></div><div><br></div><div>Going to try, but it's so late in the game that I really can't promise anything—I think it's simple enough that we can get away with it. I will write up a proposed normative spec (likely based on Andrea's work) before I present, I've found that's a pretty powerful way to make a case for late additions ;)</div>



<span><font color="#888888">
<div><br></div><div><br></div><div>Rick</div></font></span><div><div><div> </div><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">



<div>
<div><div style="font-size:11pt;font-family:Calibri,sans-serif"><br>Thanks<br><br>Sent from my Windows Phone</div>
</div>
<div dir="ltr">
<hr>
<span style="font-size:11pt;font-family:Calibri,sans-serif;font-weight:bold">From: </span><span style="font-size:11pt;font-family:Calibri,sans-serif"><a href="mailto:cscott@cscott.net" target="_blank">C. Scott Ananian</a></span><br>




<span style="font-size:11pt;font-family:Calibri,sans-serif;font-weight:bold">Sent: </span><span style="font-size:11pt;font-family:Calibri,sans-serif">3/4/2014 6:16</span><br>
<span style="font-size:11pt;font-family:Calibri,sans-serif;font-weight:bold">To: </span><span style="font-size:11pt;font-family:Calibri,sans-serif"><a href="mailto:andrea.giammarchi@gmail.com" target="_blank">Andrea Giammarchi</a></span><br>





<span style="font-size:11pt;font-family:Calibri,sans-serif;font-weight:bold">Cc: </span><span style="font-size:11pt;font-family:Calibri,sans-serif"><a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org list</a></span><br>





<span style="font-size:11pt;font-family:Calibri,sans-serif;font-weight:bold">Subject: </span><span style="font-size:11pt;font-family:Calibri,sans-serif">Re: Object.getOwnPropertyDescriptors(O) ? // plural</span><br><br></div>





</div><p dir="ltr">Have you filed a bugzilla ticket for this? That seems the best way to ensure it will get discussed at the next TC39 meeting and resolved one way or the other.<br>
  --scott</p>
<div class="gmail_quote"><div><div>On Mar 3, 2014 8:44 PM, "Andrea Giammarchi" <<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>> wrote:<br type="attribution">
</div></div><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"><div><div>

<div dir="ltr">up ?</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 2, 2014 at 5:43 PM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br>







<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"><div dir="ltr">Brandon I take your answer as +1, thanks.<div>




<br></div><div>I've also "gisted" a possible/basic polyfill here:<div>


<a href="https://gist.github.com/WebReflection/9317065" target="_blank">https://gist.github.com/WebReflection/9317065</a></div>
</div><div><br></div><div>Cheers</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 2, 2014 at 5:16 PM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br>








<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"><div dir="ltr">actually, since `Object.getOwnPropertyDescriptor` accepts `Symbols` too as second argument, the equivalent with current ES6 would be even more prolix than that<div>








<br></div><div>```javascript</div><div><br>
</div><div><div><div style="font-family:arial,sans-serif;font-size:13px">var shallowCopy = Object.create(</div><div style="font-family:arial,sans-serif;font-size:13px">  Object.getPrototypeOf(originalObject),</div>
</div><div style="font-family:arial,sans-serif;font-size:13px">
  Object.getOwnPropertyNames(originalObject).concat(</div><div style="font-family:arial,sans-serif;font-size:13px">  Object.getOwnPropertySymbols(originalObject)</div><div style="font-family:arial,sans-serif;font-size:13px">









  ).reduce(function (descriptors, name) {</div><div><div style="font-family:arial,sans-serif;font-size:13px">    descriptors[name] = Object.getOwnPropertyDescriptor(</div><div style="font-family:arial,sans-serif;font-size:13px">









      originalObject, name</div><div style="font-family:arial,sans-serif;font-size:13px">    );</div><div style="font-family:arial,sans-serif;font-size:13px">    return descriptors;</div><div style="font-family:arial,sans-serif;font-size:13px">









  }, {})</div><div style="font-family:arial,sans-serif;font-size:13px">);</div></div></div><div><br></div><div>```</div><div><br></div><div>assuming Symbols will be definable through descriptors ... all this VS </div><div>








<div><br></div>
<div><div style="font-family:arial,sans-serif;font-size:13px">```javascript</div><div style="font-family:arial,sans-serif;font-size:13px">var shallowCopy = Object.create(</div><div style="font-family:arial,sans-serif;font-size:13px">









  Object.getPrototypeOf(originalObject),</div><div style="font-family:arial,sans-serif;font-size:13px">  Object.getOwnPropertyDescriptors(originalObject)</div><div style="font-family:arial,sans-serif;font-size:13px">);</div>









<div style="font-family:arial,sans-serif;font-size:13px">```</div></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div></div><div style="font-family:arial,sans-serif;font-size:13px">which I believe is a win.</div>









<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Thanks</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sun, Mar 2, 2014 at 5:01 PM, Andrea Giammarchi <span dir="ltr"><<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>></span> wrote:<br>
<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"><div dir="ltr">I wonder if by any chance this could sneak into ES6 ... we have only singular version here:<div>




<a href="https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.getownpropertydescriptor" target="_blank">https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.getownpropertydescriptor</a><br>





</div><div><br></div><div>**rationale**</div><div>The easiest way to create a shallow copy of a generic object could be:</div><div><br></div><div>```javascript</div><div>var shallowCopy = Object.create(</div><div>  Object.getPrototypeOf(originalObject),</div>










<div>  Object.getOwnPropertyDescriptors(originalObject)</div><div>);</div><div>```</div><div><br></div><div>Today what we have to do this instead:</div><div><br></div><div><div>```javascript</div><div><div>var shallowCopy = Object.create(</div>










<div>  Object.getPrototypeOf(originalObject),</div><div>  Object.getOwnPropertyNames(originalObject).reduce(</div><div>  function (descriptors, name) {</div><div>    descriptors[name] = Object.getOwnPropertyDescriptor(</div>










<div>      originalObject, name</div><div>    );</div><div>    return descriptors;</div><div>  }, {})</div><div>);</div></div><div>```</div></div><div><br></div><div>I see latter pattern as sort of unnecessary overhead that could be also much faster in core and polyfilled in the meanwhile.</div>










<div><br></div><div>Thoughts ?</div><div><br></div><div>Cheers</div><div><br></div><div><br></div><div><br></div><div><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
<br></div></div><div>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">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></div></blockquote></div>
<br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">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></div></div><br></div></div>
</blockquote></div><br></div></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>