From 41160004e4731ced165ac6f4472c309f6c7515e1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Fi=C5=A1era?= Date: Fri, 17 Mar 2023 17:35:52 +0100 Subject: [PATCH] [wasm] Fix dotnet.withRuntimeOptions (#83586) --- src/mono/wasm/runtime/run-outer.ts | 3 ++- .../WebAssembly/Browser/RuntimeConfig/main.js | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mono/wasm/runtime/run-outer.ts b/src/mono/wasm/runtime/run-outer.ts index c4931752340..b092418135d 100644 --- a/src/mono/wasm/runtime/run-outer.ts +++ b/src/mono/wasm/runtime/run-outer.ts @@ -243,7 +243,8 @@ class HostBuilder implements DotnetHostBuilder { withRuntimeOptions(runtimeOptions: string[]): DotnetHostBuilder { try { mono_assert(runtimeOptions && Array.isArray(runtimeOptions), "must be array of strings"); - Object.assign(this.moduleConfig, { runtimeOptions }); + const configInternal = this.moduleConfig.config as MonoConfigInternal; + configInternal.runtimeOptions = [...(configInternal.runtimeOptions || []), ...(runtimeOptions|| [])]; return this; } catch (err) { mono_exit(1, err); diff --git a/src/tests/FunctionalTests/WebAssembly/Browser/RuntimeConfig/main.js b/src/tests/FunctionalTests/WebAssembly/Browser/RuntimeConfig/main.js index 3b44c6f1522..249aa44c414 100644 --- a/src/tests/FunctionalTests/WebAssembly/Browser/RuntimeConfig/main.js +++ b/src/tests/FunctionalTests/WebAssembly/Browser/RuntimeConfig/main.js @@ -10,13 +10,18 @@ function wasm_exit(exit_code) { } try { - const { getAssemblyExports } = await dotnet.create(); + const { getAssemblyExports, INTERNAL } = await dotnet.withRuntimeOptions(["--jiterpreter-stats-enabled"]).create(); const exports = await getAssemblyExports("WebAssembly.Browser.RuntimeConfig.Test.dll"); const testMeaning = exports.Sample.Test.TestMeaning; const ret = testMeaning(); document.getElementById("out").innerHTML = `${ret}`; console.debug(`ret: ${ret}`); + // Test runtimeOptions were applied + if (!INTERNAL.jiterpreter_get_options().enableStats) { + throw new Error("RuntimeOptions not propagated") + } + let exit_code = ret; wasm_exit(exit_code); } catch (err) { -- 2.34.1