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) {
|
Maybe<void> Dotenv::SetEnvironment(node::Environment* env) {
|
||||||
Local<Value> name;
|
|
||||||
Local<Value> val;
|
|
||||||
auto context = env->context();
|
auto context = env->context();
|
||||||
|
auto env_vars = env->env_vars();
|
||||||
|
|
||||||
for (const auto& entry : store_) {
|
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()) {
|
if (!existing.has_value()) {
|
||||||
|
Local<Value> name;
|
||||||
|
Local<Value> val;
|
||||||
if (!ToV8Value(context, entry.first).ToLocal(&name) ||
|
if (!ToV8Value(context, entry.first).ToLocal(&name) ||
|
||||||
!ToV8Value(context, entry.second).ToLocal(&val)) {
|
!ToV8Value(context, entry.second).ToLocal(&val)) {
|
||||||
return Nothing<void>();
|
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