michael@0: /** michael@0: * Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ michael@0: */ michael@0: michael@0: function errorHandler() { michael@0: postMessage({ type: 'error' }); michael@0: } michael@0: michael@0: onmessage = function(event) { michael@0: if (event.data.errors) { michael@0: try { michael@0: // This is an error: michael@0: postMessage({ type: 'ignore', value: b.aaa }); michael@0: } catch(e) { michael@0: errorHandler(); michael@0: } michael@0: } else { michael@0: var a = {}; michael@0: // This is a warning: michael@0: postMessage({ type: 'ignore', value: a.foo }); michael@0: } michael@0: michael@0: if (event.data.loop != 0) { michael@0: var worker = new Worker('errorwarning_worker.js'); michael@0: worker.onerror = errorHandler; michael@0: worker.postMessage({ loop: event.data.loop - 1, errors: event.data.errors }); michael@0: michael@0: worker.onmessage = function(e) { michael@0: postMessage(e.data); michael@0: } michael@0: michael@0: } else { michael@0: postMessage({ type: 'finish' }); michael@0: } michael@0: } michael@0: michael@0: onerror = errorHandler; michael@0: onerror = onerror; michael@0: if (!onerror || onerror != onerror) { michael@0: throw "onerror wasn't set properly"; michael@0: }