That was the initial implementation. XHR then sends the complete underlying ArrayBuffer. The only solution is to copy the data in a new Array buffer.