summaryrefslogtreecommitdiff
path: root/cpp/src/slice2js/Gen.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2016-11-25 19:23:18 +0100
committerJose <jose@zeroc.com>2016-11-25 19:23:18 +0100
commite4f7f79111e94dfc68d68ad6f8dd2686765aad86 (patch)
tree91926fc56f0df755fccfdced90d961f43b67009e /cpp/src/slice2js/Gen.cpp
parentFixed IceSSL/configuration test failure when ran with --protocol=ssl (diff)
downloadice-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.cpp32
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();
+ }
}
}
}