ladybird/Tests/LibWeb/Text/input/Worker/Worker-postMessage-transfer.html

33 lines
1.1 KiB
HTML
Raw Normal View History

2025-03-18 19:28:35 +01:00
<!DOCTYPE html>
<script src="../include.js"></script>
<script>
asyncTest((done) => {
const workerScript = `
self.onmessage = function(evt) {
const receivedBuffer = evt.data;
self.postMessage(receivedBuffer, [receivedBuffer]);
};
`;
const blob = new Blob([workerScript], { type: 'application/javascript' });
const workerScriptURL = URL.createObjectURL(blob);
const worker = new Worker(workerScriptURL);
worker.onmessage = function(evt) {
const bufTransferredBackFromWorker = evt.data;
const decoder = new TextDecoder();
println('Message received from worker: ' + decoder.decode(bufTransferredBackFromWorker));
done();
};
const encoder = new TextEncoder();
const message = encoder.encode("Hello, world");
const myBuf = message.buffer;
println('Buffer length before transfer: ' + myBuf.byteLength);
worker.postMessage(myBuf, [myBuf]);
println('Buffer length after transfer: ' + myBuf.byteLength);
});
</script>