diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/deno.ts | 1 | ||||
-rw-r--r-- | js/timers.ts | 9 | ||||
-rw-r--r-- | js/timers_test.ts | 5 |
3 files changed, 15 insertions, 0 deletions
diff --git a/js/deno.ts b/js/deno.ts index 3bbda69e8..92ba5301d 100644 --- a/js/deno.ts +++ b/js/deno.ts @@ -15,4 +15,5 @@ export { ErrorKind, DenoError } from "./errors"; export { libdeno } from "./libdeno"; export { arch, platform } from "./platform"; export { trace } from "./trace"; +export { setGlobalTimeout } from "./timers"; export const args: string[] = []; diff --git a/js/timers.ts b/js/timers.ts index 42be96d91..03badfd46 100644 --- a/js/timers.ts +++ b/js/timers.ts @@ -19,6 +19,15 @@ interface Timer { delay: number; // milliseconds } +export function setGlobalTimeout(timeout: number) { + const builder = new flatbuffers.Builder(); + fbs.SetTimeout.startSetTimeout(builder); + fbs.SetTimeout.addTimeout(builder, timeout); + const msg = fbs.SetTimeout.endSetTimeout(builder); + const res = sendSync(builder, fbs.Any.SetTimeout, msg); + assert(res == null); +} + function startTimer( id: number, cb: TimerCallback, diff --git a/js/timers_test.ts b/js/timers_test.ts index af172e976..e5fe2d478 100644 --- a/js/timers_test.ts +++ b/js/timers_test.ts @@ -1,4 +1,5 @@ import { test, assertEqual } from "./test_util.ts"; +import { setGlobalTimeout } from "deno"; function deferred() { let resolve; @@ -95,3 +96,7 @@ test(async function intervalCancelInvalidSilentFail() { // Should silently fail (no panic) clearInterval(2147483647); }); + +test(async function SetGlobalTimeoutSmoke() { + setGlobalTimeout(50); +}); |