thrown-error-in-events.html (1304B)
1 <!DOCTYPE html> 2 <title>Errors thrown in XMLHttpRequest events get to window.onerror</title> 3 <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> 4 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 8 <script> 9 "use strict"; 10 11 setup({ allow_uncaught_exception: true }); 12 13 promise_test(() => { 14 const error = new Error("oh no!"); 15 let resolve; 16 17 window.addEventListener("error", event => { 18 assert_equals(event.error, error); 19 resolve(); 20 }); 21 22 const xhr = new window.XMLHttpRequest(); 23 24 xhr.addEventListener("load", () => { 25 throw error; 26 }); 27 28 xhr.open("GET", location.href); 29 xhr.send(); 30 31 return new Promise(r => { 32 resolve = r; 33 }); 34 35 }, "errors thrown in XMLHttpRequest's load event (using addEventListener) goes to window.onerror"); 36 37 promise_test(() => { 38 const error = new Error("oh no 2!"); 39 let resolve; 40 41 window.addEventListener("error", event => { 42 assert_equals(event.error, error); 43 resolve(); 44 }); 45 46 const xhr = new window.XMLHttpRequest(); 47 48 xhr.onload = () => { 49 throw error; 50 }; 51 52 xhr.open("GET", location.href); 53 xhr.send(); 54 55 return new Promise(r => { 56 resolve = r; 57 }); 58 59 }, "errors thrown in XMLHttpRequest's load event (using onload) goes to window.onerror"); 60 </script>