JSFiddle - React, Tailwind, and code Playground

HTML

An alert should show up.
<br>
See <a href="http://stackoverflow.com/a/10372280/938089">How to create a Web Worker from a string</a>

JavaScript

var goodWorker = webwork(function (data) {
    return "!!" + data  + "!!";
});
var badWorker = webwork(function (data) {
    return "!!" + data + imNotDefined + "!!";
});

goodWorker("Test123", function(err, result) {
    if (err) return alert("goodWorker Errored with " + err.message);
    alert("first goodWorker returned with " + result);
});
goodWorker("Test123", function(err, result) {
    if (err) return alert("goodWorker Errored with " + err.message);
    alert("second goodWorker returned with " + result);
});
badWorker("Test456", function(err, result) {
    if (err) return alert("badWorker Errored with " + err.message);
    alert("badWorker returned with " + result);
});
alert("Since webworkers are async this should happen first.\nThe callbacks may fire in any order");

function webwork(callback) {
    // URL.createObjectURL
    window.URL = window.URL || window.webkitURL;
    
    // "Server response", used in all examples
    var response = "onmessage=function(event){postMessage(" + callback + "(event.data));}";
    
    var blob;
    try {
        blob = new Blob([response], {type: 'application/javascript'});
    } catch (e) { // Backwards-compatibility
        window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
        blob = new BlobBuilder();
        blob.append(response);
        blob = blob.getBlob();
    }
    return function() {
        var worker = new Worker(URL.createObjectURL(blob));
        var args = Array.prototype.slice.call(arguments);
        var callback
        var ran;
        if (typeof args[args.length - 1] === 'function') {
            callback = args.pop();
        } else {
            callback = function() {};
        }
    
        worker.onmessage = function(e) {
            if (ran) { return; }
            ran = true;
            callback(null, e.data);
        };
        worker.onerror = function(e) {
            if (ran) { return; }
            ran = true;
               
           ...