<div dir="ltr">Dave Herman's "<span style="font-family:arial,sans-serif;font-size:13px">And the other consistency dimension is between array types and struct types. Is anyone arguing that structs should also have expandos?" surprised me, and convinced me of the opposite conclusion. Do you think instances of struct types should be extensible?</span><br style="font-family:arial,sans-serif;font-size:13px">
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 30, 2013 at 8:48 AM, Allen Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com" target="_blank">allen@wirfs-brock.com</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>This thread has convinced my that Typed Arrays should be born extensible. </div>
<div><br></div><div><div>Actually, my subclass example in the thread started me down that path.  In many cases where you might subclass an array you will want to add per instance state.  You can expose a getter/setter on the prototype but the state still needs to be associated with the individual instances.  Expando properties (or even better properties added in the @@create method) are the most natural way to represent that state.</div>
</div><div><br></div><div>The Firefox implementors will make this change if it represents TC39 consensus.</div><div><br></div><div>I'll put this item on the agenda for the next meeting and see if we can agree on extensible Typed Arrays.</div>
<span class="HOEnZb"><font color="#888888"><div><br></div><div>Allen</div></font></span><div><div class="h5"><div><br></div><div><br></div><div><br></div><br><div><div>On Aug 28, 2013, at 11:01 PM, Filip Pizlo wrote:</div>
<br><blockquote type="cite"><div style="word-wrap:break-word">Here's the part that gets me, though: what is the value of disallowing named properties on typed arrays?  Who does this help?<div><br></div><div>I don't quite buy that this helps users; most of the objects in your program are going to allow custom properties to be added at any point.  That's kind of the whole point of programming in a dynamic language.  So having one type where it's disallowed doesn't help to clarify thinking.</div>
<div><br></div><div>I also don't buy that it makes anything more efficient.  We only incur overhead from named properties if you actually add named properties to a typed array, and in that case we incur roughly the overhead you'd expect (those named properties are a touch slower than named properties on normal objects, and you obviously need to allocate some extra space to store those named properties).<br>
<div><br></div><div>-Filip</div><div><br></div><div><br></div><div><br><div><div>On Aug 28, 2013, at 10:52 PM, Steve Fink <<a href="mailto:sphink@gmail.com" target="_blank">sphink@gmail.com</a>> wrote:</div><br><blockquote type="cite">
<div style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">On 08/27/2013 09:35 AM, Oliver Hunt wrote:<br>
<blockquote type="cite">My complaint is that this appears to be removing functionality that has been present in the majority of shipping TA implementations, assuming from LH's comment that Chakra supports expandos.<br>
</blockquote><br>Note that even in the engines that support expandos, they will probably<br>not survive a structured clone. I just tried in Chrome and they get<br>stripped off. This further limits their utility in today's Web.<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></div>
</blockquote></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>
</blockquote></div><br></div></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><br clear="all"><div><br></div>-- <br>    Cheers,<br>    --MarkM
</div>