| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="help" href="https://html.spec.whatwg.org/#unhandled-promise-rejections"> |
| <script> |
| 'use strict'; |
| setup({ |
| allow_uncaught_exception: true |
| }); |
| async_test(function(t) { |
| var e = new Error('e'); |
| var p = Promise.reject(e); |
| |
| window.onunhandledrejection = function(evt) { |
| t.step(function() { |
| assert_equals(evt.promise, p); |
| assert_equals(evt.reason, e); |
| }); |
| var unreached = t.unreached_func('promise should not be fulfilled'); |
| p.then(unreached, function(reason) { |
| t.step(function() { |
| assert_equals(reason, e); |
| }); |
| t.step_timeout(function() { t.done(); }, 10); |
| }); |
| }; |
| |
| window.onrejectionhandled = t.unreached_func('rejectionhandled event should not be invoked'); |
| }, 'Attaching a handler in unhandledrejection should not trigger rejectionhandled.'); |
| </script> |