From dadc3b49dc7e486a165dee1dc0c1a95256e7563c Mon Sep 17 00:00:00 2001 From: pavelsavara Date: Wed, 17 Dec 2025 20:01:47 +0100 Subject: [PATCH 1/5] simplify internal switches --- src/libraries/sendtohelix-browser.targets | 2 +- src/mono/browser/runtime/loader/run.ts | 119 ------------------ src/mono/browser/runtime/types/internal.ts | 1 - src/mono/browser/test-main.js | 23 ++-- src/mono/sample/wasm/Directory.Build.targets | 5 + .../wasm/browser-advanced/wwwroot/main.js | 2 +- .../sample/wasm/browser-bench/wwwroot/main.js | 3 +- .../wasm/browser-eventpipe/wwwroot/main.js | 3 +- .../wasm/browser-logprofile/wwwroot/main.js | 9 +- .../wasm/browser-profile/wwwroot/main.js | 4 +- .../wasm/browser-shutdown/wwwroot/main.js | 16 +-- .../wasm/browser-threads/wwwroot/main.js | 6 +- src/mono/sample/wasm/browser/wwwroot/main.js | 5 +- .../Templates/WasmTemplateTestsBase.cs | 4 +- .../WasmBasicTestApp/App/wwwroot/main.js | 7 +- .../WasmBrowserClient/wwwroot/main.js | 4 +- .../WebAssembly/Browser/HotReload/main.js | 2 +- 17 files changed, 46 insertions(+), 169 deletions(-) diff --git a/src/libraries/sendtohelix-browser.targets b/src/libraries/sendtohelix-browser.targets index 7c37ece047371f..0132403a025950 100644 --- a/src/libraries/sendtohelix-browser.targets +++ b/src/libraries/sendtohelix-browser.targets @@ -246,7 +246,7 @@ <_WasmSampleZipFile Condition="'$(Scenario)' == 'WasmTestOnV8'" Include="$(TestArchiveRoot)runonly/**/*.Console.V8.*.Sample.zip" /> <_WasmSampleZipFile Condition="'$(Scenario)' == 'WasmTestOnChrome'" Include="$(TestArchiveRoot)runonly/**/*.Browser.*.Sample.zip" /> - diff --git a/src/mono/browser/runtime/loader/run.ts b/src/mono/browser/runtime/loader/run.ts index 307c2bef3a0557..a1bed8990aa1a9 100644 --- a/src/mono/browser/runtime/loader/run.ts +++ b/src/mono/browser/runtime/loader/run.ts @@ -32,125 +32,6 @@ export class HostBuilder implements DotnetHostBuilder { } } - // internal - withOnConfigLoaded (onConfigLoaded: (config: MonoConfig) => void | Promise): DotnetHostBuilder { - try { - deep_merge_module(emscriptenModule, { - onConfigLoaded - }); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - - // internal - withConsoleForwarding (): DotnetHostBuilder { - try { - deep_merge_config(monoConfig, { - forwardConsoleLogsToWS: true - }); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - - // internal - withExitOnUnhandledError (): DotnetHostBuilder { - try { - deep_merge_config(monoConfig, { - exitOnUnhandledError: true - }); - installUnhandledErrorHandler(); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - - // internal - withAsyncFlushOnExit (): DotnetHostBuilder { - try { - deep_merge_config(monoConfig, { - asyncFlushOnExit: true - }); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - - // internal - withExitCodeLogging (): DotnetHostBuilder { - try { - deep_merge_config(monoConfig, { - logExitCode: true - }); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - - // internal - withElementOnExit (): DotnetHostBuilder { - try { - deep_merge_config(monoConfig, { - appendElementOnExit: true - }); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - - // internal - withInteropCleanupOnExit (): DotnetHostBuilder { - try { - deep_merge_config(monoConfig, { - interopCleanupOnExit: true - }); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - - // internal - withDumpThreadsOnNonZeroExit (): DotnetHostBuilder { - try { - deep_merge_config(monoConfig, { - dumpThreadsOnNonZeroExit: true - }); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - - // internal - // todo fallback later by debugLevel - withWaitingForDebugger (level: number): DotnetHostBuilder { - try { - deep_merge_config(monoConfig, { - waitForDebugger: level - }); - return this; - } catch (err) { - mono_exit(1, err); - throw err; - } - } - withInterpreterPgo (value: boolean, autoSaveDelay?: number): DotnetHostBuilder { try { deep_merge_config(monoConfig, { diff --git a/src/mono/browser/runtime/types/internal.ts b/src/mono/browser/runtime/types/internal.ts index 29c6691ffd274e..55db40bc66a298 100644 --- a/src/mono/browser/runtime/types/internal.ts +++ b/src/mono/browser/runtime/types/internal.ts @@ -73,7 +73,6 @@ export function coerceNull (ptr: T | n // when adding new fields, please consider if it should be impacting the config hash. If not, please drop it in the getCacheKey() export type MonoConfigInternal = MonoConfig & { - linkerEnabled?: boolean, assets?: AssetEntryInternal[], runtimeOptions?: string[], // array of runtime options as strings aotProfilerOptions?: AOTProfilerOptions, // dictionary-style Object. If omitted, aot profiler will not be initialized. diff --git a/src/mono/browser/test-main.js b/src/mono/browser/test-main.js index 872e14a2ce4cd9..ea0fb074345956 100644 --- a/src/mono/browser/test-main.js +++ b/src/mono/browser/test-main.js @@ -256,20 +256,20 @@ function configureRuntime(dotnet, runArgs) { .withVirtualWorkingDirectory(runArgs.workingDirectory) .withEnvironmentVariables(runArgs.environmentVariables) .withDiagnosticTracing(runArgs.diagnosticTracing) - .withExitOnUnhandledError() - .withExitCodeLogging() - .withElementOnExit() - .withInteropCleanupOnExit() - .withDumpThreadsOnNonZeroExit() .withConfig({ + appendElementOnExit: true, + logExitCode: true, + exitOnUnhandledError: true, + forwardConsoleLogsToWS: runArgs.forwardConsole, + asyncFlushOnExit: ENVIRONMENT_IS_NODE, + interopCleanupOnExit: true, + dumpThreadsOnNonZeroExit: true, loadAllSatelliteResources: true, jsThreadBlockingMode: "ThrowWhenBlockingWait", }); if (ENVIRONMENT_IS_NODE) { - dotnet - .withEnvironmentVariable("NodeJSPlatform", process.platform) - .withAsyncFlushOnExit(); + dotnet.withEnvironmentVariable("NodeJSPlatform", process.platform); const modulesToLoad = runArgs.environmentVariables["NPM_MODULES"]; if (modulesToLoad) { @@ -296,10 +296,9 @@ function configureRuntime(dotnet, runArgs) { } if (runArgs.debugging) { dotnet.withDebugging(-1); - dotnet.withWaitingForDebugger(-1); - } - if (runArgs.forwardConsole) { - dotnet.withConsoleForwarding(); + dotnet.withConfig({ + waitForDebugger: -1 + }); } } diff --git a/src/mono/sample/wasm/Directory.Build.targets b/src/mono/sample/wasm/Directory.Build.targets index baa756debe46da..542a378baa0517 100644 --- a/src/mono/sample/wasm/Directory.Build.targets +++ b/src/mono/sample/wasm/Directory.Build.targets @@ -37,6 +37,11 @@ + + + + + { - // you can test abort of the startup by opening http://localhost:8000/?throwError=true - const params = new URLSearchParams(location.search); - if (params.get("throwError") === "true") { - throw new Error("Error thrown from OnConfigLoaded"); + .withConfig({ appendElementOnExit: true, exitOnUnhandledError: true, logExitCode: true }) + .withModuleConfig({ + onConfigLoaded: () => { + // you can test abort of the startup by opening http://localhost:8000/?throwError=true + const params = new URLSearchParams(location.search); + if (params.get("throwError") === "true") { + throw new Error("Error thrown from OnConfigLoaded"); + } } }) .create(); diff --git a/src/mono/sample/wasm/browser-threads/wwwroot/main.js b/src/mono/sample/wasm/browser-threads/wwwroot/main.js index ea97a5ce200c8c..9befe7d600c693 100644 --- a/src/mono/sample/wasm/browser-threads/wwwroot/main.js +++ b/src/mono/sample/wasm/browser-threads/wwwroot/main.js @@ -14,10 +14,10 @@ try { const { setModuleImports, getAssemblyExports, runMain } = await dotnet .withEnvironmentVariable("MONO_LOG_LEVEL", "debug") - .withElementOnExit() - .withExitCodeLogging() - .withExitOnUnhandledError() .withConfig({ + appendElementOnExit: true, + exitOnUnhandledError: true, + logExitCode: true, jsThreadBlockingMode: "WarnWhenBlockingWait", }) .create(); diff --git a/src/mono/sample/wasm/browser/wwwroot/main.js b/src/mono/sample/wasm/browser/wwwroot/main.js index 20fd268d65b9ac..f243debd089728 100644 --- a/src/mono/sample/wasm/browser/wwwroot/main.js +++ b/src/mono/sample/wasm/browser/wwwroot/main.js @@ -8,9 +8,8 @@ function displayMeaning(meaning) { } try { - const { setModuleImports } = await dotnet - .withElementOnExit() - .withExitOnUnhandledError() + const { setModuleImports, getAssemblyExports, runMain } = await dotnet + .withConfig({ appendElementOnExit: true, exitOnUnhandledError: true, forwardConsoleLogsToWS: true, logExitCode: true }) .create(); setModuleImports("main.js", { diff --git a/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs b/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs index 31b38d420d405a..4611da86805287 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs @@ -291,8 +291,8 @@ protected void UpdateBrowserMainJs(string? targetFramework = null, string runtim mainJsContent, ".create()", (targetFrameworkVersion.Major >= 8) - ? ".withConsoleForwarding().withElementOnExit().withExitCodeLogging().withExitOnUnhandledError().create()" - : ".withConsoleForwarding().withElementOnExit().withExitCodeLogging().create()" + ? ".withConfig({ forwardConsoleLogsToWS: true, appendElementOnExit: true, logExitCode: true, exitOnUnhandledError: true }).create()" + : ".withConfig({ forwardConsoleLogsToWS: true, appendElementOnExit: true, logExitCode: true }).create()" ); // dotnet.run() is used instead of runMain() in net9.0+ diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js index 74b9bed45db269..e5ca545909bf73 100644 --- a/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js +++ b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js @@ -21,10 +21,7 @@ function countChars(str) { } // Prepare base runtime parameters -dotnet - .withElementOnExit() - .withExitCodeLogging() - .withExitOnUnhandledError(); +dotnet.withConfig({ appendElementOnExit: true, exitOnUnhandledError: true, logExitCode: true }); const logLevel = params.get("MONO_LOG_LEVEL"); const logMask = params.get("MONO_LOG_MASK"); @@ -115,7 +112,7 @@ switch (testCase) { break; case "InterpPgoTest": dotnet - .withConsoleForwarding() + .withConfig({ forwardConsoleLogsToWS: true }) .withRuntimeOptions(['--interp-pgo-logging']) .withInterpreterPgo(true); break; diff --git a/src/mono/wasm/testassets/WasmOnAspNetCore/WasmBrowserClient/wwwroot/main.js b/src/mono/wasm/testassets/WasmOnAspNetCore/WasmBrowserClient/wwwroot/main.js index f182fd9eff9919..4aab08f736a7cc 100644 --- a/src/mono/wasm/testassets/WasmOnAspNetCore/WasmBrowserClient/wwwroot/main.js +++ b/src/mono/wasm/testassets/WasmOnAspNetCore/WasmBrowserClient/wwwroot/main.js @@ -5,9 +5,7 @@ import { dotnet, exit } from './_framework/dotnet.js' try { const dotnetRuntime = await dotnet - .withElementOnExit() - .withExitCodeLogging() - .withExitOnUnhandledError() + .withConfig({ appendElementOnExit: true, exitOnUnhandledError: true, logExitCode: true }) .create(); const config = dotnetRuntime.getConfig(); var url = window.location.origin + window.location.pathname; diff --git a/src/tests/FunctionalTests/WebAssembly/Browser/HotReload/main.js b/src/tests/FunctionalTests/WebAssembly/Browser/HotReload/main.js index b1ca242684f915..9c982accaac544 100644 --- a/src/tests/FunctionalTests/WebAssembly/Browser/HotReload/main.js +++ b/src/tests/FunctionalTests/WebAssembly/Browser/HotReload/main.js @@ -11,7 +11,7 @@ function wasm_exit(exit_code) { try { const { getAssemblyExports } = await dotnet - .withElementOnExit() + .withConfig({ appendElementOnExit: true }) .withEnvironmentVariable("DOTNET_MODIFIABLE_ASSEMBLIES", "debug") .create(); From 0607c35168b88a2c320ef1196409942da822cef8 Mon Sep 17 00:00:00 2001 From: Pavel Savara Date: Wed, 17 Dec 2025 21:00:18 +0100 Subject: [PATCH 2/5] fix --- src/mono/browser/runtime/loader/run.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mono/browser/runtime/loader/run.ts b/src/mono/browser/runtime/loader/run.ts index a1bed8990aa1a9..704cbe554649ae 100644 --- a/src/mono/browser/runtime/loader/run.ts +++ b/src/mono/browser/runtime/loader/run.ts @@ -304,6 +304,9 @@ export async function createEmscripten (moduleFactory: DotnetModuleConfig | ((ap mono_log_info(`starting script ${loaderHelpers.scriptUrl}`); mono_log_info(`starting in ${loaderHelpers.scriptDirectory}`); } + if (loaderHelpers.config.exitOnUnhandledError) { + loaderHelpers.installUnhandledErrorHandler(); + } registerEmscriptenExitHandlers(); From 5f5161accada426171e6394953da7163a4b3ac53 Mon Sep 17 00:00:00 2001 From: pavelsavara Date: Thu, 18 Dec 2025 09:53:28 +0100 Subject: [PATCH 3/5] fix --- src/mono/browser/runtime/loader/run.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/browser/runtime/loader/run.ts b/src/mono/browser/runtime/loader/run.ts index 704cbe554649ae..52472aa5d06006 100644 --- a/src/mono/browser/runtime/loader/run.ts +++ b/src/mono/browser/runtime/loader/run.ts @@ -305,7 +305,7 @@ export async function createEmscripten (moduleFactory: DotnetModuleConfig | ((ap mono_log_info(`starting in ${loaderHelpers.scriptDirectory}`); } if (loaderHelpers.config.exitOnUnhandledError) { - loaderHelpers.installUnhandledErrorHandler(); + installUnhandledErrorHandler(); } registerEmscriptenExitHandlers(); From 5e64f1239d0f5d2c9858f6898476e0ee941be4ba Mon Sep 17 00:00:00 2001 From: Pavel Savara Date: Thu, 18 Dec 2025 16:24:43 +0100 Subject: [PATCH 4/5] Update src/mono/sample/wasm/browser-bench/wwwroot/main.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/mono/sample/wasm/browser-bench/wwwroot/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/sample/wasm/browser-bench/wwwroot/main.js b/src/mono/sample/wasm/browser-bench/wwwroot/main.js index 628c271e15ea81..2182d9aa0f573a 100644 --- a/src/mono/sample/wasm/browser-bench/wwwroot/main.js +++ b/src/mono/sample/wasm/browser-bench/wwwroot/main.js @@ -229,7 +229,7 @@ try { // console to see statistics on how much code it generated and whether any new opcodes // are causing traces to fail to compile .withRuntimeOptions(["--jiterpreter-stats-enabled"]) - .withConfig({ exitOnUnhandledError: true, logExitCode: true }) + .withConfig({ exitOnUnhandledError: true, logExitCode: true, appendElementOnExit: true }) .create(); await mainApp.init(runtime); From 38715e598f6802b917a9f1985509fa04472e1133 Mon Sep 17 00:00:00 2001 From: pavelsavara Date: Thu, 18 Dec 2025 16:36:05 +0100 Subject: [PATCH 5/5] feedback --- .../InteropServices/JavaScript/SecondRuntimeTest.js | 2 +- src/libraries/sendtohelix-browser.targets | 2 +- src/mono/browser/runtime/interp-pgo.ts | 2 +- src/mono/browser/runtime/loader/exit.ts | 4 ++-- src/mono/browser/runtime/loader/run.ts | 2 +- src/mono/browser/runtime/loader/worker.ts | 2 +- src/mono/browser/runtime/pthreads/shared.ts | 2 +- src/mono/browser/runtime/types/internal.ts | 2 +- src/mono/browser/test-main.js | 2 +- .../build/Microsoft.NET.Sdk.WebAssembly.Browser.targets | 2 -- src/mono/sample/wasm/Directory.Build.targets | 5 ----- src/mono/sample/wasm/browser/wwwroot/main.js | 2 +- .../Wasm.Build.Tests/Templates/WasmTemplateTestsBase.cs | 4 ++-- .../wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js | 2 +- src/native/libs/Common/JavaScript/types/internal.ts | 5 +++-- .../BootJsonData.cs | 5 ----- .../GenerateWasmBootJson.cs | 7 ------- 17 files changed, 17 insertions(+), 35 deletions(-) diff --git a/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System/Runtime/InteropServices/JavaScript/SecondRuntimeTest.js b/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System/Runtime/InteropServices/JavaScript/SecondRuntimeTest.js index f711c31c93e27c..9eb5ac2e85c833 100644 --- a/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System/Runtime/InteropServices/JavaScript/SecondRuntimeTest.js +++ b/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System/Runtime/InteropServices/JavaScript/SecondRuntimeTest.js @@ -2,7 +2,7 @@ export async function runSecondRuntimeAndTestStaticState(guid) { const { dotnet: dotnet2 } = await import('./_framework/dotnet.js?instance=2-' + guid); const runtime2 = await dotnet2 .withConfig({ - forwardConsoleLogsToWS: false, + forwardConsole: false, diagnosticTracing: false, appendElementOnExit: false, logExitCode: false, diff --git a/src/libraries/sendtohelix-browser.targets b/src/libraries/sendtohelix-browser.targets index 0132403a025950..4490122a05e513 100644 --- a/src/libraries/sendtohelix-browser.targets +++ b/src/libraries/sendtohelix-browser.targets @@ -246,7 +246,7 @@ <_WasmSampleZipFile Condition="'$(Scenario)' == 'WasmTestOnV8'" Include="$(TestArchiveRoot)runonly/**/*.Console.V8.*.Sample.zip" /> <_WasmSampleZipFile Condition="'$(Scenario)' == 'WasmTestOnChrome'" Include="$(TestArchiveRoot)runonly/**/*.Browser.*.Sample.zip" /> - diff --git a/src/mono/browser/runtime/interp-pgo.ts b/src/mono/browser/runtime/interp-pgo.ts index 44ea0b0b74e684..88ffae28b4bf87 100644 --- a/src/mono/browser/runtime/interp-pgo.ts +++ b/src/mono/browser/runtime/interp-pgo.ts @@ -190,7 +190,7 @@ export async function getCacheKey (prefix: string): Promise { // timezone is part of env variables, so it is already in the hash // some things are not relevant for config hash - delete inputs.forwardConsoleLogsToWS; + delete inputs.forwardConsole; delete inputs.diagnosticTracing; delete inputs.appendElementOnExit; delete inputs.interopCleanupOnExit; diff --git a/src/mono/browser/runtime/loader/exit.ts b/src/mono/browser/runtime/loader/exit.ts index 8d0140038acceb..f213a2f7654ff5 100644 --- a/src/mono/browser/runtime/loader/exit.ts +++ b/src/mono/browser/runtime/loader/exit.ts @@ -279,12 +279,12 @@ function logOnExit (exit_code: number, reason: any) { } if (!ENVIRONMENT_IS_WORKER && loaderHelpers.config) { if (loaderHelpers.config.logExitCode) { - if (loaderHelpers.config.forwardConsoleLogsToWS) { + if (loaderHelpers.config.forwardConsole) { teardown_proxy_console("WASM EXIT " + exit_code); } else { mono_log_info_no_prefix("WASM EXIT " + exit_code); } - } else if (loaderHelpers.config.forwardConsoleLogsToWS) { + } else if (loaderHelpers.config.forwardConsole) { teardown_proxy_console(); } } diff --git a/src/mono/browser/runtime/loader/run.ts b/src/mono/browser/runtime/loader/run.ts index 52472aa5d06006..25ff48c5879a75 100644 --- a/src/mono/browser/runtime/loader/run.ts +++ b/src/mono/browser/runtime/loader/run.ts @@ -274,7 +274,7 @@ async function prepareEmscripten (moduleFactory: DotnetModuleConfig | ((api: Run return; } emscriptenPrepared = true; - if (ENVIRONMENT_IS_WEB && loaderHelpers.config.forwardConsoleLogsToWS && typeof globalThis.WebSocket != "undefined") { + if (ENVIRONMENT_IS_WEB && loaderHelpers.config.forwardConsole && typeof globalThis.WebSocket != "undefined") { setup_proxy_console("main", globalThis.console, globalThis.location.origin); } mono_assert(emscriptenModule, "Null moduleConfig"); diff --git a/src/mono/browser/runtime/loader/worker.ts b/src/mono/browser/runtime/loader/worker.ts index d14d862c05aa6c..c171211c0c6d8f 100644 --- a/src/mono/browser/runtime/loader/worker.ts +++ b/src/mono/browser/runtime/loader/worker.ts @@ -43,7 +43,7 @@ function onMonoConfigReceived (config: MonoConfigInternal, monoThreadInfo: PThre workerMonoConfigReceived = true; loaderHelpers.afterConfigLoaded.promise_control.resolve(loaderHelpers.config); - if (ENVIRONMENT_IS_WEB && config.forwardConsoleLogsToWS && typeof globalThis.WebSocket != "undefined") { + if (ENVIRONMENT_IS_WEB && config.forwardConsole && typeof globalThis.WebSocket != "undefined") { loaderHelpers.setup_proxy_console("worker-idle", console, globalThis.location.origin); } } diff --git a/src/mono/browser/runtime/pthreads/shared.ts b/src/mono/browser/runtime/pthreads/shared.ts index 69137957eeeebe..93e62b0a289191 100644 --- a/src/mono/browser/runtime/pthreads/shared.ts +++ b/src/mono/browser/runtime/pthreads/shared.ts @@ -52,7 +52,7 @@ export function update_thread_info (): void { monoThreadInfo.threadPrefix = `${hexPrefix}${hexPtr}-${threadType}`; loaderHelpers.set_thread_prefix(monoThreadInfo.threadPrefix!); - if (!loaderHelpers.config.forwardConsoleLogsToWS) { + if (!loaderHelpers.config.forwardConsole) { set_thread_prefix(monoThreadInfo.threadPrefix!); } diff --git a/src/mono/browser/runtime/types/internal.ts b/src/mono/browser/runtime/types/internal.ts index 55db40bc66a298..7f831e8bcde8d1 100644 --- a/src/mono/browser/runtime/types/internal.ts +++ b/src/mono/browser/runtime/types/internal.ts @@ -82,7 +82,7 @@ export type MonoConfigInternal = MonoConfig & { interopCleanupOnExit?: boolean dumpThreadsOnNonZeroExit?: boolean logExitCode?: boolean - forwardConsoleLogsToWS?: boolean, + forwardConsole?: boolean, asyncFlushOnExit?: boolean exitOnUnhandledError?: boolean loadAllSatelliteResources?: boolean diff --git a/src/mono/browser/test-main.js b/src/mono/browser/test-main.js index ea0fb074345956..c81416dfa151cf 100644 --- a/src/mono/browser/test-main.js +++ b/src/mono/browser/test-main.js @@ -260,7 +260,7 @@ function configureRuntime(dotnet, runArgs) { appendElementOnExit: true, logExitCode: true, exitOnUnhandledError: true, - forwardConsoleLogsToWS: runArgs.forwardConsole, + forwardConsole: runArgs.forwardConsole, asyncFlushOnExit: ENVIRONMENT_IS_NODE, interopCleanupOnExit: true, dumpThreadsOnNonZeroExit: true, diff --git a/src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets b/src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets index bad785110dabbf..0c1356bf99f28c 100644 --- a/src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets +++ b/src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets @@ -451,7 +451,6 @@ Copyright (c) .NET Foundation. All rights reserved. Endpoints="@(_WasmResolvedEndpoints)" DebugBuild="true" DebugLevel="$(WasmDebugLevel)" - LinkerEnabled="false" CacheBootResources="$(_BlazorCacheBootResources)" MergeWith="@(_WasmDotnetJsForBuild)" OutputPath="$(_WasmBuildBootJsonPath)" @@ -860,7 +859,6 @@ Copyright (c) .NET Foundation. All rights reserved. Endpoints="@(_WasmResolvedEndpointsForPublish)" DebugBuild="false" DebugLevel="$(WasmDebugLevel)" - LinkerEnabled="$(PublishTrimmed)" CacheBootResources="$(_BlazorCacheBootResources)" MergeWith="@(_WasmDotnetJsForPublish)" OutputPath="$(IntermediateOutputPath)$(_WasmPublishBootConfigFileName)" diff --git a/src/mono/sample/wasm/Directory.Build.targets b/src/mono/sample/wasm/Directory.Build.targets index 542a378baa0517..baa756debe46da 100644 --- a/src/mono/sample/wasm/Directory.Build.targets +++ b/src/mono/sample/wasm/Directory.Build.targets @@ -37,11 +37,6 @@ - - - - - = 8) - ? ".withConfig({ forwardConsoleLogsToWS: true, appendElementOnExit: true, logExitCode: true, exitOnUnhandledError: true }).create()" - : ".withConfig({ forwardConsoleLogsToWS: true, appendElementOnExit: true, logExitCode: true }).create()" + ? ".withConfig({ forwardConsole: true, appendElementOnExit: true, logExitCode: true, exitOnUnhandledError: true }).create()" + : ".withConfig({ forwardConsole: true, appendElementOnExit: true, logExitCode: true }).create()" ); // dotnet.run() is used instead of runMain() in net9.0+ diff --git a/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js index e5ca545909bf73..31744c560ae3b8 100644 --- a/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js +++ b/src/mono/wasm/testassets/WasmBasicTestApp/App/wwwroot/main.js @@ -112,7 +112,7 @@ switch (testCase) { break; case "InterpPgoTest": dotnet - .withConfig({ forwardConsoleLogsToWS: true }) + .withConfig({ forwardConsole: true }) .withRuntimeOptions(['--interp-pgo-logging']) .withInterpreterPgo(true); break; diff --git a/src/native/libs/Common/JavaScript/types/internal.ts b/src/native/libs/Common/JavaScript/types/internal.ts index f71ff8c3ba83e8..19205af0f74dfa 100644 --- a/src/native/libs/Common/JavaScript/types/internal.ts +++ b/src/native/libs/Common/JavaScript/types/internal.ts @@ -78,13 +78,14 @@ export interface AssetEntryInternal extends AssetEntry { } export type LoaderConfigInternal = LoaderConfig & { - linkerEnabled?: boolean, runtimeOptions?: string[], // array of runtime options as strings appendElementOnExit?: boolean logExitCode?: boolean exitOnUnhandledError?: boolean loadAllSatelliteResources?: boolean - resourcesHash?: string, + forwardConsole?: boolean, + asyncFlushOnExit?: boolean + interopCleanupOnExit?: boolean }; diff --git a/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/BootJsonData.cs b/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/BootJsonData.cs index 16563259a399d9..fb257d0669ab9d 100644 --- a/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/BootJsonData.cs +++ b/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/BootJsonData.cs @@ -58,11 +58,6 @@ public class BootJsonData /// public int debugLevel { get; set; } - /// - /// Gets a value that determines if the linker is enabled. - /// - public bool? linkerEnabled { get; set; } - /// /// Config files for the application /// diff --git a/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/GenerateWasmBootJson.cs b/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/GenerateWasmBootJson.cs index f7021c6f6f67c1..5906e1f009e1f4 100644 --- a/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/GenerateWasmBootJson.cs +++ b/src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/GenerateWasmBootJson.cs @@ -42,9 +42,6 @@ public class GenerateWasmBootJson : Task public string DebugLevel { get; set; } - [Required] - public bool LinkerEnabled { get; set; } - [Required] public bool CacheBootResources { get; set; } @@ -134,14 +131,10 @@ private void WriteBootConfig(string entryAssemblyName) if (CacheBootResources) result.cacheBootResources = CacheBootResources; } - - if (LinkerEnabled) - result.linkerEnabled = LinkerEnabled; } else { result.cacheBootResources = CacheBootResources; - result.linkerEnabled = LinkerEnabled; result.config = new(); result.debugBuild = DebugBuild; result.entryAssembly = entryAssemblyName;