summaryrefslogtreecommitdiff
path: root/src/tools/wasm-emscripten-finalize.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/wasm-emscripten-finalize.cpp')
-rw-r--r--src/tools/wasm-emscripten-finalize.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp
index 6e0831a08..cc57c9311 100644
--- a/src/tools/wasm-emscripten-finalize.cpp
+++ b/src/tools/wasm-emscripten-finalize.cpp
@@ -242,7 +242,15 @@ int main(int argc, const char* argv[]) {
wasm.updateMaps();
if (checkStackOverflow && !sideModule) {
- generator.enforceStackLimit();
+ PassOptions options;
+ if (!standaloneWasm) {
+ // In standalone mode we don't set a handler at all.. which means
+ // just trap on overflow.
+ options.arguments["stack-check-handler"] = "__handle_stack_overflow";
+ }
+ PassRunner passRunner(&wasm, options);
+ passRunner.add("stack-check");
+ passRunner.run();
}
if (sideModule) {
@@ -288,8 +296,7 @@ int main(int argc, const char* argv[]) {
// Legalize the wasm, if BigInts don't make that moot.
if (!bigInt) {
BYN_TRACE("legalizing types\n");
- PassRunner passRunner(&wasm);
- passRunner.setOptions(options.passOptions);
+ PassRunner passRunner(&wasm, options.passOptions);
passRunner.setDebug(options.debug);
passRunner.setDebugInfo(debugInfo);
passRunner.add(ABI::getLegalizationPass(