diff --git a/lib/internal/timers/promises.js b/lib/internal/timers/promises.js index f1912642a8faeb..e58756edac0e46 100644 --- a/lib/internal/timers/promises.js +++ b/lib/internal/timers/promises.js @@ -1,6 +1,7 @@ 'use strict'; const { + FunctionPrototypeBind, Promise, PromisePrototypeFinally, PromiseReject, @@ -69,8 +70,9 @@ function setTimeout(after, value, options = {}) { if (!ref) timeout.unref(); insert(timeout, timeout._idleTimeout); if (signal) { - // eslint-disable-next-line no-undef - oncancel = cancelListenerHandler.bind(timeout, clearTimeout, reject); + oncancel = FunctionPrototypeBind(cancelListenerHandler, + // eslint-disable-next-line no-undef + timeout, clearTimeout, reject); signal.addEventListener('abort', oncancel); } }); @@ -113,8 +115,9 @@ function setImmediate(value, options = {}) { const immediate = new Immediate(resolve, [value]); if (!ref) immediate.unref(); if (signal) { - // eslint-disable-next-line no-undef - oncancel = cancelListenerHandler.bind(immediate, clearImmediate, reject); + oncancel = FunctionPrototypeBind(cancelListenerHandler, + // eslint-disable-next-line no-undef + immediate, clearImmediate, reject); signal.addEventListener('abort', oncancel); } });