onconnect = function(event) { event.ports[0].onmessage = function(evt) { handleMessage(evt, event.ports[0]); }; }; function handleMessage(event, port) { if (event.data == "unhandledError") { // Generate an unhandled error. onerror = null; setTimeout(function() { port.postMessage("SUCCESS: unhandled error generated"); }, 100); generateError(); // Undefined function call } else if (event.data == "handledError") { onerror = function() { port.postMessage("SUCCESS: error handled via onerror"); return true; }; generateError(); // Undefined function call } else { port.postMessage("FAIL: Got unexpected message: " + event.data); } };