LibWeb: Implement the CompressionStream interface

This commit is contained in:
Timothy Flynn 2024-11-15 11:11:47 -05:00 committed by Andreas Kling
commit 638a8aecad
Notes: github-actions[bot] 2024-11-17 22:21:57 +00:00
10 changed files with 303 additions and 1 deletions

View file

@ -0,0 +1,31 @@
<script src="../include.js"></script>
<script>
asyncTest(async done => {
const text = "Well hello friends!";
for (const format of ["deflate", "deflate-raw", "gzip"]) {
let stream = new Blob([text]).stream();
let compressor = stream.pipeThrough(new CompressionStream(format));
let reader = compressor.getReader();
let buffer = new ArrayBuffer(256);
let offset = 0;
while (true) {
let result = await reader.read();
if (result.done) {
break;
}
new Uint8Array(buffer).set(result.value, offset);
offset += result.value.byteLength;
}
let result = new Uint8Array(buffer, 0, offset).toBase64();
println(`format=${format}: ${result}`);
}
done();
});
</script>