<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>In WebKit the array implementation switches to an amortized constant time deque if you use push/pop/shift/unshift in anger. So, a program that just treats arrays as if they were deques should perform great. If you find that it does not perform as well as you would like, then we would love to hear a bug report at <a href="http://bugs.webkit.org">bugs.webkit.org</a>. </div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">I think that adding a Deque type is an OK idea. But maybe it's better if all of the implementations get adaptive arrays right. </div><div id="AppleMailSignature"><br>-Filip</div><div><br>On Feb 25, 2017, at 15:03, Zach Boldyga <<a href="mailto:zach@scalabull.com">zach@scalabull.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">Hello,<div><div style="font-size:12.8px">   Sorry if this is an ignorant request, I scanned the proposals and didn't see anything that appeared similar.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">   Is it appropriate for ECMAScript to include a Queue implementation, or adjust shifting to a constant amortized time operation? Server-side usage of the language is mostly formidable nowadays, and I've run into cases where it would have been convenient to have an in-language queue.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">   I see in the latest Array.prototype.shift documentation (<a href="https://tc39.github.io/ecma262/#sec-array.prototype.shift" target="_blank">https://tc39.github.io/ecma26<wbr>2/#sec-array.prototype.shift</a>) <wbr>that shift is still intended to be an O(n) operation, meaning those wanting to implement a proper queue may need to rely on external libraries, like this one: <a href="https://github.com/petkaantonov/deque" target="_blank">https://github.com/petkaa<wbr>ntonov/deque</a> . </div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">   As the github link mentions, V8 has a trick to get around array resizing, but for serious users we still need to rely on an external library. It'd be great if this was a built-in feature.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">   I'm sure someone has looked at this before - what do you think?</div><div style="font-size:12.8px"><br></div><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr" style="font-size:small;font-family:arial"><font face="arial, helvetica, sans-serif">Best,</font></div><div dir="ltr" style="font-size:small;font-family:arial"><font face="arial, helvetica, sans-serif"><br></font></div><div dir="ltr" style="font-size:small;font-family:arial"><font face="arial, helvetica, sans-serif">Zach Boldyga</font></div><div dir="ltr" style="font-size:small;font-family:arial"><div><font face="arial, helvetica, sans-serif">Scalabull  |  Founder</font></div><div><font face="arial, helvetica, sans-serif">1 (866) 846-8771 x 101</font></div></div></div></div></div></div></div></div></div></div></div></div></div>
<img src="https://t.yesware.com/t/5935242c34ebdf77e1f164cd199306eb32ad03af/b978d0f914ec7aa62ba351cba93f80ed/spacer.gif" style="border: 0px; width: 0px; height: 0px; overflow: hidden;" width="0" height="0"><img src="http://t.yesware.com/t/5935242c34ebdf77e1f164cd199306eb32ad03af/b978d0f914ec7aa62ba351cba93f80ed/spacer.gif" style="border: 0px; width: 0px; height: 0px; overflow: hidden;" width="0" height="0"><font face="yw-5935242c34ebdf77e1f164cd199306eb32ad03af-b978d0f914ec7aa62ba351cba93f80ed--to" style="display:none"></font></div></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>es-discuss mailing list</span><br><span><a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a></span><br><span><a href="https://mail.mozilla.org/listinfo/es-discuss">https://mail.mozilla.org/listinfo/es-discuss</a></span><br></div></blockquote></body></html>