Fix local-exported vars with "--no-scope-shadowing"

This used to create copies even then, which meant it couldn't modify them.
This commit is contained in:
Fabian Homborg 2017-06-21 16:46:56 +02:00 committed by Kurtis Rader
parent 04205f36be
commit 415c7ebbcc

View File

@ -182,11 +182,13 @@ void var_stack_t::push(bool new_scope) {
// Copy local-exported variables
auto top_node = top.get();
if (!(top_node == this->global_env)) {
for (auto& var : top_node->env) {
if (var.second.exportv) {
// This should copy var
node->env.insert(var);
if (new_scope) {
if (!(top_node == this->global_env)) {
for (auto& var : top_node->env) {
if (var.second.exportv) {
// This should copy var
node->env.insert(var);
}
}
}
}