src: env_vars caching and local variable scope optimization

PR-URL: https://github.com/nodejs/node/pull/57624
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Mert Can Altin 2025-06-07 02:30:10 +03:00 committed by GitHub
parent c1f090dc76
commit 0c6e16bc84
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -65,18 +65,19 @@ std::vector<Dotenv::env_file_data> Dotenv::GetDataFromArgs(
}
Maybe<void> Dotenv::SetEnvironment(node::Environment* env) {
Local<Value> name;
Local<Value> val;
auto context = env->context();
auto env_vars = env->env_vars();
for (const auto& entry : store_) {
auto existing = env->env_vars()->Get(entry.first.data());
auto existing = env_vars->Get(entry.first.data());
if (!existing.has_value()) {
Local<Value> name;
Local<Value> val;
if (!ToV8Value(context, entry.first).ToLocal(&name) ||
!ToV8Value(context, entry.second).ToLocal(&val)) {
return Nothing<void>();
}
env->env_vars()->Set(env->isolate(), name.As<String>(), val.As<String>());
env_vars->Set(env->isolate(), name.As<String>(), val.As<String>());
}
}