From 9e576dff7c39cfd510c60ba92aa0d1c15fd24a6b Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Fri, 19 Aug 2022 15:54:40 +0530 Subject: perf(runtime): optimize Deno.file open & stream (#15496) --- ext/web/06_streams.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'ext') diff --git a/ext/web/06_streams.js b/ext/web/06_streams.js index 1b753572b..bd1714964 100644 --- a/ext/web/06_streams.js +++ b/ext/web/06_streams.js @@ -658,7 +658,9 @@ * @returns {ReadableStream} */ function readableStreamForRid(rid, unrefCallback) { - const stream = new ReadableStream({ + const stream = webidl.createBranded(ReadableStream); + stream[_maybeRid] = rid; + const underlyingSource = { type: "bytes", async pull(controller) { const v = controller.byobRequest.view; @@ -685,9 +687,15 @@ core.tryClose(rid); }, autoAllocateChunkSize: DEFAULT_CHUNK_SIZE, - }); + }; + initializeReadableStream(stream); + setUpReadableByteStreamControllerFromUnderlyingSource( + stream, + underlyingSource, + underlyingSource, + 0, + ); - stream[_maybeRid] = rid; return stream; } @@ -714,7 +722,6 @@ } return true; } - /** * @template T * @param {{ [_queue]: Array>, [_queueTotalSize]: number }} container -- cgit v1.2.3