summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author迷渡 <justjavac@gmail.com>2019-08-30 23:51:53 +0800
committerRyan Dahl <ry@tinyclouds.org>2019-08-30 11:51:53 -0400
commit65fa2b810b9e22f6eda6c11945e27ba21dff7a1c (patch)
treed7fa3a9b6a0553195e59abd94a8b9beb73845140
parentc370f749b2260cc1d8970b1dcdc63ff00008e26d (diff)
clearTimeout's params should not be bigint (#2838)
-rw-r--r--js/timers.ts2
-rw-r--r--js/timers_test.ts15
2 files changed, 17 insertions, 0 deletions
diff --git a/js/timers.ts b/js/timers.ts
index d12205317..4b8596cb7 100644
--- a/js/timers.ts
+++ b/js/timers.ts
@@ -262,6 +262,7 @@ function clearTimer(id: number): void {
}
export function clearTimeout(id: number = 0): void {
+ checkBigInt(id);
if (id === 0) {
return;
}
@@ -269,6 +270,7 @@ export function clearTimeout(id: number = 0): void {
}
export function clearInterval(id: number = 0): void {
+ checkBigInt(id);
if (id === 0) {
return;
}
diff --git a/js/timers_test.ts b/js/timers_test.ts
index f4757bdb2..bc4fcffcf 100644
--- a/js/timers_test.ts
+++ b/js/timers_test.ts
@@ -259,6 +259,21 @@ test(function setTimeoutShouldThrowWithBigint(): void {
assertEquals(hasThrown, 2);
});
+test(function clearTimeoutShouldThrowWithBigint(): void {
+ let hasThrown = 0;
+ try {
+ clearTimeout((1n as unknown) as number);
+ hasThrown = 1;
+ } catch (err) {
+ if (err instanceof TypeError) {
+ hasThrown = 2;
+ } else {
+ hasThrown = 3;
+ }
+ }
+ assertEquals(hasThrown, 2);
+});
+
test(function testFunctionName(): void {
assertEquals(clearTimeout.name, "clearTimeout");
assertEquals(clearInterval.name, "clearInterval");