<div dir="ltr">You summarized the "nobody liked it" bit of my post.<div>I just wanted to add some background to this discussion.<div><br></div><div>Regards</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 27, 2016 at 8:34 PM, Isiah Meadows <span dir="ltr"><<a href="mailto:isiahmeadows@gmail.com" target="_blank">isiahmeadows@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Descriptors are annoying to deal with, anyways IMO. If it had a corresponding syntax, and if you could use functions/object prototypes to type them, they might have had a little better traction, but here's my opinion: anything type-wise that can change at runtime (like the descriptor proposal) doesn't seem likely to gain much traction mainly because 1. it's no better than the inline caches used now, and 2. types that are added at runtime can't be statically analyzed (which is why people use type annotations in the first place), and thus don't scale at all. That means likely resistance from both implementors and users at scale, which basically equates to it's not likely. </p><div class="HOEnZb"><div class="h5">
<br><div class="gmail_quote"><div dir="ltr">On Fri, Jun 24, 2016, 18:33 Andrea Giammarchi <<a href="mailto:andrea.giammarchi@gmail.com" target="_blank">andrea.giammarchi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">FWIW I once proposed to add `type` as descriptor property (and without success) so you could:<div><br></div><div>```js</div><div>Object.defineProperties(</div><div>  Person.prototype,</div><div>  {</div><div>    age: {type: 'number', value: 0},</div><div>    name: {type: 'string', value: 'anonymous'}</div><div>  }</div><div>);</div><div>```</div><div><br></div><div>in order to have a "type" defined and inheritable avoiding de-opt but throwing instead when it's not the expected one.</div><div><br></div><div>It could be used to also promote an "un-typed" property like:</div><div><br></div><div>```js</div><div>var obj = {id: 'abc-123'};</div><div>// later on</div><div>Object.defineProperty(obj, 'id', {type: 'string'});</div><div>```</div><div>And throw if different or if it was type defined already.</div><div><br></div><div>The `type` would work with `get`/`set` too, as well as `enumerable`, `configurable`, and `writable` properties.</div><div><br></div><div>It'd be fully backward compatible (ignored) and easy to transpile via flow like syntax.</div><div><br></div><div>It could also be polyfilled.</div><div><br></div><div>TL;DR nobody liked it ^_^</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 23, 2016 at 9:00 PM, Igor Baklan <span dir="ltr"><<a href="mailto:io.baklan@gmail.com" target="_blank">io.baklan@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">By the way it looks very similar to  [s-ctypes/StructType](<a href="https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes/js-ctypes_reference/StructType#Describing_fields" target="_blank">https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes/js-ctypes_reference/StructType#Describing_fields</a>) Although it designed for interoperability with native code (not for code performance improvement, or better code readability), it still might be interesting for you (more links can be found at [wiki/Libffi/JavaScript](<a href="https://en.wikipedia.org/wiki/Libffi#JavaScript" target="_blank">https://en.wikipedia.org/wiki/Libffi#JavaScript</a>) )<br></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" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></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" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div>
</div></div></blockquote></div><br></div>