From 0c0058f1181d1fd6590f760a0375ead706043d32 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Tue, 15 Jun 2021 14:18:16 -0400 Subject: fix: set minimum timeout to be 4 milliseconds (#10972) --- extensions/timers/lib.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/extensions/timers/lib.rs b/extensions/timers/lib.rs index 43a40e939..5f65ae3ef 100644 --- a/extensions/timers/lib.rs +++ b/extensions/timers/lib.rs @@ -122,6 +122,12 @@ pub fn op_global_timer_start( timeout: u64, _: (), ) -> Result<(), AnyError> { + // According to spec, minimum allowed timeout is 4 ms. + // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers + // TODO(#10974) Per spec this is actually a little more complicated than this. + // The minimum timeout depends on the nesting level of the timeout. + let timeout = std::cmp::max(timeout, 4); + let deadline = Instant::now() + Duration::from_millis(timeout); let global_timer = state.borrow_mut::(); global_timer.new_timeout(deadline); -- cgit v1.2.3