evaluation-error-1.html (1284B)
1 <!DOCTYPE html> 2 <title>Handling of evaluation errors, 1</title> 3 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script> 7 setup({allow_uncaught_exception: true}); 8 9 window.log = []; 10 11 window.addEventListener("error", ev => log.push(ev.error)); 12 window.addEventListener("unhandledrejection", unreachable); 13 14 const test_load = async_test( 15 "Test that exceptions during evaluation lead to error events on " + 16 "window, and that exceptions are remembered.\n"); 17 window.addEventListener("load", test_load.step_func_done(ev => { 18 const exn = log[1]; 19 assert_array_equals(log, 20 ["throw", exn, "load", exn, "load", exn, "load", exn, "load"]); 21 assert_true(exn.foo); 22 })); 23 24 function logLoad() { log.push("load") } 25 26 function unreachable() { log.push("unexpected"); } 27 </script> 28 <script type="module" src="throw.js" onerror="unreachable()" 29 onload="logLoad()"></script> 30 <script type="module" src="throw.js" onerror="unreachable()" 31 onload="logLoad()"></script> 32 <script type="module" src="throw.js" async onerror="unreachable()" 33 onload="logLoad()"></script> 34 <script type="module" src="throw.js" nomodule onerror="unreachable()" 35 onload="logLoad()"></script>