// META: global=window,worker promise_test(async () => { const stream = new ReadableStream({ start(controller) { controller.enqueue(new TextEncoder().encode("hello")); controller.close(); } }); const r1 = new Request("https://example.com/", { method: "POST", body: stream, duplex: "half" }); const r2 = r1.clone(); assert_false(r2.bodyUsed, "clone should not be marked as used"); assert_not_equals(r2.body, null, "clone should have a body"); // Constructing a new Request from the clone should preserve the body. const r3 = new Request(r2); assert_not_equals(r3.body, null, "Request constructed from clone should have a body"); const text = await r3.text(); assert_equals(text, "hello", "body content should be preserved through clone() and new Request()"); }, "new Request(clone) preserves a ReadableStream body that came from clone()");