aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/builtins/js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-19 23:05:03 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-19 23:05:03 -0800
commitc68b11e8cbf493723d0b2e029fe6e10d1fe7e83d (patch)
treee27ed2898fa4153a04871213b5f60bc34a2fbe23 /src/bun.js/builtins/js
parent16d20bde092b622a690e7a4bdea4b2c46b58fbaa (diff)
downloadbun-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')
-rw-r--r--src/bun.js/builtins/js/ReadableStreamDefaultReader.js17
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++) {