diff options
Diffstat (limited to 'js/src/wasm/WasmRealm.cpp')
-rw-r--r-- | js/src/wasm/WasmRealm.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/js/src/wasm/WasmRealm.cpp b/js/src/wasm/WasmRealm.cpp index 8907715c8f..61d8b96a44 100644 --- a/js/src/wasm/WasmRealm.cpp +++ b/js/src/wasm/WasmRealm.cpp @@ -150,3 +150,22 @@ void wasm::ResetInterruptState(JSContext* cx) { instance->resetInterrupt(cx); } } + +#ifdef ENABLE_WASM_JSPI +void wasm::UpdateInstanceStackLimitsForSuspendableStack( + JSContext* cx, JS::NativeStackLimit limit) { + auto runtimeInstances = cx->runtime()->wasmInstances.lock(); + cx->wasm().suspendableStackLimit = limit; + for (Instance* instance : runtimeInstances.get()) { + instance->setTemporaryStackLimit(limit); + } +} + +void wasm::ResetInstanceStackLimits(JSContext* cx) { + auto runtimeInstances = cx->runtime()->wasmInstances.lock(); + cx->wasm().suspendableStackLimit = JS::NativeStackLimitMin; + for (Instance* instance : runtimeInstances.get()) { + instance->resetTemporaryStackLimit(cx); + } +} +#endif // ENABLE_WASM_JSPI |