Proxyable TypedArray

森建 moriken at kimamass.com
Sat Apr 29 14:24:45 UTC 2017


I got the solution, but it's puzzled.

```js
const uint8 = new Uint8Array([1, 2, 3, 4]);

const proxy = new Proxy(uint8, {
     get(target, property) {
         const ret = Reflect.get(target, property);
         return typeof ret === "function" ? ret.bind(target) : ret;
     }
});

proxy.map(e => e + 1); // -> Uint8Array [2, 3, 4, 5]

for(const val of proxy) {
     console.log(val); // -> 1, 2, 3, 4
}
```

On 2017/04/29 22:27, 森建 wrote:
> Hi there!
>
> Proxy of TypedArray doesn't have [[TypedArrayName]] and
> [[ViewedArrayBuffer]] slots. so maybe, [22.2.3.5.1
> ValidateTypedArray](http://www.ecma-international.org/ecma-262/7.0/#sec-validatetypedarray)
> throws TypeError like following code.
>
> ```js
> const uint8 = new Uint8Array([1, 2, 3, 4]);
>
> const proxy = new Proxy(uint8, {});
>
> proxy.map(e => e + 1); // -> TypeError
>
> for(const val of proxy) {
>   console.log(val); // -> TypeError
> }
> ```
>
> Is this behavior taken into account?
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss


More information about the es-discuss mailing list