|  | '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; | 
|  | }; |