errorPropagation_worker.js (1123B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 var seenScopeError; 6 onerror = function (message, filename, lineno) { 7 if (!seenScopeError) { 8 seenScopeError = true; 9 postMessage({ 10 type: "scope", 11 data: { message, filename, lineno }, 12 }); 13 return true; 14 } 15 return undefined; 16 }; 17 18 onmessage = function (event) { 19 var workerId = parseInt(event.data); 20 21 if (workerId > 1) { 22 var worker = new Worker("errorPropagation_worker.js"); 23 24 worker.onmessage = function (msg) { 25 postMessage(msg.data); 26 }; 27 28 var seenWorkerError; 29 worker.onerror = function (error) { 30 if (!seenWorkerError) { 31 seenWorkerError = true; 32 postMessage({ 33 type: "worker", 34 data: { 35 message: error.message, 36 filename: error.filename, 37 lineno: error.lineno, 38 }, 39 }); 40 error.preventDefault(); 41 } 42 }; 43 44 worker.postMessage(workerId - 1); 45 return; 46 } 47 48 var interval = setInterval(function () { 49 throw new Error("expectedError"); 50 }, 100); 51 };