| 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> |
I've often wished JS had actual numeric indexers rather than exotic array objects. |