summaryrefslogtreecommitdiff
path: root/src/passes/RemoveNonJSOps.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/RemoveNonJSOps.cpp')
-rw-r--r--src/passes/RemoveNonJSOps.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/passes/RemoveNonJSOps.cpp b/src/passes/RemoveNonJSOps.cpp
index 906c34bc4..fc3e42185 100644
--- a/src/passes/RemoveNonJSOps.cpp
+++ b/src/passes/RemoveNonJSOps.cpp
@@ -33,6 +33,7 @@
#include "asmjs/shared-constants.h"
#include "wasm-builder.h"
#include "wasm-s-parser.h"
+#include "abi/js.h"
#include "ir/memory-utils.h"
#include "ir/module-utils.h"
#include "ir/find_all.h"
@@ -50,6 +51,9 @@ struct RemoveNonJSOpsPass : public WalkerPass<PostWalker<RemoveNonJSOpsPass>> {
Pass* create() override { return new RemoveNonJSOpsPass; }
void doWalkModule(Module* module) {
+ // Intrinsics may use scratch memory, ensure it.
+ ABI::wasm2js::ensureScratchMemoryHelpers(module);
+
// Discover all of the intrinsics that we need to inject, lowering all
// operations to intrinsic calls while we're at it.
if (!builder) builder = make_unique<Builder>(*module);