Skip to content

Commit

Permalink
fix(ext/node): use primordials in ext/node/polyfills/timers.ts (#24311
Browse files Browse the repository at this point in the history
)

Towards #24236
  • Loading branch information
iuioiua authored Jun 24, 2024
1 parent 1c7ae83 commit dc4a88b
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions ext/node/polyfills/timers.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.

// TODO(petamoriken): enable prefer-primordials for node polyfills
// deno-lint-ignore-file prefer-primordials

import { primordials } from "ext:core/mod.js";
const {
MapPrototypeGet,
MapPrototypeDelete,
ObjectDefineProperty,
Promise,
SafeArrayIterator,
} = primordials;

import {
Expand All @@ -32,9 +32,11 @@ export function setTimeout(
return new Timeout(callback, timeout, args, false, true);
}

Object.defineProperty(setTimeout, promisify.custom, {
ObjectDefineProperty(setTimeout, promisify.custom, {
value: (timeout: number, ...args: unknown[]) => {
return new Promise((cb) => setTimeout(cb, timeout, ...args));
return new Promise((cb) =>
setTimeout(cb, timeout, ...new SafeArrayIterator(args))
);
},
enumerable: true,
});
Expand Down Expand Up @@ -74,7 +76,7 @@ export function setImmediate(
cb: (...args: unknown[]) => void,
...args: unknown[]
): Timeout {
return new Immediate(cb, ...args);
return new Immediate(cb, ...new SafeArrayIterator(args));
}
export function clearImmediate(immediate: Immediate) {
if (immediate == null) {
Expand Down

0 comments on commit dc4a88b

Please sign in to comment.