From d945193d92aa892468ae9a61403b00f0443e308e Mon Sep 17 00:00:00 2001 From: Pavel Savara Date: Mon, 15 May 2023 10:53:51 +0200 Subject: [PATCH 1/3] disable enablePerfMeasure by default --- src/mono/wasm/runtime/globals.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mono/wasm/runtime/globals.ts b/src/mono/wasm/runtime/globals.ts index c3523c1b36915a..60e7cdd4f9ff44 100644 --- a/src/mono/wasm/runtime/globals.ts +++ b/src/mono/wasm/runtime/globals.ts @@ -46,7 +46,6 @@ export function setRuntimeGlobals(globalObjects: GlobalObjects) { Object.assign(runtimeHelpers, { mono_wasm_bindings_is_ready: false, javaScriptExports: {} as any, - enablePerfMeasure: true, allAssetsInMemory: createPromiseController(), dotnetReady: createPromiseController(), memorySnapshotSkippedOrDone: createPromiseController(), From 36628ce40bf61f5c9cfef9fa6ea5f99928a1995d Mon Sep 17 00:00:00 2001 From: pavelsavara Date: Mon, 15 May 2023 14:58:22 +0200 Subject: [PATCH 2/3] fixed wrong order of config initialization --- src/mono/wasm/runtime/globals.ts | 3 +-- src/mono/wasm/runtime/loader/config.ts | 1 + src/mono/wasm/runtime/loader/globals.ts | 15 +++++++++++++++ src/mono/wasm/runtime/loader/run.ts | 15 ++------------- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/mono/wasm/runtime/globals.ts b/src/mono/wasm/runtime/globals.ts index 60e7cdd4f9ff44..91b4248b7ca4a1 100644 --- a/src/mono/wasm/runtime/globals.ts +++ b/src/mono/wasm/runtime/globals.ts @@ -32,6 +32,7 @@ export function passEmscriptenInternals(internals: EmscriptenInternals): void { runtimeHelpers.ExitStatus = internals.ExitStatus; } +// NOTE: this is called AFTER the config is loaded export function setRuntimeGlobals(globalObjects: GlobalObjects) { if (_runtimeModuleLoaded) { throw new Error("Runtime module already loaded"); @@ -44,8 +45,6 @@ export function setRuntimeGlobals(globalObjects: GlobalObjects) { exportedRuntimeAPI = globalObjects.api; Object.assign(runtimeHelpers, { - mono_wasm_bindings_is_ready: false, - javaScriptExports: {} as any, allAssetsInMemory: createPromiseController(), dotnetReady: createPromiseController(), memorySnapshotSkippedOrDone: createPromiseController(), diff --git a/src/mono/wasm/runtime/loader/config.ts b/src/mono/wasm/runtime/loader/config.ts index 655f250a5c4abe..715503b0799f4d 100644 --- a/src/mono/wasm/runtime/loader/config.ts +++ b/src/mono/wasm/runtime/loader/config.ts @@ -35,6 +35,7 @@ export function deep_merge_module(target: DotnetModuleInternal, source: DotnetMo return Object.assign(target, providedConfig); } +// NOTE: this is called before setRuntimeGlobals export function normalizeConfig() { // normalize const config = loaderHelpers.config; diff --git a/src/mono/wasm/runtime/loader/globals.ts b/src/mono/wasm/runtime/loader/globals.ts index f221d467e3b82c..0a0f14855501be 100644 --- a/src/mono/wasm/runtime/loader/globals.ts +++ b/src/mono/wasm/runtime/loader/globals.ts @@ -19,6 +19,18 @@ export let exportedRuntimeAPI: RuntimeAPI = null as any; export let INTERNAL: any; export let _loaderModuleLoaded = false; // please keep it in place also as rollup guard +export const globalObjectsRoot: GlobalObjects = { + mono: {}, + binding: {}, + internal: {}, + module: {}, + loaderHelpers: {}, + runtimeHelpers: {}, + api: {} +} as any; + +setLoaderGlobals(globalObjectsRoot); + export function setLoaderGlobals( globalObjects: GlobalObjects, ) { @@ -39,7 +51,10 @@ export function setLoaderGlobals( config: { environmentVariables: {} } }); Object.assign(runtimeHelpers, { + mono_wasm_bindings_is_ready: false, + javaScriptExports: {} as any, config: globalObjects.module.config, + enablePerfMeasure: true, diagnosticTracing: false, }); Object.assign(loaderHelpers, { diff --git a/src/mono/wasm/runtime/loader/run.ts b/src/mono/wasm/runtime/loader/run.ts index 5eebdeef4ac93d..3f49a8f7676ba8 100644 --- a/src/mono/wasm/runtime/loader/run.ts +++ b/src/mono/wasm/runtime/loader/run.ts @@ -2,9 +2,9 @@ // The .NET Foundation licenses this file to you under the MIT license. import type { MonoConfig, DotnetHostBuilder, DotnetModuleConfig, RuntimeAPI, WebAssemblyStartOptions } from "../types"; -import type { MonoConfigInternal, GlobalObjects, EmscriptenModuleInternal, RuntimeModuleExportsInternal, NativeModuleExportsInternal, } from "../types/internal"; +import type { MonoConfigInternal, EmscriptenModuleInternal, RuntimeModuleExportsInternal, NativeModuleExportsInternal, } from "../types/internal"; -import { ENVIRONMENT_IS_NODE, ENVIRONMENT_IS_WEB, exportedRuntimeAPI, setLoaderGlobals } from "./globals"; +import { ENVIRONMENT_IS_NODE, ENVIRONMENT_IS_WEB, exportedRuntimeAPI, globalObjectsRoot } from "./globals"; import { deep_merge_config, deep_merge_module, mono_wasm_load_config } from "./config"; import { mono_exit } from "./exit"; import { setup_proxy_console } from "./logging"; @@ -15,17 +15,6 @@ import { init_globalization } from "./icu"; import { setupPreloadChannelToMainThread } from "./worker"; -export const globalObjectsRoot: GlobalObjects = { - mono: {}, - binding: {}, - internal: {}, - module: {}, - loaderHelpers: {}, - runtimeHelpers: {}, - api: {} -} as any; - -setLoaderGlobals(globalObjectsRoot); const module = globalObjectsRoot.module; const monoConfig = module.config as MonoConfigInternal; From 4b5d339d19816b53a4e92e2d1c6e558db2d8882b Mon Sep 17 00:00:00 2001 From: pavelsavara Date: Mon, 15 May 2023 15:17:54 +0200 Subject: [PATCH 3/3] fix --- src/mono/wasm/runtime/loader/globals.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mono/wasm/runtime/loader/globals.ts b/src/mono/wasm/runtime/loader/globals.ts index 0a0f14855501be..6cebb54eaa428a 100644 --- a/src/mono/wasm/runtime/loader/globals.ts +++ b/src/mono/wasm/runtime/loader/globals.ts @@ -54,7 +54,6 @@ export function setLoaderGlobals( mono_wasm_bindings_is_ready: false, javaScriptExports: {} as any, config: globalObjects.module.config, - enablePerfMeasure: true, diagnosticTracing: false, }); Object.assign(loaderHelpers, {