Index: LayoutTests/fast/dom/promise-rejection-events-onerror.html |
diff --git a/LayoutTests/fast/dom/promise-rejection-events-onerror.html b/LayoutTests/fast/dom/promise-rejection-events-onerror.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..43c17e5ef511a1ad867b94c9bf0d6e78cd9f6416 |
--- /dev/null |
+++ b/LayoutTests/fast/dom/promise-rejection-events-onerror.html |
@@ -0,0 +1,32 @@ |
+<!DOCTYPE html> |
+<meta charset="utf-8"> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+<script> |
+'use strict'; |
+setup({ |
+ allow_uncaught_exception: true |
+}); |
+async_test(function(t) { |
+ var e = new Error('e'); |
+ var e2 = new Error('e2'); |
+ window.onerror = function (msg, url, line, col, error) { |
+ t.step(function() { |
+ assert_equals(msg, 'Uncaught Error: e2'); |
+ assert_equals(error, e2); |
+ }); |
+ t.done(); |
+ }; |
+ window.onrejectionhandled = function() { |
+ throw e2; |
+ }; |
+ var p = Promise.reject(e); |
+ setTimeout(function() { |
+ try { |
+ p.catch(function() {}); |
+ } catch (e) { |
+ assert_unreached('attaching a handler should not throw an error'); |
+ } |
+ }, 1); |
+}, 'Throwing inside an unhandledrejection handler invokes the error handler.'); |
+</script> |