diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/passes/MinifyImportsAndExports.cpp | 20 | ||||
-rw-r--r-- | src/passes/pass.cpp | 3 | ||||
-rw-r--r-- | src/passes/passes.h | 1 |
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(); |