@@ -715,10 +715,21 @@ Body::ExtractedBody Body::extractBody(jsg::Lock& js, Initializer init) {
715715 }
716716 }
717717
718- auto bodyStream = kj::heap<BodyBufferInputStream>( buffer.clone (js) );
718+ auto buf = buffer.clone (js);
719719
720- return {js.alloc <ReadableStream>(IoContext::current (), kj::mv (bodyStream)), kj::mv (buffer),
721- kj::mv (contentType)};
720+ if (util::Autogate::isEnabled (util::AutogateKey::BODY_BUFFER_INPUT_STREAM_REPLACEMENT)) {
721+ auto memStream = newMemoryInputStream (buf.view , kj::heap (kj::mv (buf.ownBytes )));
722+ auto rs = newSystemStream (kj::mv (memStream), StreamEncoding::IDENTITY);
723+
724+ return {js.alloc <ReadableStream>(IoContext::current (), kj::mv (rs)), kj::mv (buffer),
725+ kj::mv (contentType)};
726+ } else {
727+ // TODO(cleanup): Remove once the Autogate is removed.
728+ auto bodyStream = kj::heap<BodyBufferInputStream>(kj::mv (buf));
729+
730+ return {js.alloc <ReadableStream>(IoContext::current (), kj::mv (bodyStream)), kj::mv (buffer),
731+ kj::mv (contentType)};
732+ }
722733}
723734
724735Body::Body (jsg::Lock& js, kj::Maybe<ExtractedBody> init, Headers& headers)
@@ -765,8 +776,15 @@ void Body::rewindBody(jsg::Lock& js) {
765776
766777 KJ_IF_SOME (i, impl) {
767778 auto bufferCopy = KJ_ASSERT_NONNULL (i.buffer ).clone (js);
768- auto bodyStream = kj::heap<BodyBufferInputStream>(kj::mv (bufferCopy));
769- i.stream = js.alloc <ReadableStream>(IoContext::current (), kj::mv (bodyStream));
779+ if (util::Autogate::isEnabled (util::AutogateKey::BODY_BUFFER_INPUT_STREAM_REPLACEMENT)) {
780+ auto memStream = newMemoryInputStream (bufferCopy.view , kj::heap (kj::mv (bufferCopy.ownBytes )));
781+ auto rs = newSystemStream (kj::mv (memStream), StreamEncoding::IDENTITY);
782+ i.stream = js.alloc <ReadableStream>(IoContext::current (), kj::mv (rs));
783+ } else {
784+ // TODO(cleanup): Remove once the Autogate is removed.
785+ auto bodyStream = kj::heap<BodyBufferInputStream>(kj::mv (bufferCopy));
786+ i.stream = js.alloc <ReadableStream>(IoContext::current (), kj::mv (bodyStream));
787+ }
770788 }
771789}
772790
0 commit comments