Skip to content

Commit e884357

Browse files
committed
Avoid node TimeoutNegativeWarning
This restores the two different paths for calculating the remaining milliseconds which was removed in #12122. Inspired by #23716
1 parent fc15522 commit e884357

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/lib/libeventloop.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,17 @@ LibraryJSEventLoop = {
135135
{{{ runtimeKeepalivePop() }}}
136136
callUserCallback(() => {
137137
if ({{{ makeDynCall('idp', 'cb') }}}(t, userData)) {
138+
{{{ runtimeKeepalivePush() }}}
139+
#if ENVIRONMENT_MAY_BE_NODE
140+
var remaining = Math.max(0, n - _emscripten_get_now())
141+
#else
138142
// Save a little bit of code space: modern browsers should treat
139143
// negative setTimeout as timeout of 0
140144
// (https://stackoverflow.com/questions/8430966/is-calling-settimeout-with-a-negative-delay-ok)
141-
{{{ runtimeKeepalivePush() }}}
142-
setTimeout(tick, n - _emscripten_get_now());
145+
// Node, however, gives TimeoutNegativeWarning
146+
var remaining = n - _emscripten_get_now()
147+
#endif
148+
setTimeout(tick, remaining);
143149
}
144150
});
145151
}

0 commit comments

Comments
 (0)