diff options
author | 迷渡 <justjavac@gmail.com> | 2019-08-30 23:51:53 +0800 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-08-30 11:51:53 -0400 |
commit | 65fa2b810b9e22f6eda6c11945e27ba21dff7a1c (patch) | |
tree | d7fa3a9b6a0553195e59abd94a8b9beb73845140 | |
parent | c370f749b2260cc1d8970b1dcdc63ff00008e26d (diff) |
clearTimeout's params should not be bigint (#2838)
-rw-r--r-- | js/timers.ts | 2 | ||||
-rw-r--r-- | js/timers_test.ts | 15 |
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"); |