diff options
Diffstat (limited to 'src/asm2wasm.h')
-rw-r--r-- | src/asm2wasm.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/asm2wasm.h b/src/asm2wasm.h index f78b9df55..00481c9bd 100644 --- a/src/asm2wasm.h +++ b/src/asm2wasm.h @@ -380,6 +380,7 @@ public: TrapMode trapMode; PassOptions passOptions; + bool legalizeJavaScriptFFI; bool runOptimizationPasses; bool wasmOnly; @@ -483,7 +484,7 @@ private: } public: - Asm2WasmBuilder(Module& wasm, Asm2WasmPreProcessor& preprocessor, bool debug, TrapMode trapMode, PassOptions passOptions, bool runOptimizationPasses, bool wasmOnly) + Asm2WasmBuilder(Module& wasm, Asm2WasmPreProcessor& preprocessor, bool debug, TrapMode trapMode, PassOptions passOptions, bool legalizeJavaScriptFFI, bool runOptimizationPasses, bool wasmOnly) : wasm(wasm), allocator(wasm.allocator), builder(wasm), @@ -491,6 +492,7 @@ public: debug(debug), trapMode(trapMode), passOptions(passOptions), + legalizeJavaScriptFFI(legalizeJavaScriptFFI), runOptimizationPasses(runOptimizationPasses), wasmOnly(wasmOnly) {} @@ -1395,7 +1397,9 @@ void Asm2WasmBuilder::processAsm(Ref ast) { passRunner.add<FinalizeCalls>(this); passRunner.add<ReFinalize>(); // FinalizeCalls changes call types, need to percolate passRunner.add<AutoDrop>(); // FinalizeCalls may cause us to require additional drops - passRunner.add("legalize-js-interface"); + if (legalizeJavaScriptFFI) { + passRunner.add("legalize-js-interface"); + } if (runOptimizationPasses) { // autodrop can add some garbage passRunner.add("vacuum"); |