Array pointer getter?

T.J. Crowder tj.crowder at farsightsoftware.com
Fri Jun 2 18:50:14 UTC 2017


This is easily done in userland, is there a strong justification for new
syntax for it?

Quick example (https://jsfiddle.net/Ljm9gcmo/):

```js
// Accessor
const entryAccessor = (array, index) => {
  return {
    get value()  { return array[index]; },
    set value(x) { array[index] = x; }
  }
};

// Example usage
const a = ["a", "b", "c"];
const e = entryAccessor(a, 0);
console.log(e.value); // "a"
e.value = "A";
console.log(e.value); // "A"
```

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).

-- T.J. Crowder


On Fri, Jun 2, 2017 at 5:06 PM, Alex Falcon <capitalknew at gmail.com> wrote:

> 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:
>
> let array = [0, 2, 3];
> let ptr = array{0}; // don't get value, but pair of [array, 0], also this
> is proxied which you have setter and getter "value"
> let ptr = array.ptr(0); // alternate, functional
>
> ptr.value = 1; // setter
> let acceptance = ptr.value; // getter
>
> // also you can just use these pointers without extra indexing
> let idx = Atomics.add(...ptr, 1);
>
> It should available for both: typed and regular arrays.
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170602/0d15d556/attachment.html>


More information about the es-discuss mailing list