function monkeyPatch()

in src/polyfills/event-listener-signal.ts [35:53]


function monkeyPatch() {
  if (typeof window === 'undefined') {
    return
  }

  const originalAddEventListener = EventTarget.prototype.addEventListener
  EventTarget.prototype.addEventListener = function (name, originalCallback, optionsOrCapture) {
    if (
      typeof optionsOrCapture === 'object' &&
      'signal' in optionsOrCapture &&
      optionsOrCapture.signal instanceof AbortSignal
    ) {
      originalAddEventListener.call(optionsOrCapture.signal, 'abort', () => {
        this.removeEventListener(name, originalCallback, optionsOrCapture)
      })
    }
    return originalAddEventListener.call(this, name, originalCallback, optionsOrCapture)
  }
}