| 'use strict'; |
| var core = require('./core'); |
| |
| function unwrapEvent(event) { |
| if (event && event.detail && event.detail.promise) { |
| return event.detail; |
| } |
| |
| return event; |
| } |
| |
| module.exports = function (w) { |
| w = w || window; |
| var c = core(); |
| |
| w.addEventListener('unhandledrejection', function (event) { |
| event = unwrapEvent(event); |
| c.onUnhandledRejection(event.reason, event.promise); |
| }); |
| |
| w.addEventListener('rejectionhandled', function (event) { |
| event = unwrapEvent(event); |
| c.onRejectionHandled(event.promise); |
| }); |
| |
| return c.currentlyUnhandled; |
| }; |