| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| 'use strict'; |
| async_test(function(t) { |
| var e; |
| var p = Promise.reject(new Error()); |
| |
| window.onunhandledrejection = function(evt) { |
| e = evt; |
| setTimeout(function() { |
| var unreached = t.unreached_func('promise should not be fulfilled'); |
| p.then(unreached, function(reason) {}); |
| p = undefined; |
| }, 10); |
| evt.preventDefault(); |
| }; |
| |
| window.onrejectionhandled = function(evt) { |
| setTimeout(function() { |
| if (window.gc) { |
| gc(); |
| } |
| t.step(function() { |
| assert_not_equals(e.reason, null); |
| assert_not_equals(e.promise, null); |
| }); |
| t.done(); |
| }, 10); |
| }; |
| }, 'evt.promise and evt.reason should live at least as long as evt'); |
| </script> |