From 1ed72f67f5ea82b36b8589e447619e98c004fa12 Mon Sep 17 00:00:00 2001 From: Benjamin Gruenbaum Date: Sun, 29 Nov 2020 20:01:24 +0200 Subject: [PATCH] timers: reject with AbortError on cancellation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/36317 Reviewed-By: Michaƫl Zasso Reviewed-By: James M Snell Reviewed-By: Matteo Collina Reviewed-By: Robert Nagy --- lib/timers/promises.js | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/lib/timers/promises.js b/lib/timers/promises.js index 7c98ba35ec4351..76713bcf603342 100644 --- a/lib/timers/promises.js +++ b/lib/timers/promises.js @@ -14,22 +14,14 @@ const { } = require('internal/timers'); const { - hideStackFrames, + AbortError, codes: { ERR_INVALID_ARG_TYPE } } = require('internal/errors'); -let DOMException; - -const lazyDOMException = hideStackFrames((message, name) => { - if (DOMException === undefined) - DOMException = internalBinding('messaging').DOMException; - return new DOMException(message, name); -}); - function cancelListenerHandler(clear, reject) { if (!this._destroyed) { clear(this); - reject(lazyDOMException('The operation was aborted', 'AbortError')); + reject(new AbortError()); } } @@ -64,8 +56,7 @@ function setTimeout(after, value, options = {}) { // to 12.x, then this can be converted to use optional chaining to // simplify the check. if (signal && signal.aborted) { - return PromiseReject( - lazyDOMException('The operation was aborted', 'AbortError')); + return PromiseReject(new AbortError()); } let oncancel; const ret = new Promise((resolve, reject) => { @@ -115,8 +106,7 @@ function setImmediate(value, options = {}) { // to 12.x, then this can be converted to use optional chaining to // simplify the check. if (signal && signal.aborted) { - return PromiseReject( - lazyDOMException('The operation was aborted', 'AbortError')); + return PromiseReject(new AbortError()); } let oncancel; const ret = new Promise((resolve, reject) => {