summaryrefslogtreecommitdiff
path: root/js/timers.ts
diff options
context:
space:
mode:
author迷渡 <justjavac@gmail.com>2019-08-29 22:57:09 +0800
committerRyan Dahl <ry@tinyclouds.org>2019-08-29 10:57:09 -0400
commit590463bd4a8d71330ab808774b63dd6b366bba1f (patch)
tree7b30b398c9f15c5b0136f3a582957d3e59d433de /js/timers.ts
parentb5a5e973842fed271210ce919a309745b9bfa30a (diff)
setTimeout's params should not be bigint (#2834)
Diffstat (limited to 'js/timers.ts')
-rw-r--r--js/timers.ts8
1 files changed, 8 insertions, 0 deletions
diff --git a/js/timers.ts b/js/timers.ts
index 079e779c4..d12205317 100644
--- a/js/timers.ts
+++ b/js/timers.ts
@@ -179,6 +179,12 @@ function checkThis(thisArg: unknown): void {
}
}
+function checkBigInt(n: unknown): void {
+ if (typeof n === "bigint") {
+ throw new TypeError("Cannot convert a BigInt value to a number");
+ }
+}
+
function setTimer(
cb: (...args: Args) => void,
delay: number,
@@ -224,6 +230,7 @@ export function setTimeout(
delay: number = 0,
...args: Args
): number {
+ checkBigInt(delay);
// @ts-ignore
checkThis(this);
return setTimer(cb, delay, args, false);
@@ -235,6 +242,7 @@ export function setInterval(
delay: number = 0,
...args: Args
): number {
+ checkBigInt(delay);
// @ts-ignore
checkThis(this);
return setTimer(cb, delay, args, true);