The bl module in Node.js-land is handy because it provides a way to handle sequences of buffers as if they were a single buffer. It would be helpful to have this at the language level, and be able to use sequences of ArrayBuffers wherever ArrayBuffers are currently usable. This would prevent not-necessarily-needed copy operations, hopefully speeding up some classes of programs that do a lot of data processing.
I've sketched this out a bit here, introducing a class called ArrayBufferList, usable wherever ArrayBuffers are usable today. I also mentioned some alternative approaches.
You're conflating iteration with random access. Efficient iteration of a chain of iterables is pretty common.
Besides, my hunch is that the target use case is more like a queue. You append incoming data to the end of the list, while consuming from the head of the list. Joining incoming chunks for that sounds like unnecessary overhead.
You're conflating iteration with random access. Efficient iteration of a chain of iterables is pretty common.
Iteration's fine, and if that's all you're supporting, that's fine. I thought you were going further than that with the "use wherever ArrayBuffers are needed". Allowing things like new Uint8Array(arrayBufferList) would slow down even current code as you'd need to do a type check just to amortize the added cost of the new feature (which would require a C array iteration for every random access). But if you created a new type that only allows iteration, that could work.