00:26
<Mathieu Hofman>
You can't refactor to use the following shape? ``` shared struct NodeArray { pos = -1; end = -1; array; constructor(length) { this.array = new SharedArray(length); } } ```
01:16
<rbuckton>
Preferably, no. That would be a major breaking API change so it is certainly not "incremental"
01:18
<rbuckton>
There is just far too much tooling that utilizes the TS language service API that would be broken by that change and need to be updated. That's a lot of churn we'd like to avoid and would be a major adoption blocker for us.
01:21
<Mathieu Hofman>
Ah yeah that makes sense. Making SharedArray extensible makes sense. At the end of the day, it seems like a "normal" shared struct, just with integer properties defined at construction, and a currently inexplicable non-writable length property
01:22
<rbuckton>
Proxy+WeakMap isn't a great solution, but it would allow us to incrementally adopt. LS API features would go through the proxy and be slower.
01:28
<rbuckton>

just with integer properties defined at construction

I've often wished JS had actual numeric indexers rather than exotic array objects.