From ec7a41a878927374da95245952e308a606baa0e7 Mon Sep 17 00:00:00 2001 From: Nidhi Jaju Date: Wed, 27 Oct 2021 05:25:11 +0000 Subject: [PATCH 1/9] use abort reason in PipeTo --- index.bs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 3b9129201..99f7f98d5 100644 --- a/index.bs +++ b/index.bs @@ -2101,7 +2101,9 @@ The following abstract operations operate on {{ReadableStream}} instances at a h 1. Let |promise| be [=a new promise=]. 1. If |signal| is not undefined, 1. Let |abortAlgorithm| be the following steps: - 1. Let |error| be a new "{{AbortError}}" {{DOMException}}. + 1. If |signal|'s [=AbortSignal/abort reason=] is not undefined, let |error| be |signal|'s + [=AbortSignal/abort reason=]. + 1. Otherwise, let |error| be a new "{{AbortError}}" {{DOMException}}. 1. Let |actions| be an empty [=ordered set=]. 1. If |preventAbort| is false, [=set/append=] the following action to |actions|: 1. If |dest|.[=WritableStream/[[state]]=] is "`writable`", return ! From 8b2053ca09fbd26c365450f90df84cce476f8db0 Mon Sep 17 00:00:00 2001 From: Nidhi Jaju Date: Wed, 27 Oct 2021 05:33:24 +0000 Subject: [PATCH 2/9] update ref impl --- reference-implementation/lib/abstract-ops/readable-streams.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/reference-implementation/lib/abstract-ops/readable-streams.js b/reference-implementation/lib/abstract-ops/readable-streams.js index 03251e6ee..a5c1e49bd 100644 --- a/reference-implementation/lib/abstract-ops/readable-streams.js +++ b/reference-implementation/lib/abstract-ops/readable-streams.js @@ -146,7 +146,9 @@ function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventC let abortAlgorithm; if (signal !== undefined) { abortAlgorithm = () => { - const error = new DOMException('Aborted', 'AbortError'); + const error = (signal.reason !== undefined) ? + signal.reason : + new DOMException('Aborted', 'AbortError'); const actions = []; if (preventAbort === false) { actions.push(() => { From d2abdfac4d8e90b1e5221f1e991e63401b06b3e3 Mon Sep 17 00:00:00 2001 From: Nidhi Jaju Date: Wed, 27 Oct 2021 08:02:04 +0000 Subject: [PATCH 3/9] pass reason for signal abort --- index.bs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 99f7f98d5..580fc2f32 100644 --- a/index.bs +++ b/index.bs @@ -4520,7 +4520,8 @@ The following abstract operations operate on {{WritableStream}} instances at a h 1. If |stream|.[=WritableStream/[[state]]=] is "`closed`" or "`errored`", return [=a promise resolved with=] undefined. 1. [=Signal abort=] on - |stream|.[=WritableStream/[[controller]]=].[=WritableStreamDefaultController/[[signal]]=]. + |stream|.[=WritableStream/[[controller]]=].[=WritableStreamDefaultController/[[signal]]=] with + |reason|. 1. Let |state| be |stream|.[=WritableStream/[[state]]=]. 1. If |state| is "`closed`" or "`errored`", return [=a promise resolved with=] undefined.

We re-check the state because [=signaling abort=] runs author code and that might From 122b7ffbb975c522e3402a5d3c5601b723493d6d Mon Sep 17 00:00:00 2001 From: Nidhi Jaju Date: Wed, 27 Oct 2021 09:13:26 +0000 Subject: [PATCH 4/9] update ref impl --- reference-implementation/lib/abstract-ops/writable-streams.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-implementation/lib/abstract-ops/writable-streams.js b/reference-implementation/lib/abstract-ops/writable-streams.js index d090165b4..cf303bfe7 100644 --- a/reference-implementation/lib/abstract-ops/writable-streams.js +++ b/reference-implementation/lib/abstract-ops/writable-streams.js @@ -107,7 +107,7 @@ function WritableStreamAbort(stream, reason) { if (stream._state === 'closed' || stream._state === 'errored') { return promiseResolvedWith(undefined); } - stream._controller._abortController.abort(); + stream._controller._abortController.abort(reason); const state = stream._state; if (state === 'closed' || state === 'errored') { return promiseResolvedWith(undefined); From 0f057fc295a204259e5e3eb441695dd38e99db47 Mon Sep 17 00:00:00 2001 From: Nidhi Jaju Date: Wed, 27 Oct 2021 09:59:24 +0000 Subject: [PATCH 5/9] fix formatting --- .../lib/abstract-ops/readable-streams.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference-implementation/lib/abstract-ops/readable-streams.js b/reference-implementation/lib/abstract-ops/readable-streams.js index a5c1e49bd..ca9099509 100644 --- a/reference-implementation/lib/abstract-ops/readable-streams.js +++ b/reference-implementation/lib/abstract-ops/readable-streams.js @@ -146,9 +146,9 @@ function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventC let abortAlgorithm; if (signal !== undefined) { abortAlgorithm = () => { - const error = (signal.reason !== undefined) ? - signal.reason : - new DOMException('Aborted', 'AbortError'); + const error = signal.reason !== undefined ? + signal.reason : + new DOMException('Aborted', 'AbortError'); const actions = []; if (preventAbort === false) { actions.push(() => { From d36baab1c84a7386091bee8e897ddcec294a4397 Mon Sep 17 00:00:00 2001 From: Nidhi Jaju Date: Thu, 28 Oct 2021 07:40:36 +0000 Subject: [PATCH 6/9] remove defaulting logic --- index.bs | 4 +--- reference-implementation/lib/abstract-ops/readable-streams.js | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/index.bs b/index.bs index 580fc2f32..9db21650b 100644 --- a/index.bs +++ b/index.bs @@ -2101,9 +2101,7 @@ The following abstract operations operate on {{ReadableStream}} instances at a h 1. Let |promise| be [=a new promise=]. 1. If |signal| is not undefined, 1. Let |abortAlgorithm| be the following steps: - 1. If |signal|'s [=AbortSignal/abort reason=] is not undefined, let |error| be |signal|'s - [=AbortSignal/abort reason=]. - 1. Otherwise, let |error| be a new "{{AbortError}}" {{DOMException}}. + 1. Let |error| be |signal|'s [=AbortSignal/abort reason=]. 1. Let |actions| be an empty [=ordered set=]. 1. If |preventAbort| is false, [=set/append=] the following action to |actions|: 1. If |dest|.[=WritableStream/[[state]]=] is "`writable`", return ! diff --git a/reference-implementation/lib/abstract-ops/readable-streams.js b/reference-implementation/lib/abstract-ops/readable-streams.js index ca9099509..4186d85d4 100644 --- a/reference-implementation/lib/abstract-ops/readable-streams.js +++ b/reference-implementation/lib/abstract-ops/readable-streams.js @@ -146,9 +146,7 @@ function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventC let abortAlgorithm; if (signal !== undefined) { abortAlgorithm = () => { - const error = signal.reason !== undefined ? - signal.reason : - new DOMException('Aborted', 'AbortError'); + const error = signal.reason; const actions = []; if (preventAbort === false) { actions.push(() => { From 15e4efe2efcb1a655f2de0e036520c88577acd37 Mon Sep 17 00:00:00 2001 From: Nidhi Jaju Date: Mon, 1 Nov 2021 05:22:29 +0000 Subject: [PATCH 7/9] use aborted predicate --- index.bs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.bs b/index.bs index 9db21650b..e96c7fb77 100644 --- a/index.bs +++ b/index.bs @@ -2113,8 +2113,7 @@ The following abstract operations operate on {{ReadableStream}} instances at a h 1. Otherwise, return [=a promise resolved with=] undefined. 1. [=Shutdown with an action=] consisting of [=getting a promise to wait for all=] of the actions in |actions|, and with |error|. - 1. If |signal|'s [=AbortSignal/aborted flag=] is set, perform |abortAlgorithm| and return - |promise|. + 1. If |signal| is [=AbortSignal/aborted=], perform |abortAlgorithm| and return |promise|. 1. [=AbortSignal/Add=] |abortAlgorithm| to |signal|. 1. [=In parallel=] but not really; see #905, using |reader| and From 2bf43f61610ed68a7cac5addbb458144779a171c Mon Sep 17 00:00:00 2001 From: Nidhi Jaju Date: Tue, 9 Nov 2021 09:27:38 +0000 Subject: [PATCH 8/9] update wpt submodule --- reference-implementation/web-platform-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-implementation/web-platform-tests b/reference-implementation/web-platform-tests index 96ca25f0f..4905296d5 160000 --- a/reference-implementation/web-platform-tests +++ b/reference-implementation/web-platform-tests @@ -1 +1 @@ -Subproject commit 96ca25f0f7526282c0d47e6bf6a7edd439da1968 +Subproject commit 4905296d5e2381e2feaadeb7b92a77abe9ebf0f6 From 8bd9267e285eb26f1c39e9236b3f705b96fb4d39 Mon Sep 17 00:00:00 2001 From: Mattias Buelens Date: Sat, 13 Nov 2021 00:43:34 +0100 Subject: [PATCH 9/9] Update wpt-runner --- reference-implementation/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference-implementation/package.json b/reference-implementation/package.json index e2ff0f6fd..e89c27657 100644 --- a/reference-implementation/package.json +++ b/reference-implementation/package.json @@ -19,6 +19,6 @@ "minimatch": "^3.0.4", "opener": "^1.5.1", "webidl2js": "^16.2.0", - "wpt-runner": "^3.2.1" + "wpt-runner": "^4.0.0" } }