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:
parent
c1f090dc76
commit
0c6e16bc84
@ -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>());
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user