JSFiddle - React, Tailwind, and code Playground

HTML

<script id="js-worker">
onmessage = function(evt) {
    var buffers = evt.data.buffers;
    var count = 0;
    for (var i = 0; i < buffers.length; i++) {
      var array = new Uint8Array(buffers[i]);
      for (var j = 0; j < array.length; j++) {
         array[j] = count++;
      }
    }
    var message = {buffers: buffers};
    console.log(message);
    postMessage(message, buffers);
}
</script>

<button id="post">Post</button>

JavaScript

var blob = new Blob(
    [document.getElementById('js-worker').textContent],
    {type: "text/javascript"});

var url = URL.createObjectURL(blob);

var worker = new Worker(url);

worker.onmessage = function (evt) {
    var buffers = evt.data.buffers;
    console.log(evt);
    alert("Received these buffers,\n" +
        JSON.stringify(buffers.map(function (buffer) {
            return Array.prototype.slice.call(
                new Uint8Array(buffer));
        })));
}

document.getElementById('post').addEventListener('click', function() {
    var buffers = [new ArrayBuffer(8), new ArrayBuffer(16)];
    var message = {buffers: buffers};
    worker.postMessage(message, buffers);
    assert(buffers[0].byteLength == 0);
    assert(buffers[1].byteLength == 0);
});

function assert(cond) { if (!cond) alert("fail!"); }