From 667e8bf3fbfb8596f3b2f11e40963fc71e7a5dd1 Mon Sep 17 00:00:00 2001 From: Daeyeon Jeong Date: Tue, 6 Sep 2022 00:07:11 +0900 Subject: [PATCH] stream: fix `writableStream.abort()` This includes: - Fixing `writableStream.abort(reason)`. Passing the reason was missing. - Leaving a TODO to remove the internal abortReason property of WritableStreamDefaultController. Signed-off-by: Daeyeon Jeong daeyeon.dev@gmail.com PR-URL: https://github.com/nodejs/node/pull/44327 Refs: https://streams.spec.whatwg.org/#writable-stream-abort Reviewed-By: Luigi Pinca Reviewed-By: Matteo Collina Reviewed-By: James M Snell Reviewed-By: Benjamin Gruenbaum --- lib/internal/webstreams/writablestream.js | 5 ++++- test/wpt/status/streams.json | 5 ----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/internal/webstreams/writablestream.js b/lib/internal/webstreams/writablestream.js index 8c25cc33c15f5f..c3cd8db9adb595 100644 --- a/lib/internal/webstreams/writablestream.js +++ b/lib/internal/webstreams/writablestream.js @@ -637,8 +637,11 @@ function writableStreamAbort(stream, reason) { if (state === 'closed' || state === 'errored') return PromiseResolve(); + // TODO(daeyeon): Remove `controller[kState].abortReason` and use + // `controller[kState].abortController.signal.reason` for the + // `WritableStreamDefaultController.prototype.abortReason` getter. controller[kState].abortReason = reason; - controller[kState].abortController.abort(); + controller[kState].abortController.abort(reason); if (stream[kState].pendingAbortRequest.abort.promise !== undefined) return stream[kState].pendingAbortRequest.abort.promise; diff --git a/test/wpt/status/streams.json b/test/wpt/status/streams.json index 6f9a806a33abf1..4aae965b5fa2dc 100644 --- a/test/wpt/status/streams.json +++ b/test/wpt/status/streams.json @@ -80,10 +80,5 @@ }, "transferable/transfer-with-messageport.window.js": { "skip": "Browser-specific test" - }, - "writable-streams/aborting.any.js": { - "fail": { - "expected": ["WritableStreamDefaultController.signal"] - } } }