summaryrefslogtreecommitdiff
path: root/ext/web/03_abort_signal.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/web/03_abort_signal.js')
-rw-r--r--ext/web/03_abort_signal.js11
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;