diff --git a/src/Microsoft.AspNetCore.Blazor.Browser.JS/Microsoft.AspNetCore.Blazor.Browser.JS.csproj b/src/Microsoft.AspNetCore.Blazor.Browser.JS/Microsoft.AspNetCore.Blazor.Browser.JS.csproj
index 71ad62f790..9b25255af7 100644
--- a/src/Microsoft.AspNetCore.Blazor.Browser.JS/Microsoft.AspNetCore.Blazor.Browser.JS.csproj
+++ b/src/Microsoft.AspNetCore.Blazor.Browser.JS/Microsoft.AspNetCore.Blazor.Browser.JS.csproj
@@ -24,11 +24,11 @@
-
+
-
+
diff --git a/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Boot.ts b/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Boot.WebAssembly.ts
similarity index 73%
rename from src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Boot.ts
rename to src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Boot.WebAssembly.ts
index a483e8283d..364d896ed1 100644
--- a/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Boot.ts
+++ b/src/Microsoft.AspNetCore.Blazor.Browser.JS/src/Boot.WebAssembly.ts
@@ -1,9 +1,20 @@
import '../../Microsoft.JSInterop/JavaScriptRuntime/src/Microsoft.JSInterop';
-import { platform } from './Environment';
-import { getAssemblyNameFromUrl } from './Platform/Url';
import './GlobalExports';
+import * as Environment from './Environment';
+import { monoPlatform } from './Platform/Mono/MonoPlatform';
+import { getAssemblyNameFromUrl } from './Platform/Url';
+import { renderBatch } from './Rendering/Renderer';
+import { RenderBatch } from './Rendering/RenderBatch/RenderBatch';
+import { SharedMemoryRenderBatch } from './Rendering/RenderBatch/SharedMemoryRenderBatch';
+import { Pointer } from './Platform/Platform';
async function boot() {
+ // Configure environment for execution under Mono WebAssembly with shared-memory rendering
+ const platform = Environment.setPlatform(monoPlatform);
+ window['Blazor']._internal.renderBatch = (browserRendererId: number, batchAddress: Pointer) => {
+ renderBatch(browserRendererId, new SharedMemoryRenderBatch(batchAddress));
+ };
+
// Read startup config from the