diff options
Diffstat (limited to 'src/passes/ExtractFunction.cpp')
-rw-r--r-- | src/passes/ExtractFunction.cpp | 14 |
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_); + } } }; |