From fdc98b7e4bc26f6d570c6ee15697189a258be292 Mon Sep 17 00:00:00 2001
From: arimu1 <19286898+arimu1@users.noreply.github.com>
Date: Sat, 25 Jul 2026 09:19:23 +0700
Subject: [PATCH] fix(net): convert js_value stream chunks for fetch POST
bodies
JS controller.enqueue stores chunks as .js_value via enqueueValue, so
collectBodyBytes must extract TypedArray/ArrayBuffer/string bytes with
local scope and arena.dupe before buffering. Add multi-chunk success and
open/locked reject fixtures in fetch.html.
---
src/browser/tests/net/fetch.html | 42 ++++++++++++++++++-
src/browser/webapi/streams/ReadableStream.zig | 23 +++++++++-
2 files changed, 62 insertions(+), 3 deletions(-)
diff --git a/src/browser/tests/net/fetch.html b/src/browser/tests/net/fetch.html
index c41dd8133..218051d27 100644
--- a/src/browser/tests/net/fetch.html
+++ b/src/browser/tests/net/fetch.html
@@ -352,9 +352,11 @@
{
const state = await testing.async();
const payload = "name=Streamed&count=9";
+ const enc = new TextEncoder();
const stream = new ReadableStream({
start(controller) {
- controller.enqueue(new TextEncoder().encode(payload));
+ controller.enqueue(enc.encode("name=Streamed&"));
+ controller.enqueue(enc.encode("count=9"));
controller.close();
},
});
@@ -375,6 +377,44 @@
}
+
+