- From: Mattias Buelens <notifications@github.com>
- Date: Wed, 21 Apr 2021 14:54:52 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Wednesday, 21 April 2021 21:55:06 UTC
Hmm, `enqueue()` also invalidates the BYOB request but doesn't always detach the previous request's buffer either. ```javascript reader.read(new Uint32Array(1)); const byobRequest1 = controller.byobRequest; const view1 = byobRequest1.view; controller.enqueue(new Uint8Array([0x01])); view1[0] === 0x01; ``` Maybe this was intentional? Should the underlying byte stream be able to continue using the old view as long as we haven't committed the pull-into descriptor? 🤔 --- One thing that we definitely *should* fix, is actually transferring the request's buffer when we commit the pull-into descriptor. Right now, we aren't actually doing that when using `enqueue()`... oops! 😅 ```javascript let byobView; const rs = new ReadableStream({ type: 'bytes', pull(controller) { byobView = controller.byobRequest.view; controller.enqueue(new Uint8Array([0x01])); } }) const reader = rs.getReader({ mode: 'byob' }); const { done, value } = await reader.read(new Uint8Array(1)); value[0] === 0x01; byobView.buffer === value.buffer; // true... oops, forgot to transfer! ``` -- 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/pull/1123#issuecomment-824383678
Received on Wednesday, 21 April 2021 21:55:06 UTC