diff options
author | 2022-11-19 23:05:03 -0800 | |
---|---|---|
committer | 2022-11-19 23:05:03 -0800 | |
commit | c68b11e8cbf493723d0b2e029fe6e10d1fe7e83d (patch) | |
tree | e27ed2898fa4153a04871213b5f60bc34a2fbe23 /src/bun.js/builtins/js/ReadableStreamDefaultReader.js | |
parent | 16d20bde092b622a690e7a4bdea4b2c46b58fbaa (diff) | |
download | bun-c68b11e8cbf493723d0b2e029fe6e10d1fe7e83d.tar.gz bun-c68b11e8cbf493723d0b2e029fe6e10d1fe7e83d.tar.zst bun-c68b11e8cbf493723d0b2e029fe6e10d1fe7e83d.zip |
[streams] Fix exception in streams with 1 item that sometimes occurred
Diffstat (limited to 'src/bun.js/builtins/js/ReadableStreamDefaultReader.js')
-rw-r--r-- | src/bun.js/builtins/js/ReadableStreamDefaultReader.js | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/bun.js/builtins/js/ReadableStreamDefaultReader.js b/src/bun.js/builtins/js/ReadableStreamDefaultReader.js index 9430a1037..4671f1458 100644 --- a/src/bun.js/builtins/js/ReadableStreamDefaultReader.js +++ b/src/bun.js/builtins/js/ReadableStreamDefaultReader.js @@ -96,12 +96,25 @@ function readMany() if (length > 0) { var outValues = @newArrayWithSize(length); if (@isReadableByteStreamController(controller)) { - for (var i = 0; i < length; i++) { + + { + const buf = values[0]; + if (!(@ArrayBuffer.@isView(buf) || buf instanceof @ArrayBuffer)) { + @putByValDirect(outValues, 0, new @Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)); + } else { + @putByValDirect(outValues, 0, buf); + } + } + + for (var i = 1; i < length; i++) { const buf = values[i]; if (!(@ArrayBuffer.@isView(buf) || buf instanceof @ArrayBuffer)) { - @putByValDirect(outValues, i, @Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)); + @putByValDirect(outValues, i, new @Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)); + } else { + @putByValDirect(outValues, i, buf); } } + } else { @putByValDirect(outValues, 0, values[0].value); for (var i = 1; i < length; i++) { |