diff options
Diffstat (limited to 'ext/web/03_abort_signal.js')
-rw-r--r-- | ext/web/03_abort_signal.js | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ext/web/03_abort_signal.js b/ext/web/03_abort_signal.js index 053b89bdf..81844d53f 100644 --- a/ext/web/03_abort_signal.js +++ b/ext/web/03_abort_signal.js @@ -3,7 +3,7 @@ // @ts-check /// <reference path="../../core/internal.d.ts" /> -import { primordials } from "ext:core/mod.js"; +import { core, primordials } from "ext:core/mod.js"; const { ArrayPrototypeEvery, ArrayPrototypePush, @@ -33,7 +33,7 @@ import { listenerCount, setIsTrusted, } from "./02_event.js"; -import { refTimer, setTimeout, unrefTimer } from "./02_timers.js"; +import { clearTimeout, refTimer, unrefTimer } from "./02_timers.js"; // Since WeakSet is not a iterable, WeakRefSet class is provided to store and // iterate objects. @@ -118,14 +118,17 @@ class AbortSignal extends EventTarget { ); const signal = new AbortSignal(illegalConstructorKey); - signal[timerId] = setTimeout( + signal[timerId] = core.queueSystemTimer( + undefined, + false, + millis, () => { + clearTimeout(signal[timerId]); signal[timerId] = null; signal[signalAbort]( new DOMException("Signal timed out.", "TimeoutError"), ); }, - millis, ); unrefTimer(signal[timerId]); return signal; |