<div dir="ltr">This is easily done in userland, is there a strong justification for new syntax for it?<div><br></div><div>Quick example (<a href="https://jsfiddle.net/Ljm9gcmo/">https://jsfiddle.net/Ljm9gcmo/</a>):</div><div><br></div><div>```js</div><div><div><font face="monospace, monospace">// Accessor</font></div><div><font face="monospace, monospace">const entryAccessor = (array, index) => {</font></div><div><font face="monospace, monospace"><span style="white-space:pre">    </span>return {</font></div><div><font face="monospace, monospace"><span style="white-space:pre">    </span><span style="white-space:pre">    </span>get value()  { return array[index]; },</font></div><div><font face="monospace, monospace"><span style="white-space:pre">    </span><span style="white-space:pre">    </span>set value(x) { array[index] = x; }</font></div><div><font face="monospace, monospace"><span style="white-space:pre">    </span>}</font></div><div><font face="monospace, monospace">};</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">// Example usage</font></div><div><font face="monospace, monospace">const a = ["a", "b", "c"];</font></div><div><font face="monospace, monospace">const e = entryAccessor(a, 0);</font></div><div><font face="monospace, monospace">console.log(e.value); // "a"</font></div><div><font face="monospace, monospace">e.value = "A";</font></div><div><font face="monospace, monospace">console.log(e.value); // "A"</font></div></div><div>```</div><div><br></div><div>If you wanted and don't object to modifying built-in prototypes, you could even put something on `Array.prototype` for it (non-enumerable, of course).</div><div><br></div><div>-- T.J. Crowder</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div><b style="font-weight:normal"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><b style="line-height:normal;font-weight:normal"></b></p></b></div></div></div></div></div></div></div></div></div><br><div class="gmail_quote">On Fri, Jun 2, 2017 at 5:06 PM, Alex Falcon <span dir="ltr"><<a href="mailto:capitalknew@gmail.com" target="_blank">capitalknew@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">Hello. I heard about SIMD, Atomics, etc. and they accept as first arguments "array, index", so because ES6 have spreads, I suggest to make next things: <div><br></div><div>let array = [0, 2, 3];</div><div>let ptr = array{0}; // don't get value, but pair of [array, 0], also this is proxied which you have setter and getter "value"</div><div>let ptr = array.ptr(0); // alternate, functional </div><div><br></div><div>ptr.value = 1; // setter</div><div>let acceptance = ptr.value; // getter</div><div><br></div><div>// also you can just use these pointers without extra indexing</div><div>let idx = Atomics.add(...ptr, 1);</div><div><br></div><div>It should available for both: typed and regular arrays. </div><div><br></div></div>
<br>______________________________<wbr>_________________<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" rel="noreferrer" target="_blank">https://mail.mozilla.org/<wbr>listinfo/es-discuss</a><br>
<br></blockquote></div><br></div></div>