diff --git a/Cargo.toml b/Cargo.toml index 36845812c..416197b84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,6 +53,8 @@ usvg = { version = "0.22", default-features = false, features = ["text"] } xmp-writer = "0.1" tracing = "0.1.37" indexmap = "1.9.3" + +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] stacker = "0.1.15" [profile.dev] diff --git a/src/eval/mod.rs b/src/eval/mod.rs index 05a434041..850a3d32f 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -1119,10 +1119,14 @@ impl Eval for ast::FuncCall { let callee = callee.cast::().at(callee_span)?; let point = || Tracepoint::Call(callee.name().map(Into::into)); + let f = || callee.call_vm(vm, args).trace(vm.world(), point, span); - stacker::maybe_grow(32 * 1024, 2 * 1024 * 1024, || { - callee.call_vm(vm, args).trace(vm.world(), point, span) - }) + // Stacker is broken on WASM. + #[cfg(target_arch = "wasm32")] + return f(); + + #[cfg(not(target_arch = "wasm32"))] + stacker::maybe_grow(32 * 1024, 2 * 1024 * 1024, f) } }