diff options
author | Jose <jose@zeroc.com> | 2016-11-25 19:23:18 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2016-11-25 19:23:18 +0100 |
commit | e4f7f79111e94dfc68d68ad6f8dd2686765aad86 (patch) | |
tree | 91926fc56f0df755fccfdced90d961f43b67009e /cpp/src/slice2js/Gen.cpp | |
parent | Fixed IceSSL/configuration test failure when ran with --protocol=ssl (diff) | |
download | ice-e4f7f79111e94dfc68d68ad6f8dd2686765aad86.tar.bz2 ice-e4f7f79111e94dfc68d68ad6f8dd2686765aad86.tar.xz ice-e4f7f79111e94dfc68d68ad6f8dd2686765aad86.zip |
Ensure JS modules are exported only once
Diffstat (limited to 'cpp/src/slice2js/Gen.cpp')
-rw-r--r-- | cpp/src/slice2js/Gen.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/cpp/src/slice2js/Gen.cpp b/cpp/src/slice2js/Gen.cpp index 734af09cd6f..8a7854ff623 100644 --- a/cpp/src/slice2js/Gen.cpp +++ b/cpp/src/slice2js/Gen.cpp @@ -2066,24 +2066,28 @@ Slice::Gen::ExportVisitor::visitModuleStart(const ModulePtr& p) { const string localScope = getLocalScope(p->scope()); const string name = localScope.empty() ? fixId(p->name()) : localScope + "." + p->name(); - if(_es6modules) + if(find(_exported.begin(), _exported.end(), name) == _exported.end()) { - _out << nl << "export { " << name << " };"; - } - else - { - if(_icejs) + _exported.push_back(name); + if(_es6modules) { - _out.zeroIndent(); - _out << nl << "/* slice2js browser-bundle-skip */"; - _out.restoreIndent(); + _out << nl << "export { " << name << " };"; } - _out << nl << "exports." << name << " = " << name << ";"; - if(_icejs) + else { - _out.zeroIndent(); - _out << nl << "/* slice2js browser-bundle-skip-end */"; - _out.restoreIndent(); + if(_icejs) + { + _out.zeroIndent(); + _out << nl << "/* slice2js browser-bundle-skip */"; + _out.restoreIndent(); + } + _out << nl << "exports." << name << " = " << name << ";"; + if(_icejs) + { + _out.zeroIndent(); + _out << nl << "/* slice2js browser-bundle-skip-end */"; + _out.restoreIndent(); + } } } } |