(stream, reason)
| 2144 | } |
| 2145 | |
| 2146 | function readableStreamCancel(stream, reason) { |
| 2147 | stream[kState].disturbed = true; |
| 2148 | switch (stream[kState].state) { |
| 2149 | case 'closed': |
| 2150 | return PromiseResolve(); |
| 2151 | case 'errored': |
| 2152 | return PromiseReject(stream[kState].storedError); |
| 2153 | } |
| 2154 | readableStreamClose(stream); |
| 2155 | const { |
| 2156 | reader, |
| 2157 | } = stream[kState]; |
| 2158 | if (reader !== undefined && readableStreamHasBYOBReader(stream)) { |
| 2159 | for (let n = 0; n < reader[kState].readIntoRequests.length; n++) |
| 2160 | reader[kState].readIntoRequests[n][kClose](); |
| 2161 | reader[kState].readIntoRequests = []; |
| 2162 | } |
| 2163 | |
| 2164 | return PromisePrototypeThen( |
| 2165 | stream[kState].controller[kCancel](reason), |
| 2166 | () => {}); |
| 2167 | } |
| 2168 | |
| 2169 | function readableStreamClose(stream) { |
| 2170 | assert(stream[kState].state === 'readable'); |
no test coverage detected
searching dependent graphs…