summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/passes/MinifyImportsAndExports.cpp20
-rw-r--r--src/passes/pass.cpp3
-rw-r--r--src/passes/passes.h1
3 files changed, 19 insertions, 5 deletions
diff --git a/src/passes/MinifyImportsAndExports.cpp b/src/passes/MinifyImportsAndExports.cpp
index f32859384..007f4b629 100644
--- a/src/passes/MinifyImportsAndExports.cpp
+++ b/src/passes/MinifyImportsAndExports.cpp
@@ -42,7 +42,12 @@
namespace wasm {
struct MinifyImportsAndExports : public Pass {
+ bool minifyExports;
+public:
+ explicit MinifyImportsAndExports(bool minifyExports):minifyExports(minifyExports) {}
+
+private:
// Generates minified names that are valid in JS.
// Names are computed lazily.
class MinifiedNames {
@@ -150,9 +155,12 @@ struct MinifyImportsAndExports : public Pass {
};
ModuleUtils::iterImportedGlobals(*module, processImport);
ModuleUtils::iterImportedFunctions(*module, processImport);
- // Minify the exported names.
- for (auto& curr : module->exports) {
- process(curr->name);
+
+ if (minifyExports) {
+ // Minify the exported names.
+ for (auto& curr : module->exports) {
+ process(curr->name);
+ }
}
module->updateMaps();
// Emit the mapping.
@@ -162,8 +170,12 @@ struct MinifyImportsAndExports : public Pass {
}
};
+Pass *createMinifyImportsPass() {
+ return new MinifyImportsAndExports(false);
+}
+
Pass *createMinifyImportsAndExportsPass() {
- return new MinifyImportsAndExports();
+ return new MinifyImportsAndExports(true);
}
} // namespace wasm
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index 26f771277..d2478eaba 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -95,7 +95,8 @@ void PassRegistry::registerPasses() {
registerPass("merge-blocks", "merges blocks to their parents", createMergeBlocksPass);
registerPass("merge-locals", "merges locals when beneficial", createMergeLocalsPass);
registerPass("metrics", "reports metrics", createMetricsPass);
- registerPass("minify-imports-and-exports", "minifies import and export names, and emits a mapping to the minified ones", createMinifyImportsAndExportsPass);
+ registerPass("minify-imports", "minifies import names (only those, and not export names), and emits a mapping to the minified ones", createMinifyImportsPass);
+ registerPass("minify-imports-and-exports", "minifies both import and export names, and emits a mapping to the minified ones", createMinifyImportsAndExportsPass);
registerPass("nm", "name list", createNameListPass);
registerPass("optimize-instructions", "optimizes instruction combinations", createOptimizeInstructionsPass);
registerPass("optimize-stack-ir", "optimize Stack IR", createOptimizeStackIRPass);
diff --git a/src/passes/passes.h b/src/passes/passes.h
index 1fd07a4f6..ec40a60f2 100644
--- a/src/passes/passes.h
+++ b/src/passes/passes.h
@@ -51,6 +51,7 @@ Pass* createMemoryPackingPass();
Pass* createMergeBlocksPass();
Pass* createMergeLocalsPass();
Pass* createMinifiedPrinterPass();
+Pass* createMinifyImportsPass();
Pass* createMinifyImportsAndExportsPass();
Pass* createMetricsPass();
Pass* createNameListPass();