From d9f9fc975beb9d5d8fe83f6ed2a084c36846522b Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Fri, 2 Dec 2022 20:15:50 -0800 Subject: Propagate reason in AbortSignal and reuse in ReadableStream.pipeTo Similar to https://github.com/WebKit/WebKit/pull/7013 --- src/bun.js/builtins/js/ReadableStreamInternals.js | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src/bun.js/builtins/js/ReadableStreamInternals.js') diff --git a/src/bun.js/builtins/js/ReadableStreamInternals.js b/src/bun.js/builtins/js/ReadableStreamInternals.js index 15042baa5..f317eeaec 100644 --- a/src/bun.js/builtins/js/ReadableStreamInternals.js +++ b/src/bun.js/builtins/js/ReadableStreamInternals.js @@ -304,14 +304,9 @@ function readableStreamPipeToWritableStream( pipeState.pendingWritePromise = @Promise.@resolve(); if (signal !== @undefined) { - const algorithm = () => { + const algorithm = (reason) => { if (pipeState.finalized) return; - const error = @makeDOMException( - "AbortError", - "abort pipeTo from signal" - ); - @pipeToShutdownWithAction( pipeState, () => { @@ -320,7 +315,7 @@ function readableStreamPipeToWritableStream( @getByIdDirectPrivate(pipeState.destination, "state") === "writable"; const promiseDestination = shouldAbortDestination - ? @writableStreamAbort(pipeState.destination, error) + ? @writableStreamAbort(pipeState.destination, reason) : @Promise.@resolve(); const shouldAbortSource = @@ -328,7 +323,7 @@ function readableStreamPipeToWritableStream( @getByIdDirectPrivate(pipeState.source, "state") === @streamReadable; const promiseSource = shouldAbortSource - ? @readableStreamCancel(pipeState.source, error) + ? @readableStreamCancel(pipeState.source, reason) : @Promise.@resolve(); let promiseCapability = @newPromiseCapability(@Promise); @@ -350,7 +345,7 @@ function readableStreamPipeToWritableStream( promiseSource.@then(handleResolvedPromise, handleRejectedPromise); return promiseCapability.@promise; }, - error + reason ); }; if (@whenSignalAborted(signal, algorithm)) -- cgit v1.2.3