Skip to content

Fix #779: useRaf stop timer fires immediately due to setTimeout overflow#2697

Open
rodionsteshenko wants to merge 1 commit intostreamich:masterfrom
rodionsteshenko:fix-issue-779
Open

Fix #779: useRaf stop timer fires immediately due to setTimeout overflow#2697
rodionsteshenko wants to merge 1 commit intostreamich:masterfrom
rodionsteshenko:fix-issue-779

Conversation

@rodionsteshenko
Copy link

Bug

useRaf's default ms=1e12 overflows setTimeout's 32-bit integer limit (2^31-1), causing the stop timer to fire immediately. The hook does nothing with default parameters.

Fix

Skip the stop timer when ms exceeds 2^31-1. Also fixed an existing test that was passing due to the same overflow bug.

Test

Added test verifying useRaf() doesn't jump to elapsed=1 immediately. Full suite: 76 suites, 493 tests pass.

Tested locally on macOS ARM (Apple Silicon).

…mich#779)

setTimeout fires immediately when delay exceeds 2^31-1 (2147483647ms).
The default ms=1e12 caused the stop timer to fire instantly, breaking
the hook. Skip the stop timer for durations exceeding the safe limit.

Also fixes the delay test which was inadvertently passing due to the
same overflow bug.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant