- From: Adam Rice <notifications@github.com>
- Date: Fri, 08 Sep 2017 11:13:46 +0000 (UTC)
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Friday, 8 September 2017 11:14:12 UTC
If I understand correctly, the following test should pass: ```javascript promise_test(() => { let controller; let readPromise; let reader; const rs = new ReadableStream({ start(c) { controller = c; } }, { size() { readPromise = reader.read(); return 1; } }); reader = rs.getReader(); controller.enqueue(); return readPromise; }, 'Readable stream: read() inside strategy size() should resolve'); ``` In practice it times out. I think the reason is that at step 3 of [ReadableStreamDefaultControllerEnqueue](https://streams.spec.whatwg.org/#readable-stream-default-controller-enqueue) it decides that since there isn't a read in process, the chunk should be queued. Then when `read()` is called inside `size()` the chunk isn't queued yet, so the read is queued in [ReadableStreamAddReadRequest](https://streams.spec.whatwg.org/#readable-stream-add-read-request) and remains pending. Probably ReadableStreamDefaultControllerEnqueue should check ReadableStreamGetNumReadRequests a second time. Or maybe this is too weird to fix. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/streams/issues/794
Received on Friday, 8 September 2017 11:14:12 UTC