src: fix off-by-one error in native SetImmediate
Previously, the throwing callback would have been re-executed in case of an exception. This patch corrects the calculation to exclude the callback. PR-URL: https://github.com/nodejs/node/pull/28082 Fixes: https://github.com/nodejs/node/issues/26754 Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
b5e818197f
commit
fb4d5286b0
@ -641,6 +641,11 @@ void Environment::RunAndClearNativeImmediates() {
|
||||
if (!try_catch.HasTerminated())
|
||||
FatalException(isolate(), try_catch);
|
||||
|
||||
// We are done with the current callback. Increase the counter so that
|
||||
// the steps below make everything *after* the current item part of
|
||||
// the new list.
|
||||
it++;
|
||||
|
||||
// Bail out, remove the already executed callbacks from list
|
||||
// and set up a new TryCatch for the other pending callbacks.
|
||||
std::move_backward(it, list.end(), list.begin() + (list.end() - it));
|
||||
|
Loading…
x
Reference in New Issue
Block a user