1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 23:47:45 +00:00

LibWeb: Implement ReadableStreamBYOBReader::read

Similiarly to the underlying AO's, currently only TypedArrays are
supported.
This commit is contained in:
Shannon Booth 2023-11-19 12:44:42 +13:00 committed by Andreas Kling
parent dcb7bb4a92
commit 1daded768d
5 changed files with 138 additions and 1 deletions

View file

@ -0,0 +1,31 @@
<script src="../include.js"></script>
<script>
asyncTest(async done => {
const array = ['This is some data to be read! 🦬'];
let blob = new Blob(array);
const stream = blob.stream();
const reader = stream.getReader({ mode: "byob" });
let buffer = new ArrayBuffer(200);
let bytesReceived = 0;
let offset = 0;
println(`About to read! ${reader}`);
while (true) {
let result = await reader.read(new Uint8Array(buffer, offset, buffer.byteLength - offset));
if (result.done) {
println(`Total bytes: ${bytesReceived}`);
println(`'${new TextDecoder().decode(result.value.buffer.slice(0, bytesReceived))}'`);
done();
return;
}
buffer = result.value.buffer;
offset += result.value.byteLength;
bytesReceived += result.value.byteLength;
}
});
</script>