reporterror.any.js (1281B)
1 setup({ allow_uncaught_exception:true }); 2 3 [ 4 1, 5 new TypeError(), 6 undefined 7 ].forEach(throwable => { 8 test(t => { 9 let happened = false; 10 self.addEventListener("error", t.step_func(e => { 11 assert_true(e.message !== ""); 12 assert_equals(e.filename, new URL("reporterror.any.js", location.href).href); 13 assert_greater_than(e.lineno, 0); 14 assert_greater_than(e.colno, 0); 15 assert_equals(e.error, throwable); 16 happened = true; 17 }), { once:true }); 18 self.reportError(throwable); 19 assert_true(happened); 20 }, `self.reportError(${throwable})`); 21 }); 22 23 test(() => { 24 assert_throws_js(TypeError, () => self.reportError()); 25 }, `self.reportError() (without arguments) throws`); 26 27 test(() => { 28 // Workaround for https://github.com/web-platform-tests/wpt/issues/32105 29 let invoked = false; 30 self.reportError({ 31 get name() { 32 invoked = true; 33 assert_unreached('get name') 34 }, 35 get message() { 36 invoked = true; 37 assert_unreached('get message'); 38 }, 39 get fileName() { 40 invoked = true; 41 assert_unreached('get fileName'); 42 }, 43 get lineNumber() { 44 invoked = true; 45 assert_unreached('get lineNumber'); 46 } 47 }); 48 assert_false(invoked); 49 }, `self.reportError() doesn't invoke getters`);