| CONSOLE ERROR: line 15: Uncaught (in promise) Error |
| CONSOLE ERROR: line 24: Uncaught (in promise) Error |
| CONSOLE ERROR: line 541: Uncaught (in promise) Error |
| CONSOLE ERROR: line 560: Uncaught (in promise) Error |
| CONSOLE ERROR: line 577: Uncaught (in promise) Error |
| CONSOLE ERROR: line 600: Uncaught (in promise) Error |
| CONSOLE ERROR: line 625: Uncaught (in promise) Error |
| CONSOLE ERROR: line 667: Uncaught (in promise) Error |
| CONSOLE ERROR: line 2717: Uncaught TypeError: Cannot read property 'error' of undefined |
| CONSOLE ERROR: line 700: Uncaught (in promise) undefined |
| CONSOLE ERROR: line 2717: Uncaught TypeError: Cannot read property 'error' of undefined |
| CONSOLE ERROR: line 767: Uncaught (in promise) undefined |
| CONSOLE ERROR: line 62: Uncaught (in promise) Error |
| CONSOLE ERROR: line 120: Uncaught (in promise) Error |
| CONSOLE ERROR: line 131: Uncaught (in promise) Error |
| CONSOLE ERROR: line 157: Uncaught (in promise) Error |
| CONSOLE ERROR: line 35: Uncaught (in promise) Error |
| CONSOLE ERROR: line 2717: Uncaught TypeError: Cannot read property 'error' of undefined |
| CONSOLE ERROR: line 703: Uncaught (in promise) undefined |
| CONSOLE ERROR: line 2717: Uncaught TypeError: Cannot read property 'error' of undefined |
| CONSOLE ERROR: line 735: Uncaught (in promise) undefined |
| CONSOLE ERROR: line 48: Uncaught (in promise) Error |
| CONSOLE ERROR: line 78: Uncaught (in promise) Error |
| CONSOLE ERROR: line 98: Uncaught (in promise) Error |
| CONSOLE ERROR: line 142: Uncaught (in promise) Error |
| CONSOLE ERROR: line 15: Uncaught (in promise) Error |
| CONSOLE ERROR: line 24: Uncaught (in promise) Error |
| CONSOLE ERROR: line 541: Uncaught (in promise) Error |
| CONSOLE ERROR: line 560: Uncaught (in promise) Error |
| CONSOLE ERROR: line 577: Uncaught (in promise) Error |
| CONSOLE ERROR: line 600: Uncaught (in promise) Error |
| CONSOLE ERROR: line 625: Uncaught (in promise) Error |
| CONSOLE ERROR: line 667: Uncaught (in promise) Error |
| CONSOLE ERROR: line 62: Uncaught (in promise) Error |
| CONSOLE ERROR: line 120: Uncaught (in promise) Error |
| CONSOLE ERROR: line 131: Uncaught (in promise) Error |
| CONSOLE ERROR: line 157: Uncaught (in promise) Error |
| CONSOLE ERROR: line 35: Uncaught (in promise) Error |
| CONSOLE ERROR: line 48: Uncaught (in promise) Error |
| CONSOLE ERROR: line 78: Uncaught (in promise) Error |
| CONSOLE ERROR: line 98: Uncaught (in promise) Error |
| CONSOLE ERROR: line 142: Uncaught (in promise) Error |
| This is a testharness.js-based test. |
| Harness Error. harness_status.status = 1 , harness_status.message = |
| PASS unhandledrejection: from Promise.reject |
| PASS unhandledrejection: from a synchronous rejection in new Promise |
| PASS unhandledrejection: from a task-delayed rejection |
| PASS unhandledrejection: from a setTimeout-delayed rejection |
| PASS unhandledrejection: from a throw in a rejection handler chained off of Promise.reject |
| PASS unhandledrejection: from a throw in a rejection handler chained off of a setTimeout-delayed rejection |
| PASS unhandledrejection: from a throw in a rejection handler attached one microtask after a setTimeout-delayed rejection |
| PASS unhandledrejection: from returning a Promise.reject-created rejection in a fulfillment handler |
| PASS unhandledrejection: from a throw in a fulfillment handler |
| PASS unhandledrejection: from returning a setTimeout-delayed rejection in a fulfillment handler |
| PASS unhandledrejection: from Promise.reject, indirected through Promise.all |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise from Promise.reject |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise from Promise.reject, indirecting through Promise.all |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a synchronously-rejected promise created with new Promise |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from throwing in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from returning a Promise.reject-created promise in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from returning a setTimeout-delayed rejection in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: all inside a queued task, a rejection handler attached synchronously to a promise created from returning a Promise.reject-created promise in a fulfillment handler |
| PASS delayed handling: a microtask delay before attaching a handler prevents both events (Promise.reject-created promise) |
| PASS delayed handling: a microtask delay before attaching a handler prevents both events (immediately-rejected new Promise-created promise) |
| PASS delayed handling: a microtask delay before attaching the handler, and before rejecting the promise, indirected through Promise.all |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks, all inside a postMessageTask |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks, all inside a setTimeout |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask, all inside a postMessageTask |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask, all inside a setTimeout |
| PASS delayed handling: a task delay before attaching a handler prevents unhandledrejection |
| PASS delayed handling: postMessageTask after promise creation/rejection, plus promise microtasks, is not too late to attach a rejection handler |
| PASS delayed handling: postMessageTask before promise creation/rejection, plus many promise microtasks, is not too late to attach a rejection handler |
| PASS delayed handling: postMessageTask after promise creation/rejection, plus many promise microtasks, is not too late to attach a rejection handler |
| PASS delayed handling: a nested-task delay before attaching a handler causes unhandledrejection |
| PASS delayed handling: a nested-postMessageTask after promise creation/rejection, plus promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: a nested-postMessageTask before promise creation/rejection, plus many promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: a nested-postMessageTask after promise creation/rejection, plus many promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: delaying handling by setTimeout(,10) will cause both events to fire |
| PASS mutationObserverMicrotask vs. postMessageTask ordering is not disturbed inside unhandledrejection events |
| PASS postMessageTask ordering vs. the task queued for unhandled rejection notification (1) |
| PASS postMessageTask ordering vs. the task queued for unhandled rejection notification (2) |
| PASS rejectionhandled is dispatched from a queued task, and not immediately |
| PASS Untitled |
| PASS unhandledrejection: from Promise.reject |
| PASS unhandledrejection: from a synchronous rejection in new Promise |
| PASS unhandledrejection: from a task-delayed rejection |
| PASS unhandledrejection: from a setTimeout-delayed rejection |
| PASS unhandledrejection: from a throw in a rejection handler chained off of Promise.reject |
| PASS unhandledrejection: from a throw in a rejection handler chained off of a setTimeout-delayed rejection |
| PASS unhandledrejection: from a throw in a rejection handler attached one microtask after a setTimeout-delayed rejection |
| PASS unhandledrejection: from returning a Promise.reject-created rejection in a fulfillment handler |
| PASS unhandledrejection: from a throw in a fulfillment handler |
| PASS unhandledrejection: from returning a setTimeout-delayed rejection in a fulfillment handler |
| PASS unhandledrejection: from Promise.reject, indirected through Promise.all |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise from Promise.reject |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise from Promise.reject, indirecting through Promise.all |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a synchronously-rejected promise created with new Promise |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from throwing in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from returning a Promise.reject-created promise in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from returning a setTimeout-delayed rejection in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: all inside a queued task, a rejection handler attached synchronously to a promise created from returning a Promise.reject-created promise in a fulfillment handler |
| PASS delayed handling: a microtask delay before attaching a handler prevents both events (Promise.reject-created promise) |
| PASS delayed handling: a microtask delay before attaching a handler prevents both events (immediately-rejected new Promise-created promise) |
| PASS delayed handling: a microtask delay before attaching the handler, and before rejecting the promise, indirected through Promise.all |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks, all inside a postMessageTask |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks, all inside a setTimeout |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask, all inside a postMessageTask |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask, all inside a setTimeout |
| PASS delayed handling: a nested-task delay before attaching a handler causes unhandledrejection |
| PASS delayed handling: a nested-postMessageTask after promise creation/rejection, plus promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: a nested-postMessageTask before promise creation/rejection, plus many promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: a nested-postMessageTask after promise creation/rejection, plus many promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: delaying handling by setTimeout(,10) will cause both events to fire |
| PASS mutationObserverMicrotask vs. postMessageTask ordering is not disturbed inside unhandledrejection events |
| PASS unhandledrejection: from Promise.reject |
| PASS unhandledrejection: from a synchronous rejection in new Promise |
| PASS unhandledrejection: from a task-delayed rejection |
| PASS unhandledrejection: from a setTimeout-delayed rejection |
| PASS unhandledrejection: from a throw in a rejection handler chained off of Promise.reject |
| PASS unhandledrejection: from a throw in a rejection handler chained off of a setTimeout-delayed rejection |
| PASS unhandledrejection: from a throw in a rejection handler attached one microtask after a setTimeout-delayed rejection |
| PASS unhandledrejection: from returning a Promise.reject-created rejection in a fulfillment handler |
| PASS unhandledrejection: from a throw in a fulfillment handler |
| PASS unhandledrejection: from returning a setTimeout-delayed rejection in a fulfillment handler |
| PASS unhandledrejection: from Promise.reject, indirected through Promise.all |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise from Promise.reject |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise from Promise.reject, indirecting through Promise.all |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a synchronously-rejected promise created with new Promise |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from throwing in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from returning a Promise.reject-created promise in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from returning a setTimeout-delayed rejection in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: all inside a queued task, a rejection handler attached synchronously to a promise created from returning a Promise.reject-created promise in a fulfillment handler |
| PASS delayed handling: a microtask delay before attaching a handler prevents both events (Promise.reject-created promise) |
| PASS delayed handling: a microtask delay before attaching a handler prevents both events (immediately-rejected new Promise-created promise) |
| PASS delayed handling: a microtask delay before attaching the handler, and before rejecting the promise, indirected through Promise.all |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks, all inside a postMessageTask |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks, all inside a setTimeout |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask, all inside a postMessageTask |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask, all inside a setTimeout |
| PASS delayed handling: a nested-task delay before attaching a handler causes unhandledrejection |
| PASS delayed handling: a nested-postMessageTask after promise creation/rejection, plus promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: a nested-postMessageTask before promise creation/rejection, plus many promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: a nested-postMessageTask after promise creation/rejection, plus many promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: delaying handling by setTimeout(,10) will cause both events to fire |
| PASS mutationObserverMicrotask vs. postMessageTask ordering is not disturbed inside unhandledrejection events |
| PASS unhandledrejection: from Promise.reject |
| PASS unhandledrejection: from a synchronous rejection in new Promise |
| PASS unhandledrejection: from a task-delayed rejection |
| PASS unhandledrejection: from a setTimeout-delayed rejection |
| PASS unhandledrejection: from a throw in a rejection handler chained off of Promise.reject |
| PASS unhandledrejection: from a throw in a rejection handler chained off of a setTimeout-delayed rejection |
| PASS unhandledrejection: from a throw in a rejection handler attached one microtask after a setTimeout-delayed rejection |
| PASS unhandledrejection: from returning a Promise.reject-created rejection in a fulfillment handler |
| PASS unhandledrejection: from a throw in a fulfillment handler |
| PASS unhandledrejection: from returning a setTimeout-delayed rejection in a fulfillment handler |
| PASS unhandledrejection: from Promise.reject, indirected through Promise.all |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise from Promise.reject |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise from Promise.reject, indirecting through Promise.all |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a synchronously-rejected promise created with new Promise |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from throwing in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from returning a Promise.reject-created promise in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from returning a setTimeout-delayed rejection in a fulfillment handler |
| PASS no unhandledrejection/rejectionhandled: all inside a queued task, a rejection handler attached synchronously to a promise created from returning a Promise.reject-created promise in a fulfillment handler |
| PASS delayed handling: a microtask delay before attaching a handler prevents both events (Promise.reject-created promise) |
| PASS delayed handling: a microtask delay before attaching a handler prevents both events (immediately-rejected new Promise-created promise) |
| PASS delayed handling: a microtask delay before attaching the handler, and before rejecting the promise, indirected through Promise.all |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks, all inside a postMessageTask |
| PASS microtask nesting: attaching a handler inside a combination of mutationObserverMicrotask + promise microtasks, all inside a setTimeout |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask, all inside a postMessageTask |
| PASS microtask nesting: attaching a handler inside a combination of promise microtasks + mutationObserverMicrotask, all inside a setTimeout |
| PASS delayed handling: a nested-task delay before attaching a handler causes unhandledrejection |
| PASS delayed handling: a nested-postMessageTask after promise creation/rejection, plus promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: a nested-postMessageTask before promise creation/rejection, plus many promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: a nested-postMessageTask after promise creation/rejection, plus many promise microtasks, is too late to attach a rejection handler |
| PASS delayed handling: delaying handling by setTimeout(,10) will cause both events to fire |
| PASS mutationObserverMicrotask vs. postMessageTask ordering is not disturbed inside unhandledrejection events |
| Harness: the test ran to completion. |
| |