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 | |
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')
-rw-r--r-- | cpp/src/slice2js/Gen.cpp | 32 | ||||
-rw-r--r-- | cpp/src/slice2js/Gen.h | 1 |
2 files changed, 19 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(); + } } } } diff --git a/cpp/src/slice2js/Gen.h b/cpp/src/slice2js/Gen.h index bee09bdddfe..e86686d5fe3 100644 --- a/cpp/src/slice2js/Gen.h +++ b/cpp/src/slice2js/Gen.h @@ -143,6 +143,7 @@ private: bool _icejs; bool _es6modules; + std::vector<std::string> _exported; }; }; |