Skip to content

Commit e630f72

Browse files
committed
src: defer V8 warning emission to next tick
1 parent 909f0fc commit e630f72

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

src/node_errors.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,8 +1064,12 @@ void PerIsolateMessageListener(Local<Message> message, Local<Value> error) {
10641064
filename,
10651065
message->GetLineNumber(env->context()).FromMaybe(-1),
10661066
msg);
1067-
// Emit the warning immediately.
1068-
USE(ProcessEmitWarningGeneric(env, warning, "V8"));
1067+
// Defer the warning to the next event loop iteration. This prevents
1068+
// crashes when V8 emits warnings during code evaluation with
1069+
// throwOnSideEffect.
1070+
env->SetImmediate([warning](Environment* env) {
1071+
ProcessEmitWarningGeneric(env, warning, "V8");
1072+
});
10691073
break;
10701074
}
10711075
case Isolate::MessageErrorLevel::kMessageError:

0 commit comments

Comments
 (0)