summaryrefslogtreecommitdiff
path: root/src/passes/ExtractFunction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/ExtractFunction.cpp')
-rw-r--r--src/passes/ExtractFunction.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/passes/ExtractFunction.cpp b/src/passes/ExtractFunction.cpp
index 01daf3504..fbc1aa7c4 100644
--- a/src/passes/ExtractFunction.cpp
+++ b/src/passes/ExtractFunction.cpp
@@ -49,12 +49,14 @@ struct ExtractFunction : public Pass {
module->memory.segments.clear();
module->table.segments.clear();
// leave just an export for the thing we want
- module->exports.clear();
- auto* export_ = new Export;
- export_->name = name;
- export_->value = name;
- export_->kind = ExternalKind::Function;
- module->addExport(export_);
+ if (!module->getExportOrNull(name)) {
+ module->exports.clear();
+ auto* export_ = new Export;
+ export_->name = name;
+ export_->value = name;
+ export_->kind = ExternalKind::Function;
+ module->addExport(export_);
+ }
}
};