fix: deprecation warning crash when no Node.js environment available (#47771)

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot] 2025-07-17 10:09:13 +02:00 committed by GitHub
parent e845d20789
commit 5ba1597340
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -66,8 +66,13 @@ void EmitWarning(const std::string_view warning_msg,
void EmitWarning(v8::Isolate* isolate,
const std::string_view warning_msg,
const std::string_view warning_type) {
node::ProcessEmitWarningGeneric(node::Environment::GetCurrent(isolate),
warning_msg, warning_type);
node::Environment* env = node::Environment::GetCurrent(isolate);
if (!env) {
// No Node.js environment available, fall back to console logging.
LOG(WARNING) << "[" << warning_type << "] " << warning_msg;
return;
}
node::ProcessEmitWarningGeneric(env, warning_msg, warning_type);
}
void EmitDeprecationWarning(const std::string_view warning_msg,
@ -79,8 +84,14 @@ void EmitDeprecationWarning(const std::string_view warning_msg,
void EmitDeprecationWarning(v8::Isolate* isolate,
const std::string_view warning_msg,
const std::string_view deprecation_code) {
node::ProcessEmitWarningGeneric(node::Environment::GetCurrent(isolate),
warning_msg, "DeprecationWarning",
node::Environment* env = node::Environment::GetCurrent(isolate);
if (!env) {
// No Node.js environment available, fall back to console logging.
LOG(WARNING) << "[DeprecationWarning] " << warning_msg
<< " (code: " << deprecation_code << ")";
return;
}
node::ProcessEmitWarningGeneric(env, warning_msg, "DeprecationWarning",
deprecation_code);
}