diff options
Diffstat (limited to 'src/tools/wasm-split/wasm-split.cpp')
-rw-r--r-- | src/tools/wasm-split/wasm-split.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/tools/wasm-split/wasm-split.cpp b/src/tools/wasm-split/wasm-split.cpp index 6a042679f..bea3ddce7 100644 --- a/src/tools/wasm-split/wasm-split.cpp +++ b/src/tools/wasm-split/wasm-split.cpp @@ -248,6 +248,11 @@ void splitModule(const WasmSplitOptions& options) { } } + if (options.jspi) { + // The load secondary module function must be kept in the main module. + keepFuncs.insert(ModuleSplitting::LOAD_SECONDARY_MODULE); + } + if (!options.quiet && keepFuncs.size() == 0) { std::cerr << "warning: not keeping any functions in the primary module\n"; } @@ -300,22 +305,13 @@ void splitModule(const WasmSplitOptions& options) { config.newExportPrefix = options.exportPrefix; } config.minimizeNewExportNames = !options.passOptions.debugInfo; + config.jspi = options.jspi; auto splitResults = ModuleSplitting::splitFunctions(wasm, config); auto& secondary = splitResults.secondary; adjustTableSize(wasm, options.initialTableSize); adjustTableSize(*secondary, options.initialTableSize); - // Run asyncify on the primary module - if (options.asyncify) { - PassOptions passOptions; - passOptions.optimizeLevel = 1; - passOptions.arguments.insert({"asyncify-ignore-imports", ""}); - PassRunner runner(&wasm, passOptions); - runner.add("asyncify"); - runner.run(); - } - if (options.symbolMap) { writeSymbolMap(wasm, options.primaryOutput + ".symbols"); writeSymbolMap(*secondary, options.secondaryOutput + ".symbols"); |