errorPropagation_iframe.html (1375B)
1 <!-- 2 Any copyright is dedicated to the Public Domain. 3 http://creativecommons.org/publicdomain/zero/1.0/ 4 --> 5 <!DOCTYPE HTML> 6 <html> 7 <meta charset="utf-8"> 8 <body> 9 <script type="text/javascript"> 10 var worker; 11 12 function start(workerCount, messageCallback) { 13 var seenWindowError; 14 window.onerror = function(message, filename, lineno) { 15 if (!seenWindowError) { 16 seenWindowError = true; 17 messageCallback({ 18 type: "window", 19 data: { message, filename, lineno } 20 }); 21 return true; 22 } 23 return undefined; 24 }; 25 26 worker = new Worker("errorPropagation_worker.js"); 27 28 worker.onmessage = function(event) { 29 messageCallback(event.data); 30 }; 31 32 var seenWorkerError; 33 worker.onerror = function(event) { 34 if (!seenWorkerError) { 35 seenWorkerError = true; 36 messageCallback({ 37 type: "worker", 38 data: { 39 message: event.message, 40 filename: event.filename, 41 lineno: event.lineno 42 } 43 }); 44 event.preventDefault(); 45 } 46 }; 47 48 worker.postMessage(workerCount); 49 } 50 51 function stop() { 52 worker.terminate(); 53 } 54 </script> 55 </body> 56 </html>