(stream, reason)
| 2366 | } |
| 2367 | } |
| 2368 | function WritableStreamAbort(stream, reason) { |
| 2369 | let state = stream.state; |
| 2370 | if ((state == "closed") || (state == "errored")) { |
| 2371 | return Promise.resolve(undefined); |
| 2372 | } |
| 2373 | stream.controller.abortController.abort(reason); |
| 2374 | state = stream.state; |
| 2375 | if ((state == "closed") || (state == "errored")) { |
| 2376 | return Promise.resolve(undefined); |
| 2377 | } |
| 2378 | if (stream.pendingAbortRequest !== undefined) |
| 2379 | return stream.pendingAbortRequest.promise; |
| 2380 | assert((state == "writable") || (state == "erroring")); |
| 2381 | let wasAlreadyErroring = false; |
| 2382 | if (state == "erroring") { |
| 2383 | wasAlreadyErroring = true; |
| 2384 | reason = undefined; |
| 2385 | } |
| 2386 | let pendingAbortRequest = createPromise(); |
| 2387 | pendingAbortRequest.reason = reason; |
| 2388 | pendingAbortRequest.wasAlreadyErroring = wasAlreadyErroring; |
| 2389 | stream.pendingAbortRequest = pendingAbortRequest |
| 2390 | if (wasAlreadyErroring === false) |
| 2391 | WritableStreamStartErroring(stream, reason); |
| 2392 | return pendingAbortRequest.promise; |
| 2393 | } |
| 2394 | function WritableStreamClose(stream) { |
| 2395 | let state = stream.state; |
| 2396 | if ((state == "closed") || (state == "errored")) |
no test coverage detected