diff --git a/.devcontainer/scripts/onCreateCommand.sh b/.devcontainer/scripts/onCreateCommand.sh
index c47eb6b7a0d1d1..1fcee604b351ae 100755
--- a/.devcontainer/scripts/onCreateCommand.sh
+++ b/.devcontainer/scripts/onCreateCommand.sh
@@ -15,7 +15,7 @@ case "$opt" in
     wasm)
         # prebuild for WASM, so it is ready for wasm development
         make -C src/mono/wasm provision-wasm
-        export EMSDK_PATH=$PWD/src/mono/wasm/emsdk
+        export EMSDK_PATH=$PWD/src/mono/browser/emsdk
         ./build.sh mono+libs -os browser -c Release
 
         # install dotnet-serve for running wasm samples
diff --git a/Directory.Build.props b/Directory.Build.props
index ab7ccdb43bccf6..56ad4fbd220f97 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -152,6 +152,9 @@
     <IbcOptimizationDataDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'ibc'))</IbcOptimizationDataDir>
     <MibcOptimizationDataDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'mibc'))</MibcOptimizationDataDir>
     <DocsDir>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'docs'))</DocsDir>
+    <BrowserProjectRoot>$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'browser'))</BrowserProjectRoot>
+    <WasmProjectRoot>$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm'))</WasmProjectRoot>
+    <WasiProjectRoot>$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasi'))</WasiProjectRoot>
 
     <AppleAppBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AppleAppBuilder', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)'))</AppleAppBuilderDir>
     <AndroidAppBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AndroidAppBuilder', '$(TasksConfiguration)', '$(NetCoreAppToolCurrent)', 'publish'))</AndroidAppBuilderDir>
@@ -183,7 +186,7 @@
     <WasmtimeDir Condition="'$(WasmtimeDir)' == '' and '$(WASMTIME_PATH)' != '' and Exists($(WASMTIME_PATH))">$(WASMTIME_PATH)</WasmtimeDir>
     <WasmtimeDir Condition="'$(WasmtimeDir)' == ''">$([MSBuild]::NormalizeDirectory($(ArtifactsObjDir), 'wasmtime'))</WasmtimeDir>
     <InstallWasmtimeForTests Condition="'$(InstallWasmtimeForTests)' == '' and !Exists($(WasmtimeDir))">true</InstallWasmtimeForTests>
-    <WasmCommonTargetsPath>$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'build'))</WasmCommonTargetsPath>
+    <WasmCommonTargetsPath>$([MSBuild]::NormalizeDirectory($(WasmProjectRoot), 'build'))</WasmCommonTargetsPath>
   </PropertyGroup>
 
   <PropertyGroup Label="CalculatePortableBuild">
diff --git a/eng/Subsets.props b/eng/Subsets.props
index 18e7ebd2678e2d..0f78725c3af988 100644
--- a/eng/Subsets.props
+++ b/eng/Subsets.props
@@ -473,11 +473,11 @@
 
   <ItemGroup Condition="$(_subset.Contains('+mono.wasmruntime+'))">
     <ProjectToBuild Include="$(LibrariesProjectRoot)\System.Runtime.InteropServices.JavaScript\src\System.Runtime.InteropServices.JavaScript.csproj" Category="mono" />
-    <ProjectToBuild Include="$(MonoProjectRoot)wasm\wasm.proj" Category="mono" />
+    <ProjectToBuild Include="$(BrowserProjectRoot)browser.proj" Category="mono" />
   </ItemGroup>
 
   <ItemGroup Condition="$(_subset.Contains('+mono.wasiruntime+'))">
-    <ProjectToBuild Include="$(MonoProjectRoot)wasi\wasi.proj" Category="mono" />
+    <ProjectToBuild Include="$(WasiProjectRoot)wasi.proj" Category="mono" />
   </ItemGroup>
 
   <ItemGroup Condition="$(_subset.Contains('+libs.pretest+'))">
diff --git a/eng/native/gen-buildsys.cmd b/eng/native/gen-buildsys.cmd
index 1c8768b93d7d7c..f67f17b8d47942 100644
--- a/eng/native/gen-buildsys.cmd
+++ b/eng/native/gen-buildsys.cmd
@@ -45,12 +45,12 @@ if /i "%__Arch%" == "wasm" (
     )
     if /i "%__Os%" == "browser" (
         if "%EMSDK_PATH%" == "" (
-            if not exist "%__repoRoot%\src\mono\wasm\emsdk" (
+            if not exist "%__repoRoot%\src\mono\browser\emsdk" (
                 echo Error: Should set EMSDK_PATH environment variable pointing to emsdk root.
                 exit /B 1
             )
 
-            set "EMSDK_PATH=%__repoRoot%\src\mono\wasm\emsdk"
+            set "EMSDK_PATH=%__repoRoot%\src\mono\browser\emsdk"
         )
         :: replace backslash with forward slash and append last slash
         set "EMSDK_PATH=!EMSDK_PATH:\=/!"
diff --git a/eng/pipelines/common/evaluate-default-paths.yml b/eng/pipelines/common/evaluate-default-paths.yml
index 323e45c39f9d10..42c7e53735b0bd 100644
--- a/eng/pipelines/common/evaluate-default-paths.yml
+++ b/eng/pipelines/common/evaluate-default-paths.yml
@@ -10,6 +10,7 @@ parameters:
         eng/testing/ChromeVersions.props
         eng/testing/WasmRunner*
         eng/testing/WasiRunner*
+        eng/testing/scenarios/BuildWasiAppsJobsList.txt
         eng/testing/scenarios/BuildWasmAppsJobsList.txt
         eng/testing/tests.browser.targets
         eng/testing/tests.was*.targets
@@ -26,6 +27,7 @@ parameters:
         src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/*
         src/mono/nuget/Microsoft.NET.Workload*
         src/mono/sample/wasm/*
+        src/mono/browser/*
         src/mono/wasi/*
         src/mono/wasm/*
         src/mono/mono/mini/interp/jiterpreter*
@@ -203,6 +205,7 @@ jobs:
       include:
       - eng/Version.Details.xml
       - eng/Versions.props
+      - eng/testing/scenarios/BuildWasiAppsJobsList.txt
       - eng/testing/scenarios/BuildWasmAppsJobsList.txt
       - eng/testing/tests.browser.targets
       - eng/testing/tests.was*.targets
@@ -223,10 +226,11 @@ jobs:
       - src/mono/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/*
       - src/mono/nuget/Microsoft.NET.Workload*
       - src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/*
+      - src/mono/browser/build/*
+      - src/mono/browser/emscripten-version.txt
+      - src/mono/browser/runtime/*
       - src/mono/wasm/build/*
-      - src/mono/wasm/emscripten-version.txt
       - src/mono/wasm/host/*
-      - src/mono/wasm/runtime/*
       - src/mono/wasm/templates/*
       - src/mono/wasm/testassets/*
       - src/mono/wasm/Wasm.Build.Tests/*
@@ -249,8 +253,8 @@ jobs:
       - src/libraries/System.Runtime.InteropServices/*
       - src/libraries/System.Runtime.InteropServices.JavaScript/*
       - src/mono/mono/*
-      - src/mono/wasm/debugger/*
-      - src/mono/wasm/runtime/*
+      - src/mono/browser/debugger/*
+      - src/mono/browser/runtime/*
       - ${{ parameters._const_paths._wasm_src_native }}
       - ${{ parameters._const_paths._wasm_pipelines }}
       exclude:
@@ -289,10 +293,11 @@ jobs:
       # other paths that should also trigger wasm jobs
       - src/mono/*
       exclude:
+      - eng/testing/scenarios/BuildWasiAppsJobsList.txt
       - eng/testing/scenarios/BuildWasmAppsJobsList.txt
       - eng/testing/workloads-testing.targets
       - src/mono/mono/component/mini-wasm-debugger.c
-      - src/mono/wasm/debugger/*
+      - src/mono/browser/debugger/*
       - src/mono/wasm/host/*
       - src/mono/wasm/templates/*
       - src/mono/wasm/testassets/*
diff --git a/eng/testing/linker/project.csproj.template b/eng/testing/linker/project.csproj.template
index 56dfb57d821f6d..f4177ee854261f 100644
--- a/eng/testing/linker/project.csproj.template
+++ b/eng/testing/linker/project.csproj.template
@@ -33,6 +33,9 @@
     <!-- wasm specific -->
     <MonoAOTCompilerDir>{MonoAOTCompilerDir}</MonoAOTCompilerDir>
     <MonoProjectRoot>{MonoProjectRoot}</MonoProjectRoot>
+    <BrowserProjectRoot>{BrowserProjectRoot}</BrowserProjectRoot>
+    <WasmProjectRoot>{WasmProjectRoot}</WasmProjectRoot>
+    <WasiProjectRoot>{WasiProjectRoot}</WasiProjectRoot>
     <MonoAOTCompilerTasksAssemblyPath>{MonoAOTCompilerTasksAssemblyPath}</MonoAOTCompilerTasksAssemblyPath>
     <WasmAppBuilderTasksAssemblyPath>{WasmAppBuilderTasksAssemblyPath}</WasmAppBuilderTasksAssemblyPath>
     <MonoTargetsTasksAssemblyPath>{MonoTargetsTasksAssemblyPath}</MonoTargetsTasksAssemblyPath>
diff --git a/eng/testing/linker/trimmingTests.targets b/eng/testing/linker/trimmingTests.targets
index 7ae7291d926631..a13c1a1250442a 100644
--- a/eng/testing/linker/trimmingTests.targets
+++ b/eng/testing/linker/trimmingTests.targets
@@ -103,6 +103,9 @@
                                                  .Replace('{RepositoryEngineeringDir}', '$(RepositoryEngineeringDir)')
                                                  .Replace('{MonoAOTCompilerDir}', '$(MonoAOTCompilerDir)')
                                                  .Replace('{MonoProjectRoot}', '$(MonoProjectRoot)')
+                                                 .Replace('{BrowserProjectRoot}', '$(BrowserProjectRoot)')
+                                                 .Replace('{WasmProjectRoot}', '$(WasmProjectRoot)')
+                                                 .Replace('{WasiProjectRoot}', '$(WasiProjectRoot)')
                                                  .Replace('{MonoAOTCompilerTasksAssemblyPath}', '$(MonoAOTCompilerTasksAssemblyPath)')
                                                  .Replace('{MonoTargetsTasksAssemblyPath}', '$(MonoTargetsTasksAssemblyPath)')
                                                  .Replace('{WasmAppBuilderTasksAssemblyPath}', '$(WasmAppBuilderTasksAssemblyPath)')
diff --git a/eng/testing/tests.browser.targets b/eng/testing/tests.browser.targets
index 0bc91c86726e4e..c1eaa6c0817db2 100644
--- a/eng/testing/tests.browser.targets
+++ b/eng/testing/tests.browser.targets
@@ -9,7 +9,7 @@
     <IsBrowserWasmProject Condition="'$(IsBrowserWasmProject)' == ''">true</IsBrowserWasmProject>
 
     <!-- set this when provisioning emsdk on CI -->
-    <EMSDK_PATH Condition="'$(EMSDK_PATH)' == '' and '$(ContinuousIntegrationBuild)' == 'true' and '$(MonoProjectRoot)' != ''">$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'emsdk'))</EMSDK_PATH>
+    <EMSDK_PATH Condition="'$(EMSDK_PATH)' == '' and '$(ContinuousIntegrationBuild)' == 'true' and '$(MonoProjectRoot)' != ''">$([MSBuild]::NormalizeDirectory($(BrowserProjectRoot), 'emsdk'))</EMSDK_PATH>
 
     <!--
       - For regular library tests, it will use the symbols file from the runtime pack.
@@ -60,7 +60,7 @@
 
       So, set those parameters explicitly here.
       -->
-    <_ExtraTrimmerArgs Condition="'$(WasmEnableLegacyJsInterop)' == 'false'">$(_ExtraTrimmerArgs) --substitutions &quot;$(MonoProjectRoot)\wasm\build\ILLink.Substitutions.LegacyJsInterop.xml&quot;</_ExtraTrimmerArgs>
+    <_ExtraTrimmerArgs Condition="'$(WasmEnableLegacyJsInterop)' == 'false'">$(_ExtraTrimmerArgs) --substitutions &quot;$(BrowserProjectRoot)build\ILLink.Substitutions.LegacyJsInterop.xml&quot;</_ExtraTrimmerArgs>
   </PropertyGroup>
 
 
@@ -150,9 +150,9 @@
   </PropertyGroup>
 
   <!-- Don't include InTree.props here, because the test projects themselves can set the target* properties -->
-  <Import Project="$(MonoProjectRoot)\wasm\build\BrowserWasmApp.props"
+  <Import Project="$(BrowserProjectRoot)build\BrowserWasmApp.props"
           Condition="'$(BuildAOTTestsOn)' == 'local'" />
-  <Import Project="$(MonoProjectRoot)\wasm\build\WasmApp.InTree.targets"
+  <Import Project="$(BrowserProjectRoot)build\WasmApp.InTree.targets"
           Condition="'$(BuildAOTTestsOn)' == 'local'" />
 
   <PropertyGroup Condition="'$(BuildAOTTestsOnHelix)' == 'true'">
diff --git a/eng/testing/tests.wasi.targets b/eng/testing/tests.wasi.targets
index 5ef7bb7deb3a77..9f4068a1187a94 100644
--- a/eng/testing/tests.wasi.targets
+++ b/eng/testing/tests.wasi.targets
@@ -73,9 +73,9 @@
   </PropertyGroup>
 
   <!-- Don't include InTree.props here, because the test projects themselves can set the target* properties -->
-  <Import Project="$(MonoProjectRoot)\wasi\build\WasiApp.props"
+  <Import Project="$(WasiProjectRoot)build\WasiApp.props"
           Condition="'$(BuildAOTTestsOn)' == 'local'" />
-  <Import Project="$(MonoProjectRoot)\wasi\build\WasiApp.InTree.targets"
+  <Import Project="$(WasiProjectRoot)build\WasiApp.InTree.targets"
           Condition="'$(BuildAOTTestsOn)' == 'local'" />
 
   <PropertyGroup Condition="'$(BuildAOTTestsOnHelix)' == 'true'">
diff --git a/eng/testing/tests.wasm.targets b/eng/testing/tests.wasm.targets
index 5bf5b548b647e2..2d7ff9622aa6d7 100644
--- a/eng/testing/tests.wasm.targets
+++ b/eng/testing/tests.wasm.targets
@@ -2,7 +2,6 @@
   <!-- We need to set this in order to get extensibility on xunit category traits and other arguments we pass down to xunit via MSBuild properties -->
   <PropertyGroup>
     <IsWasmProject Condition="'$(IsWasmProject)' == ''">true</IsWasmProject>
-    <WasmSharedPath>$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'shared'))</WasmSharedPath>
     <WasmGenerateAppBundle Condition="'$(WasmGenerateAppBundle)' == ''">true</WasmGenerateAppBundle>
     <ArchiveTests Condition="'$(WasmBuildingForNestedPublish)' == 'true'">false</ArchiveTests>
     <BundleTestAppTargets>$(BundleTestAppTargets);BundleTestWasmApp</BundleTestAppTargets>
@@ -34,6 +33,9 @@
     <XUnitUseRandomizedTestOrderer Condition="'$(XUnitUseRandomizedTestOrderer)' == '' and '$(IsTestProject)' == 'true'">true</XUnitUseRandomizedTestOrderer>
     <WasmXHarnessTestsTimeout Condition="'$(WasmXHarnessTestsTimeout)' == ''">00:30:00</WasmXHarnessTestsTimeout>
     <RunWorkingDirectory>$(BundleDir)</RunWorkingDirectory>
+
+    <WasmCommonTargetsPath Condition="Exists('$(MSBuildThisFileDirectory)WasmApp.Common.props')">$(MSBuildThisFileDirectory)</WasmCommonTargetsPath>
+    <WasmCommonTargetsPath Condition="'$(WasmCommonTargetsPath)' == ''">$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'build'))</WasmCommonTargetsPath>
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(EnableAggressiveTrimming)' == 'true'">
@@ -62,8 +64,8 @@
 
       So, set those parameters explicitly here.
       -->
-    <_ExtraTrimmerArgs Condition="'$(WasmEnableSIMD)' == 'true' and '$(RunAOTCompilation)' == 'true'">$(_ExtraTrimmerArgs) --substitutions &quot;$(MonoProjectRoot)\wasm\build\ILLink.Substitutions.WasmIntrinsics.xml&quot;</_ExtraTrimmerArgs>
-    <_ExtraTrimmerArgs Condition="'$(WasmEnableSIMD)' != 'true'">$(_ExtraTrimmerArgs) --substitutions &quot;$(MonoProjectRoot)\wasm\build\ILLink.Substitutions.NoWasmIntrinsics.xml&quot;</_ExtraTrimmerArgs>
+    <_ExtraTrimmerArgs Condition="'$(WasmEnableSIMD)' == 'true' and '$(RunAOTCompilation)' == 'true'">$(_ExtraTrimmerArgs) --substitutions &quot;$(BrowserProjectRoot)build\ILLink.Substitutions.WasmIntrinsics.xml&quot;</_ExtraTrimmerArgs>
+    <_ExtraTrimmerArgs Condition="'$(WasmEnableSIMD)' != 'true'">$(_ExtraTrimmerArgs) --substitutions &quot;$(BrowserProjectRoot)build\ILLink.Substitutions.NoWasmIntrinsics.xml&quot;</_ExtraTrimmerArgs>
   </PropertyGroup>
 
   <ItemGroup>
@@ -108,9 +110,9 @@
       <BundleFiles Include="@(WasmAssembliesToBundle)"          TargetDir="publish\%(WasmAssembliesToBundle.RecursiveDir)" />
       <BundleFiles Include="$(RuntimeConfigFilePath)"           TargetDir="publish" />
 
-      <BundleFiles Include="$(WasmSharedPath)data\aot-tests\*"  TargetDir="publish" />
+      <BundleFiles Include="$(WasmProjectRoot)data\aot-tests\*" TargetDir="publish" />
       <!-- FIXME: what would be the correct place to do this? -->
-      <BundleFiles Include="$(MonoProjectRoot)src\mono\wasm\build\WasmApp.Common*"  TargetDir="publish" />
+      <BundleFiles Include="$(WasmProjectRoot)build\WasmApp.Common*"  TargetDir="publish" />
     </ItemGroup>
 
     <ItemGroup Condition="'$(DebuggerSupport)' == 'true'">
diff --git a/eng/testing/wasi-provisioning.targets b/eng/testing/wasi-provisioning.targets
index 23eece8d8018eb..ac602a21e250ff 100644
--- a/eng/testing/wasi-provisioning.targets
+++ b/eng/testing/wasi-provisioning.targets
@@ -1,6 +1,6 @@
 <Project>
   <PropertyGroup>
-    <_WasmtimeVersionFile>$(MonoProjectRoot)wasi/wasmtime-version.txt</_WasmtimeVersionFile>
+    <_WasmtimeVersionFile>$(WasiProjectRoot)wasmtime-version.txt</_WasmtimeVersionFile>
     <_WasmtimeStampPath>$(WasmtimeDir)\.stamp-wasmtime-version.txt</_WasmtimeStampPath>
     <InstallWasmtimeForTests Condition="'$(InstallWasmtimeForTests)' == '' and !Exists($(WasmtimeDir))">true</InstallWasmtimeForTests>
   </PropertyGroup>
@@ -30,6 +30,6 @@
     <MakeDir Directories="$(WasmtimeDir)" />
     <Exec Command="powershell -command &quot;Expand-Archive $(_DownloadedFile) . ; Move-Item wasmtime-v$(WasmtimeVersion)-x86_64-windows/*.* . &quot;" WorkingDirectory="$(WasmtimeDir)" Condition="'$(HostOS)' == 'windows'"/>
     <Exec Command="tar -Jx --strip-components=1 -f $(_DownloadedFile)" WorkingDirectory="$(WasmtimeDir)" Condition="'$(HostOS)' != 'windows'"/>
-    <Copy SourceFiles="$(MonoProjectRoot)wasi/wasmtime-version.txt" DestinationFiles="$(_WasmtimeStampPath)" SkipUnchangedFiles="true" />
+    <Copy SourceFiles="$(WasiProjectRoot)wasmtime-version.txt" DestinationFiles="$(_WasmtimeStampPath)" SkipUnchangedFiles="true" />
   </Target>
 </Project>
diff --git a/src/libraries/sendtohelix-browser.targets b/src/libraries/sendtohelix-browser.targets
index 75a41fcada10f8..f710cb8893df73 100644
--- a/src/libraries/sendtohelix-browser.targets
+++ b/src/libraries/sendtohelix-browser.targets
@@ -31,8 +31,6 @@
   <Import Project="$(MSBuildThisFileDirectory)sendtohelix-wasm.targets" />
 
   <PropertyGroup>
-    <WasmBuildTargetsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'build'))</WasmBuildTargetsDir>
-    <WasmSharedDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'shared'))</WasmSharedDir>
     <_ShippingPackagesPath>$([MSBuild]::NormalizeDirectory($(ArtifactsDir), 'packages', $(Configuration), 'Shipping'))</_ShippingPackagesPath>
     <WorkItemPrefix Condition="'$(WorkItemPrefix)' == '' and '$(Scenario)' != ''">$(Scenario)-</WorkItemPrefix>
 
@@ -51,7 +49,7 @@
     <EnableDefaultBuildHelixWorkItems>false</EnableDefaultBuildHelixWorkItems>
 
     <!-- on unix CI has emscripten provisioned in $(EMSDK_PATH) as `/usr/local/emscripten`. -->
-    <EMSDK_PATH Condition="$([MSBuild]::IsOSPlatform('WINDOWS')) and '$(EMSDK_PATH)' == ''">$(RepoRoot)src\mono\wasm\emsdk\</EMSDK_PATH>
+    <EMSDK_PATH Condition="$([MSBuild]::IsOSPlatform('WINDOWS')) and '$(EMSDK_PATH)' == ''">$(RepoRoot)src\mono\browser\emsdk\</EMSDK_PATH>
     <EmSdkDirForHelixPayload>$(HelixDependenciesStagingPath)\emsdk</EmSdkDirForHelixPayload>
     <DebuggerHost Condition="'$(DebuggerHost)' == ''">chrome</DebuggerHost>
 
@@ -203,8 +201,8 @@
       <HelixCorrelationPayload Include="$(WasmAppBuilderDir)"                    Destination="build/WasmAppBuilder" />
       <HelixCorrelationPayload Include="$(MonoAOTCompilerDir)"                   Destination="build/MonoAOTCompiler" />
       <HelixCorrelationPayload Include="$(MicrosoftNetCoreAppRuntimePackDir)"    Destination="build/microsoft.netcore.app.runtime.browser-wasm" />
-      <HelixCorrelationPayload Include="$(WasmBuildTargetsDir)"                  Destination="build/wasm" />
-      <HelixCorrelationPayload Include="$(WasmSharedDir)"                        Destination="build/wasm-shared" />
+      <HelixCorrelationPayload Include="$(BrowserBuildTargetsDir)"               Destination="build/wasm" />
+      <HelixCorrelationPayload Include="$(WasmBuildTargetsDir)"                  Destination="build/wasm-shared" />
       <HelixCorrelationPayload Include="$(MonoAotCrossDir)"                      Destination="build/cross" />
       <HelixCorrelationPayload Include="$(MonoTargetsTasksDir)"                  Destination="build/MonoTargetsTasks" />
     </ItemGroup>
diff --git a/src/libraries/sendtohelix-wasi.targets b/src/libraries/sendtohelix-wasi.targets
index 1b43c70725cc9e..bedb1d4192a8ab 100644
--- a/src/libraries/sendtohelix-wasi.targets
+++ b/src/libraries/sendtohelix-wasi.targets
@@ -48,8 +48,6 @@
 
     <WASI_SDK_PATH Condition="'$(WASI_SDK_PATH)' == ''">$(RepoRoot)src\mono\wasi\wasi-sdk\</WASI_SDK_PATH>
     <WasiBuildTargetsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasi', 'build'))</WasiBuildTargetsDir>
-    <WasmBuildTargetsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'build'))</WasmBuildTargetsDir>
-    <WasmSharedDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasm', 'shared'))</WasmSharedDir>
     <WasiSdkDirForHelixPayload>$(HelixDependenciesStagingPath)\wasi-sdk</WasiSdkDirForHelixPayload>
     <WasmtimeDirForHelixPayload>$(HelixDependenciesStagingPath)\wasmtime</WasmtimeDirForHelixPayload>
 
@@ -113,7 +111,7 @@
       <HelixCorrelationPayload Include="$(MicrosoftNetCoreAppRuntimePackDir)"    Destination="build/microsoft.netcore.app.runtime.wasi-wasm" />
 
       <HelixCorrelationPayload Include="$(WasiBuildTargetsDir)"       Destination="build/wasm" />
-      <HelixCorrelationPayload Include="$(WasmBuildTargetsDir)"       Destination="build/wasm" />
+      <HelixCorrelationPayload Include="$(WasmBuildTargetsDir)"       Destination="build/wasm-shared" />
       <HelixCorrelationPayload Include="$(WasmAppBuilderDir)"         Destination="build/WasmAppBuilder" />
       <HelixCorrelationPayload Include="$(MonoAOTCompilerDir)"        Destination="build/MonoAOTCompiler" />
       <HelixCorrelationPayload Include="$(MonoAotCrossDir)"           Destination="build/cross" />
@@ -121,7 +119,6 @@
 
       <HelixCorrelationPayload Include="$(_ShippingPackagesPath)"     Destination="built-nugets" Condition="'$(NeedsBuiltNugets)' == 'true'" />
       <HelixCorrelationPayload Include="$(WasiSdkDirForHelixPayload)" Destination="build/wasi-sdk" Condition="'$(NeedsWasiSdk)' == 'true'" />
-      <HelixCorrelationPayload Include="$(WasmSharedDir)"             Destination="build/wasm-shared" />
     </ItemGroup>
   </Target>
 
diff --git a/src/libraries/sendtohelix-wasm.targets b/src/libraries/sendtohelix-wasm.targets
index 2d9c7e5c77b7ec..12a797477222d3 100644
--- a/src/libraries/sendtohelix-wasm.targets
+++ b/src/libraries/sendtohelix-wasm.targets
@@ -2,6 +2,9 @@
   <PropertyGroup>
     <_workItemTimeout Condition="'$(Scenario)' == 'BuildWasmApps' and '$(_workItemTimeout)' == ''">01:30:00</_workItemTimeout>
     <_workItemTimeout Condition="'$(NeedsToBuildWasmAppsOnHelix)' == 'true'">01:00:00</_workItemTimeout>
+
+    <BrowserBuildTargetsDir>$([MSBuild]::NormalizeDirectory($(BrowserProjectRoot), 'build'))</BrowserBuildTargetsDir>
+    <WasmBuildTargetsDir>$([MSBuild]::NormalizeDirectory($(WasmProjectRoot), 'build'))</WasmBuildTargetsDir>
   </PropertyGroup>
 
   <ItemGroup Condition="'$(Scenario)' == 'BuildWasmApps'">
diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj
index fbcb2c2845f22b..d7286b63dc55b7 100644
--- a/src/libraries/tests.proj
+++ b/src/libraries/tests.proj
@@ -669,21 +669,21 @@
     <ProjectReference Include="@(NativeAotTestAppProjects)" />
 
     <!-- wasm.build.tests are run on _WasmBuildTests job on CI, and with library tests locally. -->
-    <ProjectReference Include="$(RepoRoot)\src\mono\wasm\Wasm.Build.Tests\*.Tests.csproj"
+    <ProjectReference Include="$(WasmProjectRoot)Wasm.Build.Tests\*.Tests.csproj"
                       Exclude="@(ProjectExclusions)"
                       Condition="'$(TargetOS)' == 'browser' and
                                     (('$(ContinuousIntegrationBuild)' == 'true' and '$(TestWasmBuildTests)' == 'true') or
                                      ('$(ContinuousIntegrationBuild)' != 'true' and '$(TestAssemblies)' == 'true'))"
                       BuildInParallel="false" />
 
-    <ProjectReference Include="$(RepoRoot)\src\mono\wasi\Wasi.Build.Tests\*.Tests.csproj"
+    <ProjectReference Include="$(WasiProjectRoot)\Wasi.Build.Tests\*.Tests.csproj"
                       Exclude="@(ProjectExclusions)"
                       Condition="'$(TargetOS)' == 'wasi' and
                                     (('$(ContinuousIntegrationBuild)' == 'true' and '$(TestWasmBuildTests)' == 'true') or
                                      ('$(ContinuousIntegrationBuild)' != 'true' and '$(TestAssemblies)' == 'true'))"
                       BuildInParallel="false" />
 
-    <ProjectReference Include="$(RepoRoot)\src\mono\wasm\debugger\Wasm.Debugger.Tests\*.Tests.csproj"
+    <ProjectReference Include="$(BrowserProjectRoot)debugger\Wasm.Debugger.Tests\*.Tests.csproj"
                       Exclude="@(ProjectExclusions)"
                       Condition="'$(TargetOS)' == 'browser' and
                                     (('$(ContinuousIntegrationBuild)' == 'true' and '$(TestWasmDebuggerTests)' == 'true') or
diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props
index 0096ae68f9a348..12d6fdb34cfc57 100644
--- a/src/mono/Directory.Build.props
+++ b/src/mono/Directory.Build.props
@@ -27,7 +27,7 @@
 
   <!-- Directory to provision and use emscripten if EMSDK_PATH env variable is not set -->
   <PropertyGroup Condition="'$(TargetsBrowser)' == 'true'">
-    <ProvisionEmscriptenDir>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'wasm', 'emsdk'))</ProvisionEmscriptenDir>
+    <ProvisionEmscriptenDir>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'browser', 'emsdk'))</ProvisionEmscriptenDir>
     <ShouldProvisionEmscripten Condition="'$(EMSDK_PATH)' == '' and !Exists('$(ProvisionEmscriptenDir)')">true</ShouldProvisionEmscripten>
     <EMSDK_PATH Condition="Exists('$(ProvisionEmscriptenDir)') and '$(EMSDK_PATH)' == ''">$(ProvisionEmscriptenDir.Replace('\', '/'))</EMSDK_PATH>
   </PropertyGroup>
diff --git a/src/mono/wasm/.gitignore b/src/mono/browser/.gitignore
similarity index 100%
rename from src/mono/wasm/.gitignore
rename to src/mono/browser/.gitignore
diff --git a/src/mono/browser/Makefile b/src/mono/browser/Makefile
new file mode 100644
index 00000000000000..c650564d7d258d
--- /dev/null
+++ b/src/mono/browser/Makefile
@@ -0,0 +1,170 @@
+TOP=$(realpath $(CURDIR)/../../..)
+-include Make.config
+
+escape_quote = $(subst ",\",$(1))
+
+ifneq ($(V),)
+MSBUILD_ARGS+=/p:MonoVerboseBuild=true
+MSBUILD_ARGS+=-bl
+endif
+
+MSBUILD_ARGS+=/p:KeepNativeSymbols=true
+
+DOTNET=$(TOP)/dotnet.sh
+JSVU=$(HOME)/.jsvu
+CHROMEDRIVER?=$(HOME)/.chromedriver
+GECKODRIVER?=$(HOME)/.geckodriver
+
+EMSDK_PATH?=$(TOP)/src/mono/browser/emsdk
+CONFIG?=Release
+BINDIR?=$(TOP)/artifacts/bin
+OBJDIR?=$(TOP)/artifacts/obj
+_MSBUILD_WASM_BUILD_ARGS=/p:TargetOS=browser /p:TargetArchitecture=wasm /p:Configuration=$(CONFIG)
+XHARNESS_BROWSER?=chrome
+HELIX_TARGET_QUEUE?=Ubuntu.1804.Amd64.Open
+
+LOG_PATH=$(TOP)/artifacts/log/$(CONFIG)
+
+all: build-all
+
+#
+# EMSCRIPTEN SETUP
+#
+#  If EMSDK_PATH is not set by the caller, download and setup a local emsdk install.
+#
+
+EMSCRIPTEN_VERSION := $(shell cat $(TOP)/src/mono/browser/emscripten-version.txt)
+EMSDK_LOCAL_PATH=emsdk
+EMCC=source $(EMSDK_PATH)/emsdk_env.sh 2>/dev/null && emcc
+
+.stamp-wasm-install-and-select-$(EMSCRIPTEN_VERSION):
+	rm -rf $(EMSDK_LOCAL_PATH)
+	git clone https://github.com/emscripten-core/emsdk.git $(EMSDK_LOCAL_PATH)
+	cd $(EMSDK_LOCAL_PATH) && ./emsdk install $(EMSCRIPTEN_VERSION)
+	cd $(EMSDK_LOCAL_PATH) && ./emsdk activate $(EMSCRIPTEN_VERSION)
+	python3 ./sanitize.py $(EMSDK_PATH)
+	touch $@
+
+provision-wasm: .stamp-wasm-install-and-select-$(EMSCRIPTEN_VERSION)
+	@echo "----------------------------------------------------------"
+	@echo "Installed emsdk into EMSDK_PATH=$(TOP)/src/mono/browser/emsdk"
+
+MONO_OBJ_DIR=$(OBJDIR)/mono/browser.wasm.$(CONFIG)
+BUILDS_OBJ_DIR=$(MONO_OBJ_DIR)/wasm
+
+clean-emsdk:
+	$(RM) -rf $(EMSDK_LOCAL_PATH)
+
+#
+# Helper targets
+#
+
+.PHONY: runtime
+.PHONY: build
+
+build:
+	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono+libs.pretest -os browser -c $(CONFIG) --binaryLog /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
+
+build-all:
+	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono+libs -os browser -c $(CONFIG) --binaryLog /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
+
+runtime:
+	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono.runtime+mono.wasmruntime+libs.native+libs.pretest -os browser -c $(CONFIG) /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
+
+# Rebuild only the mono runtime+cross compiler, don't build dotnet.wasm
+mono-runtime:
+	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono.runtime+libs.native+libs.pretest -os browser -c $(CONFIG) /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
+
+corlib:
+	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono.corelib+mono.wasmruntime+libs.pretest -os browser -c $(CONFIG) /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
+
+test-runner:
+	$(DOTNET) build $(TOP)/src/libraries/Common/tests/WasmTestRunner /p:Configuration=$(CONFIG) $(MSBUILD_ARGS)
+
+app-builder:
+	$(DOTNET) build $(TOP)/src/tasks/WasmAppBuilder
+
+build-tasks:
+	$(DOTNET) build $(TOP)/src/tasks/tasks.proj /p:Configuration=$(CONFIG) $(MSBUILD_ARGS)
+
+build-packages:
+	rm -f $(TOP)/artifacts/packages/$(CONFIG)/Shipping/*.nupkg
+	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono.packages+mono.manifests+packs.product -os browser -c $(CONFIG) --binaryLog /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
+
+clean:
+	$(RM) -rf $(BUILDS_OBJ_DIR)
+
+run-tests-v8-%:
+	EMSDK_PATH=$(EMSDK_PATH) PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) /p:JSEngine=V8 $(MSBUILD_ARGS)
+run-tests-sm-%:
+	EMSDK_PATH=$(EMSDK_PATH) PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) /p:JSEngine=SpiderMonkey $(MSBUILD_ARGS)
+run-tests-jsc-%:
+	EMSDK_PATH=$(EMSDK_PATH) PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) /p:JSEngine=JavaScriptCore $(MSBUILD_ARGS)
+
+run-tests-%:
+	EMSDK_PATH=$(EMSDK_PATH) PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
+
+run-build-tests:
+	PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/mono/wasm/Wasm.Build.Tests/ /t:Test /bl:$(LOG_PATH)/Wasm.Build.Tests.binlog $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
+
+run-browser-tests-%:
+	PATH="$(GECKODRIVER):$(CHROMEDRIVER):$(PATH)" XHARNESS_COMMAND="test-browser --browser=$(XHARNESS_BROWSER)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
+
+build-runtime-tests:
+	$(TOP)/src/tests/build.sh -mono os browser wasm $(CONFIG) $(MSBUILD_ARGS)
+
+build-debugger-tests-helix:
+	$(DOTNET) build -restore -bl:$(LOG_PATH)/Wasm.Debugger.Tests.binlog \
+	/p:ContinuousIntegrationBuild=true /p:ArchiveTests=true \
+	$(TOP)/src/mono/browser/debugger/Wasm.Debugger.Tests/Wasm.Debugger.Tests.csproj \
+	$(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
+
+submit-debugger-tests-helix: build-debugger-tests-helix
+	EMSDK_PATH=$(EMSDK_PATH) BUILD_REASON=wasm-test SYSTEM_TEAMPROJECT=public BUILD_REPOSITORY_NAME=dotnet/runtime BUILD_SOURCEBRANCH=main \
+		$(TOP)/eng/common/msbuild.sh --ci -restore $(TOP)/src/libraries/sendtohelix.proj \
+		/p:TestRunNamePrefixSuffix=WasmDebugger /p:HelixBuild=`date "+%Y%m%d.%H%M"` /p:Creator=`whoami` \
+		/bl:$(LOG_PATH)/SendToHelix.binlog -p:HelixTargetQueue=$(HELIX_TARGET_QUEUE) \
+		/p:RuntimeFlavor=mono /p:TargetRuntimeIdentifier= /p:MonoForceInterpreter= /p:TestScope=innerloop \
+		/p:_Scenarios=wasmdebuggertests \
+		$(_MSBUILD_WASM_BUILD_ARGS) \
+		$(MSBUILD_ARGS)
+
+submit-wbt-helix:
+	PATH="$(JSVU):$(PATH)" \
+		$(DOTNET) build $(TOP)/src/mono/wasm/Wasm.Build.Tests/ /v:m /p:ArchiveTests=true /t:ArchiveTests $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS) && \
+	EMSDK_PATH=$(EMSDK_PATH) BUILD_REASON=wasm-test SYSTEM_TEAMPROJECT=public BUILD_REPOSITORY_NAME=dotnet/runtime BUILD_SOURCEBRANCH=main \
+		$(TOP)/eng/common/msbuild.sh --ci -restore $(TOP)/src/libraries/sendtohelix.proj \
+		/p:TestRunNamePrefixSuffix=WasmBuildTests /p:HelixBuild=`date "+%Y%m%d.%H%M"` /p:Creator=`whoami` \
+		/bl:$(LOG_PATH)/SendToHelix.binlog -v:m -p:HelixTargetQueue=$(HELIX_TARGET_QUEUE) \
+		/p:RuntimeFlavor=mono /p:TargetRuntimeIdentifier= /p:MonoForceInterpreter= /p:TestScope=innerloop \
+		/p:_Scenarios=buildwasmapps \
+		$(_MSBUILD_WASM_BUILD_ARGS) \
+		$(MSBUILD_ARGS)
+
+submit-tests-helix:
+	echo "\n** This will submit all the available test zip files to helix **\n"
+	EMSDK_PATH=$(EMSDK_PATH) BUILD_REASON=wasm-test SYSTEM_TEAMPROJECT=public BUILD_REPOSITORY_NAME=dotnet/runtime BUILD_SOURCEBRANCH=main \
+		$(TOP)/eng/common/msbuild.sh --ci -restore $(TOP)/src/libraries/sendtohelix.proj \
+		/p:TestRunNamePrefixSuffix=WasmTests /p:HelixBuild=`date "+%Y%m%d.%H%M"` /p:Creator=`whoami` \
+		/bl:$(LOG_PATH)/SendToHelix.binlog -v:n -p:HelixTargetQueue=$(HELIX_TARGET_QUEUE) \
+		/p:RuntimeFlavor=mono /p:TargetRuntimeIdentifier= /p:MonoForceInterpreter= /p:TestScope=innerloop \
+		$(_MSBUILD_WASM_BUILD_ARGS) \
+		$(MSBUILD_ARGS)
+
+run-debugger-tests:
+	rm -f $(TOP)/artifacts/bin/DebuggerTestSuite/x64/Debug/*log; \
+	if [ ! -z "$(TEST_FILTER)" ]; then \
+	$(DOTNET) test  $(TOP)/src/mono/browser/debugger/DebuggerTestSuite $(MSBUILD_ARGS) "-l:trx;LogFileName=DebuggerTestsResults.xml" --results-directory $(LOG_PATH) --filter "category!=failing&FullyQualifiedName$(TEST_FILTER)" $(TEST_ARGS); \
+	else \
+		$(DOTNET) test  $(TOP)/src/mono/browser/debugger/DebuggerTestSuite $(MSBUILD_ARGS) "-l:trx;LogFileName=DebuggerTestsResults.xml" --results-directory $(LOG_PATH) --filter "category!=failing" $(TEST_ARGS); \
+	fi
+
+build-dbg-proxy:
+	$(DOTNET) build $(TOP)/src/mono/browser/debugger/BrowserDebugHost $(MSBUILD_ARGS)
+build-dbg-testsuite:
+	$(DOTNET) build $(TOP)/src/mono/browser/debugger/DebuggerTestSuite $(MSBUILD_ARGS)
+build-app-host:
+	$(DOTNET) build $(TOP)/src/mono/wasm/host $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
+
+patch-deterministic:
+	cd emsdk/upstream/emscripten/ && patch -p1 < ../../../runtime/deterministic.diff
diff --git a/src/mono/wasm/README.md b/src/mono/browser/README.md
similarity index 100%
rename from src/mono/wasm/README.md
rename to src/mono/browser/README.md
diff --git a/src/mono/wasm/wasm.proj b/src/mono/browser/browser.proj
similarity index 95%
rename from src/mono/wasm/wasm.proj
rename to src/mono/browser/browser.proj
index 9854a64ae62f29..1de2f40fdbace1 100644
--- a/src/mono/wasm/wasm.proj
+++ b/src/mono/browser/browser.proj
@@ -512,29 +512,29 @@
   </Target>
 
   <Target Name="InstallNpmPackages"
-          Inputs="$(MonoProjectRoot)wasm/runtime/package.json"
-          Outputs="$(MonoProjectRoot)wasm/runtime/node_modules/.npm-stamp"
+          Inputs="$(BrowserProjectRoot)runtime/package.json"
+          Outputs="$(BrowserProjectRoot)runtime/node_modules/.npm-stamp"
           >
     <!-- install typescript and rollup -->
-    <RunWithEmSdkEnv Condition="'$(ContinuousIntegrationBuild)' == 'true'" Command="npm ci" EmSdkPath="$(EMSDK_PATH)" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoProjectRoot)wasm/runtime/"/>
+    <RunWithEmSdkEnv Condition="'$(ContinuousIntegrationBuild)' == 'true'" Command="npm ci" EmSdkPath="$(EMSDK_PATH)" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(BrowserProjectRoot)runtime/"/>
     <!-- npm install is faster on dev machine as it doesn't wipe node_modules folder -->
-    <RunWithEmSdkEnv Condition="'$(ContinuousIntegrationBuild)' != 'true'" Command="npm install" EmSdkPath="$(EMSDK_PATH)" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoProjectRoot)wasm/runtime/"/>
+    <RunWithEmSdkEnv Condition="'$(ContinuousIntegrationBuild)' != 'true'" Command="npm install" EmSdkPath="$(EMSDK_PATH)" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(BrowserProjectRoot)runtime/"/>
 
     <!-- Delete malformed package.json used for tests, it confuses Component Governance tooling -->
-    <Delete Files="$(MonoProjectRoot)wasm/runtime/node_modules/resolve/test/resolver/malformed_package_json/package.json" ContinueOnError="true" />
+    <Delete Files="$(BrowserProjectRoot)runtime/node_modules/resolve/test/resolver/malformed_package_json/package.json" ContinueOnError="true" />
 
-    <Touch Files="$(MonoProjectRoot)wasm/runtime/node_modules/.npm-stamp" AlwaysCreate="true" />
+    <Touch Files="$(BrowserProjectRoot)runtime/node_modules/.npm-stamp" AlwaysCreate="true" />
   </Target>
 
   <ItemGroup>
-    <_RollupInputs Include="$(MonoProjectRoot)wasm/runtime/**/*.ts"
-		   Exclude="$(MonoProjectRoot)wasm/runtime/dotnet.d.ts;$(MonoProjectRoot)wasm/runtime/dotnet-legacy.d.ts;$(MonoProjectRoot)wasm/runtime/diagnostics-mock.d.ts;$(MonoProjectRoot)wasm/runtime/node_modules/**/*.ts" />
-    <_RollupInputs Include="$(MonoProjectRoot)wasm/runtime/**/tsconfig.*"
-		   Exclude="$(MonoProjectRoot)wasm/runtime/node_modules/**/tsconfig.*" />
-    <_RollupInputs Include="$(MonoProjectRoot)wasm/runtime/workers/**/*.js"/>
-    <_RollupInputs Include="$(MonoProjectRoot)wasm/runtimetypes/*.d.ts"/>
-    <_RollupInputs Include="$(MonoProjectRoot)wasm/runtime/*.json"/>
-    <_RollupInputs Include="$(MonoProjectRoot)wasm/runtime/*.js"/>
+    <_RollupInputs Include="$(BrowserProjectRoot)runtime/**/*.ts"
+		   Exclude="$(BrowserProjectRoot)runtime/dotnet.d.ts;$(BrowserProjectRoot)runtime/dotnet-legacy.d.ts;$(BrowserProjectRoot)runtime/diagnostics-mock.d.ts;$(BrowserProjectRoot)runtime/node_modules/**/*.ts" />
+    <_RollupInputs Include="$(BrowserProjectRoot)runtime/**/tsconfig.*"
+		   Exclude="$(BrowserProjectRoot)runtime/node_modules/**/tsconfig.*" />
+    <_RollupInputs Include="$(BrowserProjectRoot)runtime/workers/**/*.js"/>
+    <_RollupInputs Include="$(BrowserProjectRoot)runtimetypes/*.d.ts"/>
+    <_RollupInputs Include="$(BrowserProjectRoot)runtime/*.json"/>
+    <_RollupInputs Include="$(BrowserProjectRoot)runtime/*.js"/>
   </ItemGroup>
 
   <Target Name="SetMonoRollupEnvironment" DependsOnTargets="GetProductVersions">
@@ -578,7 +578,7 @@
   <Target Name="GenerateMintopsTS"
           Inputs="$(MonoProjectRoot)wasm\runtime\genmintops.py;$(MonoProjectRoot)mono\mini\interp\mintops.def;$(MonoProjectRoot)mono\mini\interp\interp-simd-intrins.def"
           Outputs="$(NativeGeneratedFilesDir)mintops.ts">
-      <Exec Command="$(PythonCmd) $(MonoProjectRoot)wasm/runtime/genmintops.py $(MonoProjectRoot)mono/mini/interp/mintops.def $(MonoProjectRoot)mono/mini/interp/interp-simd-intrins.def $(NativeGeneratedFilesDir)mintops.ts" />
+      <Exec Command="$(PythonCmd) $(BrowserProjectRoot)runtime/genmintops.py $(MonoProjectRoot)mono/mini/interp/mintops.def $(MonoProjectRoot)mono/mini/interp/interp-simd-intrins.def $(NativeGeneratedFilesDir)mintops.ts" />
   </Target>
 
   <Target Name="BuildWithRollup"
@@ -587,10 +587,10 @@
 	  DependsOnTargets="WriteRollupEnvToFile;GenerateMintopsTS"
           >
     <!-- code style check -->
-    <RunWithEmSdkEnv Command="npm run lint" StandardOutputImportance="High" EmSdkPath="$(EMSDK_PATH)" WorkingDirectory="$(MonoProjectRoot)wasm/runtime/"/>
+    <RunWithEmSdkEnv Command="npm run lint" StandardOutputImportance="High" EmSdkPath="$(EMSDK_PATH)" WorkingDirectory="$(BrowserProjectRoot)runtime/"/>
 
     <!-- compile typescript -->
-    <RunWithEmSdkEnv Command="npm run rollup -- --environment $(MonoRollupEnvironment)" EmSdkPath="$(EMSDK_PATH)" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoProjectRoot)wasm/runtime/"/>
+    <RunWithEmSdkEnv Command="npm run rollup -- --environment $(MonoRollupEnvironment)" EmSdkPath="$(EMSDK_PATH)" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(BrowserProjectRoot)runtime/"/>
 
     <Copy SourceFiles="runtime/package.json;"
           DestinationFolder="$(NativeBinDir)"
diff --git a/src/mono/wasm/build/BrowserWasmApp.props b/src/mono/browser/build/BrowserWasmApp.props
similarity index 100%
rename from src/mono/wasm/build/BrowserWasmApp.props
rename to src/mono/browser/build/BrowserWasmApp.props
diff --git a/src/mono/wasm/build/BrowserWasmApp.targets b/src/mono/browser/build/BrowserWasmApp.targets
similarity index 100%
rename from src/mono/wasm/build/BrowserWasmApp.targets
rename to src/mono/browser/build/BrowserWasmApp.targets
diff --git a/src/mono/wasm/build/EmSdkRepo.Defaults.props b/src/mono/browser/build/EmSdkRepo.Defaults.props
similarity index 100%
rename from src/mono/wasm/build/EmSdkRepo.Defaults.props
rename to src/mono/browser/build/EmSdkRepo.Defaults.props
diff --git a/src/mono/wasm/build/ILLink.Substitutions.LegacyJsInterop.xml b/src/mono/browser/build/ILLink.Substitutions.LegacyJsInterop.xml
similarity index 100%
rename from src/mono/wasm/build/ILLink.Substitutions.LegacyJsInterop.xml
rename to src/mono/browser/build/ILLink.Substitutions.LegacyJsInterop.xml
diff --git a/src/mono/wasm/build/ILLink.Substitutions.NoWasmIntrinsics.xml b/src/mono/browser/build/ILLink.Substitutions.NoWasmIntrinsics.xml
similarity index 100%
rename from src/mono/wasm/build/ILLink.Substitutions.NoWasmIntrinsics.xml
rename to src/mono/browser/build/ILLink.Substitutions.NoWasmIntrinsics.xml
diff --git a/src/mono/wasm/build/ILLink.Substitutions.WasmIntrinsics.xml b/src/mono/browser/build/ILLink.Substitutions.WasmIntrinsics.xml
similarity index 100%
rename from src/mono/wasm/build/ILLink.Substitutions.WasmIntrinsics.xml
rename to src/mono/browser/build/ILLink.Substitutions.WasmIntrinsics.xml
diff --git a/src/mono/browser/build/README.md b/src/mono/browser/build/README.md
new file mode 100644
index 00000000000000..e1565c8359fe5d
--- /dev/null
+++ b/src/mono/browser/build/README.md
@@ -0,0 +1,156 @@
+# Wasm app build
+
+This usually consists of taking the built assemblies, and related files, and generating an app bundle.
+
+Wasm app build can run in two scenarios:
+
+1. After build, eg. when running the app in VS, or `dotnet build foo.csproj`
+2. For Publish, eg, when publishing the app to a folder, or Azure
+
+A dotnet wasm app has some native wasm files (`dotnet.wasm`, and `dotnet.js`). How these files are obtained, or generated:
+
+1. Build
+    - a. with no native libraries referenced (AOT setting is ignored here)
+        - files from the runtime pack are used as-is
+    - b. with native libraries referenced
+        - dotnet.wasm is relinked with the native libraries
+2. Publish
+    - dotnet.wasm is relinked with the native libraries, and updated pinvoke/icalls from the trimmed assemblies
+    - if `RunAOTCompilation=true`, then the relinking includes AOT'ed assemblies
+
+## `Build`
+
+Implementation:
+
+- Target `WasmBuildApp`
+- runs after `Build` by default
+    - which can be disabled by `$(DisableAutoWasmBuildApp)`
+    - or the run-after target can be set via `$(WasmBuildAppAfterThisTarget)`
+
+- To run a custom target
+    - *before* any of the wasm build targets, use `$(WasmBuildAppDependsOn)`, and prepend your target name to that
+    - *after* any of the wasm build targets, use `AfterTargets="WasmBuildApp"` on that target
+- Avoid depending on this target, because it is available only when the workload is installed. Use `$(WasmNativeWorkload)` to check if it is installed.
+
+- When `Module.disableDotnet6Compatibility` is set it would not pollute global namespace.
+
+## `Publish`
+
+Implementation:
+
+- This part runs as a nested build using a `MSBuild` task, which means that the project gets reevaluated. So, if there were any changes made to items/properties in targets before this, then they won't be visible in the nested build.
+- By default `WasmTriggerPublishApp` runs after the `Publish` target, and that triggers the nested build
+    - The nested build runs `WasmNestedPublishApp`, which causes `Build`, and `Publish` targets to be run
+    - Because this causes `Build` to be run again, if you have any targets that get triggered by that, then they will be running twice.
+        - But the original *build* run, and this *publish* run can be differentiated using `$(WasmBuildingForNestedPublish)`
+
+- `WasmTriggerPublishApp` essentially just invokes the nested publish
+    - This runs after `Publish`
+        - which can be disabled by `$(DisableAutoWasmPublishApp)`
+        - or the run-after target can be set via `$(WasmTriggerPublishAppAfterThisTarget)`
+
+    - To influence the wasm build for publish, use `WasmNestedPublishApp`
+        - To run a custom target before it, use `$(WasmNestedPublishAppDependsOn)`
+        - to run a custom target *after* it, use `AfterTargets="WasmNestedPublishApp"`
+
+    - If you want to *dependsOn* on this, then use `DependsOnTargets="WasmTriggerPublishApp"`
+
+# `WasmApp.{props,targets}`, and `WasmApp.InTree.{props,targets}`
+
+- Any project that wants to use this, can import the props+targets, and set up the
+various properties before the target `WasmBuildApp` gets executed.
+  - the recommended way to do this is to prepend the target to `$(WasmAppBuildDependsOn)`
+
+- Any wasm projects within the `dotnet/runtime` repo should use the `WasmApp.InTree.{props,targets}` files
+  - These files have relevant properties/targets to work with a local build
+- Generally, the props file can be imported at the top, and the targets file at the bottom of a project file.
+
+- `WasmBuildApp` target is not run by default. The importing project will have
+to do that.
+
+- By default, the `WasmLoadAssembliesAndReferences` task is not run, and
+the specified `@(WasmAssembliesToBundle)` are directly passed to
+`WasmAppBuilder`.
+	- If the project needs assembly dependencies to be resolved, then
+	set `$(WasmResolveAssembliesBeforeBuild) == true`.
+  - Should you need to run the AOT toolset, ensure `$(RunAOTCompilation) == true`
+  and set `$(WasmAOTDir)` to the directory that you want to AOT. Make sure that both
+  `@(WasmAssembliesToBundle)` and `$(WasmAOTDir)` are absolute paths.
+
+- Assemblies to be bundled with the app are set via
+`@(WasmAssembliesToBundle)` (which optionally will have dependencies
+resolved)
+
+The various task inputs correspond to properties as:
+
+```
+  AssemblySearchPaths               : @(WasmAssemblySearchPaths)
+
+  Assemblies                        : @(WasmAssembliesToBundle)
+
+  AppDir                            : $(WasmAppDir)
+  MainAssembly                      : $(WasmMainAssemblyPath)
+  InvariantGlobalization            : $(WasmInvariantGlobalization)
+  SatelliteAssemblies               : @(WasmSatelliteAssemblies)
+  FilesToIncludeInFileSystem        : @(WasmFilesToIncludeInFileSystem)
+  DebugLevel                        : $(WasmDebugLevel)
+  ExtraFilesToDeploy                : @(WasmExtraFilesToDeploy)
+
+  MicrosoftNetCoreAppRuntimePackDir : $(MicrosoftNetCoreAppRuntimePackRidDir)
+```
+
+- `run-v8.sh` script is emitted to `$(WasmRunV8ScriptPath)` which defaults to `$(WasmAppDir)`.
+    - To control it's generation use `$(WasmGenerateRunV8Script)` (false by default)
+
+This should be a step towards eventually having this build as a sdk.
+
+Refer to `WasmApp.targets` for more information about the properties/items used as inputs to the process.
+
+## Updating dependencies needed for building wasm apps
+
+For example, if the wasm targets are using a new task, then references to that
+need to be updated in a few places. Essentially, look for existing references
+to `MonoAOTCompiler`, or `WasmAppBuilder` in the relevant files, and duplicate
+them for the new task assembly.
+
+1. The task assembly dir, and its path need to be in two properties:
+    ```xml
+    <MonoTargetsTasksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoTargetsTasks', 'Debug', '$(NetCoreAppToolCurrent)'))</MonoTargetsTasksDir>
+    <MonoTargetsTasksAssemblyPath>$([MSBuild]::NormalizePath('$(MonoTargetsTasksDir)', 'MonoTargetsTasks.dll'))</MonoTargetsTasksAssemblyPath>
+    ```
+
+    And this needs to be set in:
+    - `Directory.Build.props`
+    - `src/mono/wasm/build/WasmApp.LocalBuild.props`
+    - `src/mono/wasm/build/WasmApp.LocalBuild.targets`
+    - `src/tests/Common/wasm-test-runner/WasmTestRunner.proj`
+
+2. The new dependency (eg. task assembly) needs to be sent to helix as a payload, see `src/libraries/sendtohelixhelp.proj`. Use `MonoAOTCompiler` as an example.
+
+3. Make changes similar to the one for existing dependent tasks in
+   - `eng/testing/linker/trimmingTests.targets`,
+   - `src/tests/Common/wasm-test-runner/WasmTestRunner.proj`
+   - `src/tests/Directory.Build.targets`
+
+## Profiling build performance
+
+If encountering build performance issues, you can use the rollup `--perf` option and the typescript compiler `--generateCpuProfile` option to get build profile data, like so:
+
+```../emsdk/node/14.18.2_64bit/bin/npm run rollup --perf -- --perf --environment Configuration:Release,NativeBinDir:./rollup-test-data,ProductVersion:12.3.4```
+
+```node node_modules/typescript/lib/tsc.js --generateCpuProfile dotnet-tsc.cpuprofile -p tsconfig.json ```
+
+The .cpuprofile file generated by node can be opened in the Performance tab of Chrome or Edge's devtools.
+
+## Blazor
+
+You can test local build of runtime in blazor by overriding location where blazor resolves runtime pack from
+
+*BlazorWasm.csproj*
+```xml
+<Target Name="UpdateRuntimePack" AfterTargets="ResolveFrameworkReferences">
+  <ItemGroup>
+    <ResolvedRuntimePack PackageDirectory="{RUNTIME_REPO_ROOT}\artifacts\bin\microsoft.netcore.app.runtime.browser-wasm\Debug" Condition="'%(ResolvedRuntimePack.FrameworkName)' == 'Microsoft.NETCore.App'" />
+  </ItemGroup>
+</Target>
+```
\ No newline at end of file
diff --git a/src/mono/wasm/build/WasmApp.InTree.props b/src/mono/browser/build/WasmApp.InTree.props
similarity index 98%
rename from src/mono/wasm/build/WasmApp.InTree.props
rename to src/mono/browser/build/WasmApp.InTree.props
index 7354aa20c5c84a..4e56c8fe5e5c6a 100644
--- a/src/mono/wasm/build/WasmApp.InTree.props
+++ b/src/mono/browser/build/WasmApp.InTree.props
@@ -11,7 +11,7 @@
     <Platform>AnyCPU</Platform>
     <EnableTargetingPackDownload>false</EnableTargetingPackDownload>
     <TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
-    <EMSDK_PATH Condition="'$(EMSDK_PATH)' == '' and '$(MonoProjectRoot)' != ''">$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'emsdk'))</EMSDK_PATH>
+    <EMSDK_PATH Condition="'$(EMSDK_PATH)' == '' and '$(MonoProjectRoot)' != ''">$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'browser', 'emsdk'))</EMSDK_PATH>
     <RunAOTCompilation Condition="'$(RunAOTCompilation)' == ''">false</RunAOTCompilation>
     <PublishTrimmed>true</PublishTrimmed>
     <RunAnalyzers>false</RunAnalyzers>
diff --git a/src/mono/wasm/build/WasmApp.InTree.targets b/src/mono/browser/build/WasmApp.InTree.targets
similarity index 100%
rename from src/mono/wasm/build/WasmApp.InTree.targets
rename to src/mono/browser/build/WasmApp.InTree.targets
diff --git a/src/mono/wasm/debugger/BrowserDebugHost/BrowserDebugHost.csproj b/src/mono/browser/debugger/BrowserDebugHost/BrowserDebugHost.csproj
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugHost/BrowserDebugHost.csproj
rename to src/mono/browser/debugger/BrowserDebugHost/BrowserDebugHost.csproj
diff --git a/src/mono/wasm/debugger/BrowserDebugHost/DebugProxyHost.cs b/src/mono/browser/debugger/BrowserDebugHost/DebugProxyHost.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugHost/DebugProxyHost.cs
rename to src/mono/browser/debugger/BrowserDebugHost/DebugProxyHost.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugHost/Program.cs b/src/mono/browser/debugger/BrowserDebugHost/Program.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugHost/Program.cs
rename to src/mono/browser/debugger/BrowserDebugHost/Program.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugHost/Startup.cs b/src/mono/browser/debugger/BrowserDebugHost/Startup.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugHost/Startup.cs
rename to src/mono/browser/debugger/BrowserDebugHost/Startup.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/BrowserDebugProxy.csproj b/src/mono/browser/debugger/BrowserDebugProxy/BrowserDebugProxy.csproj
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/BrowserDebugProxy.csproj
rename to src/mono/browser/debugger/BrowserDebugProxy/BrowserDebugProxy.csproj
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/BrowserDebugProxy.sln b/src/mono/browser/debugger/BrowserDebugProxy/BrowserDebugProxy.sln
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/BrowserDebugProxy.sln
rename to src/mono/browser/debugger/BrowserDebugProxy/BrowserDebugProxy.sln
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Common/DevToolsDebuggerConnection.cs b/src/mono/browser/debugger/BrowserDebugProxy/Common/DevToolsDebuggerConnection.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Common/DevToolsDebuggerConnection.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Common/DevToolsDebuggerConnection.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Common/DevToolsQueue.cs b/src/mono/browser/debugger/BrowserDebugProxy/Common/DevToolsQueue.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Common/DevToolsQueue.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Common/DevToolsQueue.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Common/FirefoxDebuggerConnection.cs b/src/mono/browser/debugger/BrowserDebugProxy/Common/FirefoxDebuggerConnection.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Common/FirefoxDebuggerConnection.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Common/FirefoxDebuggerConnection.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Common/HelperExtensions.cs b/src/mono/browser/debugger/BrowserDebugProxy/Common/HelperExtensions.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Common/HelperExtensions.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Common/HelperExtensions.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Common/InternalUseFieldName.cs b/src/mono/browser/debugger/BrowserDebugProxy/Common/InternalUseFieldName.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Common/InternalUseFieldName.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Common/InternalUseFieldName.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Common/RunLoop.cs b/src/mono/browser/debugger/BrowserDebugProxy/Common/RunLoop.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Common/RunLoop.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Common/RunLoop.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Common/WasmDebuggerConnection.cs b/src/mono/browser/debugger/BrowserDebugProxy/Common/WasmDebuggerConnection.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Common/WasmDebuggerConnection.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Common/WasmDebuggerConnection.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/DebugStore.cs b/src/mono/browser/debugger/BrowserDebugProxy/DebugStore.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/DebugStore.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/DebugStore.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/DebuggerAgentException.cs b/src/mono/browser/debugger/BrowserDebugProxy/DebuggerAgentException.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/DebuggerAgentException.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/DebuggerAgentException.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/DebuggerProxy.cs b/src/mono/browser/debugger/BrowserDebugProxy/DebuggerProxy.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/DebuggerProxy.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/DebuggerProxy.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/DebuggerProxyBase.cs b/src/mono/browser/debugger/BrowserDebugProxy/DebuggerProxyBase.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/DebuggerProxyBase.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/DebuggerProxyBase.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/DevToolsHelper.cs b/src/mono/browser/debugger/BrowserDebugProxy/DevToolsHelper.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/DevToolsHelper.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/DevToolsHelper.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/DevToolsProxy.cs b/src/mono/browser/debugger/BrowserDebugProxy/DevToolsProxy.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/DevToolsProxy.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/DevToolsProxy.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/EvaluateExpression.cs b/src/mono/browser/debugger/BrowserDebugProxy/EvaluateExpression.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/EvaluateExpression.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/EvaluateExpression.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Firefox/FirefoxDebuggerProxy.cs b/src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxDebuggerProxy.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Firefox/FirefoxDebuggerProxy.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxDebuggerProxy.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Firefox/FirefoxExecutionContext.cs b/src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxExecutionContext.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Firefox/FirefoxExecutionContext.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxExecutionContext.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Firefox/FirefoxMessageId.cs b/src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxMessageId.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Firefox/FirefoxMessageId.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxMessageId.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/Firefox/FirefoxMonoProxy.cs b/src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxMonoProxy.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/Firefox/FirefoxMonoProxy.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/Firefox/FirefoxMonoProxy.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/IDebugMetadataProvider.cs b/src/mono/browser/debugger/BrowserDebugProxy/IDebugMetadataProvider.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/IDebugMetadataProvider.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/IDebugMetadataProvider.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/InternalErrorException.cs b/src/mono/browser/debugger/BrowserDebugProxy/InternalErrorException.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/InternalErrorException.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/InternalErrorException.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/JObjectValueCreator.cs b/src/mono/browser/debugger/BrowserDebugProxy/JObjectValueCreator.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/JObjectValueCreator.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/JObjectValueCreator.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs b/src/mono/browser/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/MemberReferenceResolver.cs b/src/mono/browser/debugger/BrowserDebugProxy/MemberReferenceResolver.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/MemberReferenceResolver.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/MemberReferenceResolver.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/MetadataDebugSummary.cs b/src/mono/browser/debugger/BrowserDebugProxy/MetadataDebugSummary.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/MetadataDebugSummary.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/MetadataDebugSummary.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/MonoProxy.cs b/src/mono/browser/debugger/BrowserDebugProxy/MonoProxy.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/MonoProxy.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/MonoProxy.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs b/src/mono/browser/debugger/BrowserDebugProxy/MonoSDBHelper.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/MonoSDBHelper.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/PortableExecutableDebugMetadataProvider.cs b/src/mono/browser/debugger/BrowserDebugProxy/PortableExecutableDebugMetadataProvider.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/PortableExecutableDebugMetadataProvider.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/PortableExecutableDebugMetadataProvider.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/ProxyOptions.cs b/src/mono/browser/debugger/BrowserDebugProxy/ProxyOptions.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/ProxyOptions.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/ProxyOptions.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/RunLoopExitState.cs b/src/mono/browser/debugger/BrowserDebugProxy/RunLoopExitState.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/RunLoopExitState.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/RunLoopExitState.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/RunLoopStopReason.cs b/src/mono/browser/debugger/BrowserDebugProxy/RunLoopStopReason.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/RunLoopStopReason.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/RunLoopStopReason.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/SignatureTypeProvider.cs b/src/mono/browser/debugger/BrowserDebugProxy/SignatureTypeProvider.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/SignatureTypeProvider.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/SignatureTypeProvider.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/ValueOrError.cs b/src/mono/browser/debugger/BrowserDebugProxy/ValueOrError.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/ValueOrError.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/ValueOrError.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/ValueTypeClass.cs b/src/mono/browser/debugger/BrowserDebugProxy/ValueTypeClass.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/ValueTypeClass.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/ValueTypeClass.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/WasmHost.cs b/src/mono/browser/debugger/BrowserDebugProxy/WasmHost.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/WasmHost.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/WasmHost.cs
diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/WebcilDebugMetadataProvider.cs b/src/mono/browser/debugger/BrowserDebugProxy/WebcilDebugMetadataProvider.cs
similarity index 100%
rename from src/mono/wasm/debugger/BrowserDebugProxy/WebcilDebugMetadataProvider.cs
rename to src/mono/browser/debugger/BrowserDebugProxy/WebcilDebugMetadataProvider.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/ArrayTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/ArrayTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/ArrayTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/ArrayTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/AssignmentTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/AssignmentTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/AssignmentTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/AssignmentTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/AsyncTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/AsyncTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/AsyncTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/AsyncTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/BadHarnessInitTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/BadHarnessInitTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/BadHarnessInitTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/BadHarnessInitTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/BreakpointTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/BreakpointTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/BreakpointTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/BreakpointTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/BrowserLocator.cs b/src/mono/browser/debugger/DebuggerTestSuite/BrowserLocator.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/BrowserLocator.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/BrowserLocator.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/CallFunctionOnTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/CallFunctionOnTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/CallFunctionOnTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/CallFunctionOnTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/ChromeProvider.cs b/src/mono/browser/debugger/DebuggerTestSuite/ChromeProvider.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/ChromeProvider.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/ChromeProvider.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/CustomViewTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/CustomViewTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/CustomViewTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/CustomViewTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/DateTimeTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/DateTimeTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/DateTimeTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/DateTimeTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs b/src/mono/browser/debugger/DebuggerTestSuite/DebuggerTestBase.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/DebuggerTestBase.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestFirefox.cs b/src/mono/browser/debugger/DebuggerTestSuite/DebuggerTestFirefox.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestFirefox.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/DebuggerTestFirefox.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestSuite.csproj b/src/mono/browser/debugger/DebuggerTestSuite/DebuggerTestSuite.csproj
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestSuite.csproj
rename to src/mono/browser/debugger/DebuggerTestSuite/DebuggerTestSuite.csproj
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/DelegateTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/DelegateTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/DelegateTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/DelegateTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/DevToolsClient.cs b/src/mono/browser/debugger/DebuggerTestSuite/DevToolsClient.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/DevToolsClient.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/DevToolsClient.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/Directory.Build.props b/src/mono/browser/debugger/DebuggerTestSuite/Directory.Build.props
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/Directory.Build.props
rename to src/mono/browser/debugger/DebuggerTestSuite/Directory.Build.props
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/EnvironmentVariables.cs b/src/mono/browser/debugger/DebuggerTestSuite/EnvironmentVariables.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/EnvironmentVariables.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/EnvironmentVariables.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/EvaluateOnCallFrame2Tests.cs b/src/mono/browser/debugger/DebuggerTestSuite/EvaluateOnCallFrame2Tests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/EvaluateOnCallFrame2Tests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/EvaluateOnCallFrame2Tests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/EvaluateOnCallFrameTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/EvaluateOnCallFrameTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/EvaluateOnCallFrameTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/EvaluateOnCallFrameTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/ExceptionTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/ExceptionTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/ExceptionTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/ExceptionTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/FirefoxInspectorClient.cs b/src/mono/browser/debugger/DebuggerTestSuite/FirefoxInspectorClient.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/FirefoxInspectorClient.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/FirefoxInspectorClient.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/FirefoxProvider.cs b/src/mono/browser/debugger/DebuggerTestSuite/FirefoxProvider.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/FirefoxProvider.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/FirefoxProvider.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/GetPropertiesTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/GetPropertiesTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/GetPropertiesTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/GetPropertiesTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/HarnessTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/HarnessTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/HarnessTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/HarnessTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/HotReloadTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/HotReloadTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/HotReloadTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/HotReloadTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/Inspector.cs b/src/mono/browser/debugger/DebuggerTestSuite/Inspector.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/Inspector.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/Inspector.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/InspectorClient.cs b/src/mono/browser/debugger/DebuggerTestSuite/InspectorClient.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/InspectorClient.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/InspectorClient.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/MiscTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/MiscTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/MiscTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/MiscTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/MonoJsTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/MonoJsTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/MonoJsTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/MonoJsTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/PointerTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/PointerTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/PointerTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/PointerTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/README.md b/src/mono/browser/debugger/DebuggerTestSuite/README.md
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/README.md
rename to src/mono/browser/debugger/DebuggerTestSuite/README.md
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/SetNextIpTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/SetNextIpTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/SetNextIpTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/SetNextIpTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/SetVariableValueTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/SetVariableValueTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/SetVariableValueTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/SetVariableValueTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/Settings.cs b/src/mono/browser/debugger/DebuggerTestSuite/Settings.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/Settings.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/Settings.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/SteppingTests.cs b/src/mono/browser/debugger/DebuggerTestSuite/SteppingTests.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/SteppingTests.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/SteppingTests.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/TestEnvironment.cs b/src/mono/browser/debugger/DebuggerTestSuite/TestEnvironment.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/TestEnvironment.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/TestEnvironment.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/TestExtensions.cs b/src/mono/browser/debugger/DebuggerTestSuite/TestExtensions.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/TestExtensions.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/TestExtensions.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/TestHarnessOptions.cs b/src/mono/browser/debugger/DebuggerTestSuite/TestHarnessOptions.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/TestHarnessOptions.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/TestHarnessOptions.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/TestHarnessProxy.cs b/src/mono/browser/debugger/DebuggerTestSuite/TestHarnessProxy.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/TestHarnessProxy.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/TestHarnessProxy.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/TestHarnessStartup.cs b/src/mono/browser/debugger/DebuggerTestSuite/TestHarnessStartup.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/TestHarnessStartup.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/TestHarnessStartup.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/WasmHostProvider.cs b/src/mono/browser/debugger/DebuggerTestSuite/WasmHostProvider.cs
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/WasmHostProvider.cs
rename to src/mono/browser/debugger/DebuggerTestSuite/WasmHostProvider.cs
diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/appsettings.json b/src/mono/browser/debugger/DebuggerTestSuite/appsettings.json
similarity index 100%
rename from src/mono/wasm/debugger/DebuggerTestSuite/appsettings.json
rename to src/mono/browser/debugger/DebuggerTestSuite/appsettings.json
diff --git a/src/mono/wasm/debugger/DetectRuntimeConfiguration.props b/src/mono/browser/debugger/DetectRuntimeConfiguration.props
similarity index 100%
rename from src/mono/wasm/debugger/DetectRuntimeConfiguration.props
rename to src/mono/browser/debugger/DetectRuntimeConfiguration.props
diff --git a/src/mono/wasm/debugger/Directory.Build.props b/src/mono/browser/debugger/Directory.Build.props
similarity index 100%
rename from src/mono/wasm/debugger/Directory.Build.props
rename to src/mono/browser/debugger/Directory.Build.props
diff --git a/src/mono/wasm/debugger/README.md b/src/mono/browser/debugger/README.md
similarity index 100%
rename from src/mono/wasm/debugger/README.md
rename to src/mono/browser/debugger/README.md
diff --git a/src/mono/wasm/debugger/Wasm.Debugger.Tests/Directory.Build.props b/src/mono/browser/debugger/Wasm.Debugger.Tests/Directory.Build.props
similarity index 100%
rename from src/mono/wasm/debugger/Wasm.Debugger.Tests/Directory.Build.props
rename to src/mono/browser/debugger/Wasm.Debugger.Tests/Directory.Build.props
diff --git a/src/mono/wasm/debugger/Wasm.Debugger.Tests/Directory.Build.targets b/src/mono/browser/debugger/Wasm.Debugger.Tests/Directory.Build.targets
similarity index 100%
rename from src/mono/wasm/debugger/Wasm.Debugger.Tests/Directory.Build.targets
rename to src/mono/browser/debugger/Wasm.Debugger.Tests/Directory.Build.targets
diff --git a/src/mono/wasm/debugger/Wasm.Debugger.Tests/Wasm.Debugger.Tests.csproj b/src/mono/browser/debugger/Wasm.Debugger.Tests/Wasm.Debugger.Tests.csproj
similarity index 100%
rename from src/mono/wasm/debugger/Wasm.Debugger.Tests/Wasm.Debugger.Tests.csproj
rename to src/mono/browser/debugger/Wasm.Debugger.Tests/Wasm.Debugger.Tests.csproj
diff --git a/src/mono/wasm/debugger/Wasm.Debugger.Tests/data/RunScriptTemplate.cmd b/src/mono/browser/debugger/Wasm.Debugger.Tests/data/RunScriptTemplate.cmd
similarity index 100%
rename from src/mono/wasm/debugger/Wasm.Debugger.Tests/data/RunScriptTemplate.cmd
rename to src/mono/browser/debugger/Wasm.Debugger.Tests/data/RunScriptTemplate.cmd
diff --git a/src/mono/wasm/debugger/Wasm.Debugger.Tests/data/RunScriptTemplate.sh b/src/mono/browser/debugger/Wasm.Debugger.Tests/data/RunScriptTemplate.sh
similarity index 100%
rename from src/mono/wasm/debugger/Wasm.Debugger.Tests/data/RunScriptTemplate.sh
rename to src/mono/browser/debugger/Wasm.Debugger.Tests/data/RunScriptTemplate.sh
diff --git a/src/mono/wasm/debugger/Wasm.Debugger.Tests/wasm.helix.targets b/src/mono/browser/debugger/Wasm.Debugger.Tests/wasm.helix.targets
similarity index 100%
rename from src/mono/wasm/debugger/Wasm.Debugger.Tests/wasm.helix.targets
rename to src/mono/browser/debugger/Wasm.Debugger.Tests/wasm.helix.targets
diff --git a/src/mono/wasm/debugger/debugger.md b/src/mono/browser/debugger/debugger.md
similarity index 100%
rename from src/mono/wasm/debugger/debugger.md
rename to src/mono/browser/debugger/debugger.md
diff --git a/src/mono/wasm/debugger/debugger.sln b/src/mono/browser/debugger/debugger.sln
similarity index 100%
rename from src/mono/wasm/debugger/debugger.sln
rename to src/mono/browser/debugger/debugger.sln
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/ApplyUpdateReferencedAssembly.csproj b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/ApplyUpdateReferencedAssembly.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/ApplyUpdateReferencedAssembly.csproj
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/ApplyUpdateReferencedAssembly.csproj
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody0.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody0.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody0.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody0.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v1.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v1.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v1.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v1.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v2.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v2.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v2.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/MethodBody1_v2.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/deltascript.json b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/deltascript.json
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly/deltascript.json
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly/deltascript.json
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/ApplyUpdateReferencedAssembly2.csproj b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/ApplyUpdateReferencedAssembly2.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/ApplyUpdateReferencedAssembly2.csproj
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/ApplyUpdateReferencedAssembly2.csproj
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2_v1.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2_v1.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2_v1.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2_v1.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2_v2.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2_v2.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2_v2.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/MethodBody2_v2.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/deltascript.json b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/deltascript.json
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly2/deltascript.json
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly2/deltascript.json
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/ApplyUpdateReferencedAssembly3.csproj b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/ApplyUpdateReferencedAssembly3.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/ApplyUpdateReferencedAssembly3.csproj
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/ApplyUpdateReferencedAssembly3.csproj
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2_v1.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2_v1.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2_v1.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2_v1.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2_v2.cs b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2_v2.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2_v2.cs
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/MethodBody2_v2.cs
diff --git a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/deltascript.json b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/deltascript.json
similarity index 100%
rename from src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssembly3/deltascript.json
rename to src/mono/browser/debugger/tests/ApplyUpdateReferencedAssembly3/deltascript.json
diff --git "a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250.csproj" "b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250.csproj"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250.csproj"
rename to "src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250.csproj"
diff --git "a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody0.cs" "b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody0.cs"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody0.cs"
rename to "src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody0.cs"
diff --git "a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1.cs" "b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1.cs"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1.cs"
rename to "src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1.cs"
diff --git "a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1_v1.cs" "b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1_v1.cs"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1_v1.cs"
rename to "src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1_v1.cs"
diff --git "a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1_v2.cs" "b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1_v2.cs"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1_v2.cs"
rename to "src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/MethodBody1_v2.cs"
diff --git "a/src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/deltascript.json" "b/src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/deltascript.json"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/deltascript.json"
rename to "src/mono/browser/debugger/tests/ApplyUpdateReferencedAssemblyChineseCharInPath\343\204\250/deltascript.json"
diff --git a/src/mono/wasm/debugger/tests/Directory.Build.props b/src/mono/browser/debugger/tests/Directory.Build.props
similarity index 100%
rename from src/mono/wasm/debugger/tests/Directory.Build.props
rename to src/mono/browser/debugger/tests/Directory.Build.props
diff --git a/src/mono/wasm/debugger/tests/Directory.Build.targets b/src/mono/browser/debugger/tests/Directory.Build.targets
similarity index 100%
rename from src/mono/wasm/debugger/tests/Directory.Build.targets
rename to src/mono/browser/debugger/tests/Directory.Build.targets
diff --git "a/src/mono/wasm/debugger/tests/debugger-test-chinese-char-in-path-\343\204\250/debugger-test-chinese-char-in-path-\343\204\250.csproj" "b/src/mono/browser/debugger/tests/debugger-test-chinese-char-in-path-\343\204\250/debugger-test-chinese-char-in-path-\343\204\250.csproj"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/debugger-test-chinese-char-in-path-\343\204\250/debugger-test-chinese-char-in-path-\343\204\250.csproj"
rename to "src/mono/browser/debugger/tests/debugger-test-chinese-char-in-path-\343\204\250/debugger-test-chinese-char-in-path-\343\204\250.csproj"
diff --git "a/src/mono/wasm/debugger/tests/debugger-test-chinese-char-in-path-\343\204\250/test.cs" "b/src/mono/browser/debugger/tests/debugger-test-chinese-char-in-path-\343\204\250/test.cs"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/debugger-test-chinese-char-in-path-\343\204\250/test.cs"
rename to "src/mono/browser/debugger/tests/debugger-test-chinese-char-in-path-\343\204\250/test.cs"
diff --git a/src/mono/wasm/debugger/tests/debugger-test-special-char-in-path-#@/debugger-test-special-char-in-path.csproj b/src/mono/browser/debugger/tests/debugger-test-special-char-in-path-#@/debugger-test-special-char-in-path.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-special-char-in-path-#@/debugger-test-special-char-in-path.csproj
rename to src/mono/browser/debugger/tests/debugger-test-special-char-in-path-#@/debugger-test-special-char-in-path.csproj
diff --git "a/src/mono/wasm/debugger/tests/debugger-test-special-char-in-path-#@/non-ascii-test-\304\205\305\202\303\205.cs" "b/src/mono/browser/debugger/tests/debugger-test-special-char-in-path-#@/non-ascii-test-\304\205\305\202\303\205.cs"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/debugger-test-special-char-in-path-#@/non-ascii-test-\304\205\305\202\303\205.cs"
rename to "src/mono/browser/debugger/tests/debugger-test-special-char-in-path-#@/non-ascii-test-\304\205\305\202\303\205.cs"
diff --git a/src/mono/wasm/debugger/tests/debugger-test-special-char-in-path-#@/test#.cs b/src/mono/browser/debugger/tests/debugger-test-special-char-in-path-#@/test#.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-special-char-in-path-#@/test#.cs
rename to src/mono/browser/debugger/tests/debugger-test-special-char-in-path-#@/test#.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test-vb/debugger-test-vb.vb b/src/mono/browser/debugger/tests/debugger-test-vb/debugger-test-vb.vb
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-vb/debugger-test-vb.vb
rename to src/mono/browser/debugger/tests/debugger-test-vb/debugger-test-vb.vb
diff --git a/src/mono/wasm/debugger/tests/debugger-test-vb/debugger-test-vb.vbproj b/src/mono/browser/debugger/tests/debugger-test-vb/debugger-test-vb.vbproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-vb/debugger-test-vb.vbproj
rename to src/mono/browser/debugger/tests/debugger-test-vb/debugger-test-vb.vbproj
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-colon-in-source-name/debugger-test-with-colon-in-source-name.csproj b/src/mono/browser/debugger/tests/debugger-test-with-colon-in-source-name/debugger-test-with-colon-in-source-name.csproj
similarity index 97%
rename from src/mono/wasm/debugger/tests/debugger-test-with-colon-in-source-name/debugger-test-with-colon-in-source-name.csproj
rename to src/mono/browser/debugger/tests/debugger-test-with-colon-in-source-name/debugger-test-with-colon-in-source-name.csproj
index bc2a6da92befd0..e6c35ecaf56ec7 100644
--- a/src/mono/wasm/debugger/tests/debugger-test-with-colon-in-source-name/debugger-test-with-colon-in-source-name.csproj
+++ b/src/mono/browser/debugger/tests/debugger-test-with-colon-in-source-name/debugger-test-with-colon-in-source-name.csproj
@@ -1 +1 @@
-<Project Sdk="Microsoft.NET.Sdk"></Project>
+<Project Sdk="Microsoft.NET.Sdk"></Project>
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-full-debug-type/debugger-test-with-full-debug-type.csproj b/src/mono/browser/debugger/tests/debugger-test-with-full-debug-type/debugger-test-with-full-debug-type.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-with-full-debug-type/debugger-test-with-full-debug-type.csproj
rename to src/mono/browser/debugger/tests/debugger-test-with-full-debug-type/debugger-test-with-full-debug-type.csproj
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-full-debug-type/test.cs b/src/mono/browser/debugger/tests/debugger-test-with-full-debug-type/test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-with-full-debug-type/test.cs
rename to src/mono/browser/debugger/tests/debugger-test-with-full-debug-type/test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-non-user-code-class/debugger-test-with-non-user-code-class.csproj b/src/mono/browser/debugger/tests/debugger-test-with-non-user-code-class/debugger-test-with-non-user-code-class.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-with-non-user-code-class/debugger-test-with-non-user-code-class.csproj
rename to src/mono/browser/debugger/tests/debugger-test-with-non-user-code-class/debugger-test-with-non-user-code-class.csproj
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-non-user-code-class/test.cs b/src/mono/browser/debugger/tests/debugger-test-with-non-user-code-class/test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-with-non-user-code-class/test.cs
rename to src/mono/browser/debugger/tests/debugger-test-with-non-user-code-class/test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-pdb-deleted/debugger-test-with-pdb-deleted.csproj b/src/mono/browser/debugger/tests/debugger-test-with-pdb-deleted/debugger-test-with-pdb-deleted.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-with-pdb-deleted/debugger-test-with-pdb-deleted.csproj
rename to src/mono/browser/debugger/tests/debugger-test-with-pdb-deleted/debugger-test-with-pdb-deleted.csproj
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-pdb-deleted/test.cs b/src/mono/browser/debugger/tests/debugger-test-with-pdb-deleted/test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-with-pdb-deleted/test.cs
rename to src/mono/browser/debugger/tests/debugger-test-with-pdb-deleted/test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-source-link/debugger-test-with-source-link.csproj b/src/mono/browser/debugger/tests/debugger-test-with-source-link/debugger-test-with-source-link.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-with-source-link/debugger-test-with-source-link.csproj
rename to src/mono/browser/debugger/tests/debugger-test-with-source-link/debugger-test-with-source-link.csproj
diff --git a/src/mono/wasm/debugger/tests/debugger-test-with-source-link/test.cs b/src/mono/browser/debugger/tests/debugger-test-with-source-link/test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-with-source-link/test.cs
rename to src/mono/browser/debugger/tests/debugger-test-with-source-link/test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test-without-debug-symbols-to-load/debugger-test-without-debug-symbols-to-load.csproj b/src/mono/browser/debugger/tests/debugger-test-without-debug-symbols-to-load/debugger-test-without-debug-symbols-to-load.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-without-debug-symbols-to-load/debugger-test-without-debug-symbols-to-load.csproj
rename to src/mono/browser/debugger/tests/debugger-test-without-debug-symbols-to-load/debugger-test-without-debug-symbols-to-load.csproj
diff --git a/src/mono/wasm/debugger/tests/debugger-test-without-debug-symbols-to-load/test.cs b/src/mono/browser/debugger/tests/debugger-test-without-debug-symbols-to-load/test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-without-debug-symbols-to-load/test.cs
rename to src/mono/browser/debugger/tests/debugger-test-without-debug-symbols-to-load/test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test-without-debug-symbols/debugger-test-without-debug-symbols.csproj b/src/mono/browser/debugger/tests/debugger-test-without-debug-symbols/debugger-test-without-debug-symbols.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-without-debug-symbols/debugger-test-without-debug-symbols.csproj
rename to src/mono/browser/debugger/tests/debugger-test-without-debug-symbols/debugger-test-without-debug-symbols.csproj
diff --git a/src/mono/wasm/debugger/tests/debugger-test-without-debug-symbols/test.cs b/src/mono/browser/debugger/tests/debugger-test-without-debug-symbols/test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test-without-debug-symbols/test.cs
rename to src/mono/browser/debugger/tests/debugger-test-without-debug-symbols/test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-array-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-array-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-array-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-array-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-assignment-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-assignment-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-assignment-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-assignment-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-async-step.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-async-step.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-async-step.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-async-step.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-async-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-async-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-async-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-async-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-cfo-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-cfo-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-cfo-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-cfo-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-custom-view-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-custom-view-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-custom-view-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-custom-view-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-datetime-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-datetime-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-datetime-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-datetime-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-driver.html b/src/mono/browser/debugger/tests/debugger-test/debugger-driver.html
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-driver.html
rename to src/mono/browser/debugger/tests/debugger-test/debugger-driver.html
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-evaluate-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-evaluate-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-evaluate-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-evaluate-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-exception-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-exception-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-exception-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-exception-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-get-properties-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-get-properties-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-get-properties-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-get-properties-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-main.js b/src/mono/browser/debugger/tests/debugger-test/debugger-main.js
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-main.js
rename to src/mono/browser/debugger/tests/debugger-test/debugger-main.js
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-nullable-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-nullable-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-nullable-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-nullable-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-pointers-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-pointers-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-pointers-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-pointers-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-set-variable-value-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-set-variable-value-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-set-variable-value-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-set-variable-value-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj b/src/mono/browser/debugger/tests/debugger-test/debugger-test.csproj
similarity index 99%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj
rename to src/mono/browser/debugger/tests/debugger-test/debugger-test.csproj
index 6a39c840002c84..f762d30bc5b805 100644
--- a/src/mono/wasm/debugger/tests/debugger-test/debugger-test.csproj
+++ b/src/mono/browser/debugger/tests/debugger-test/debugger-test.csproj
@@ -123,5 +123,5 @@
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices.JavaScript\src\System.Runtime.InteropServices.JavaScript.csproj" SkipUseReferenceAssembly="true"/>
   </ItemGroup>
 
-  <Import Project="$(MonoProjectRoot)\wasm\build\WasmApp.InTree.targets" />
+  <Import Project="$(BrowserProjectRoot)\build\WasmApp.InTree.targets" />
 </Project>
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-test2.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-test2.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-test2.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-test2.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-valuetypes-test.cs b/src/mono/browser/debugger/tests/debugger-test/debugger-valuetypes-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/debugger-valuetypes-test.cs
rename to src/mono/browser/debugger/tests/debugger-test/debugger-valuetypes-test.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/dependency.cs b/src/mono/browser/debugger/tests/debugger-test/dependency.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/dependency.cs
rename to src/mono/browser/debugger/tests/debugger-test/dependency.cs
diff --git a/src/mono/wasm/debugger/tests/debugger-test/non-wasm-page.html b/src/mono/browser/debugger/tests/debugger-test/non-wasm-page.html
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/non-wasm-page.html
rename to src/mono/browser/debugger/tests/debugger-test/non-wasm-page.html
diff --git a/src/mono/wasm/debugger/tests/debugger-test/other.js b/src/mono/browser/debugger/tests/debugger-test/other.js
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/other.js
rename to src/mono/browser/debugger/tests/debugger-test/other.js
diff --git a/src/mono/wasm/debugger/tests/debugger-test/wasm-page-without-assets.html b/src/mono/browser/debugger/tests/debugger-test/wasm-page-without-assets.html
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/wasm-page-without-assets.html
rename to src/mono/browser/debugger/tests/debugger-test/wasm-page-without-assets.html
diff --git a/src/mono/wasm/debugger/tests/debugger-test/weather.json b/src/mono/browser/debugger/tests/debugger-test/weather.json
similarity index 100%
rename from src/mono/wasm/debugger/tests/debugger-test/weather.json
rename to src/mono/browser/debugger/tests/debugger-test/weather.json
diff --git "a/src/mono/wasm/debugger/tests/lazy-debugger-test-chinese-char-in-path-\343\204\250/lazy-debugger-test-chinese-char-in-path-\343\204\250.csproj" "b/src/mono/browser/debugger/tests/lazy-debugger-test-chinese-char-in-path-\343\204\250/lazy-debugger-test-chinese-char-in-path-\343\204\250.csproj"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/lazy-debugger-test-chinese-char-in-path-\343\204\250/lazy-debugger-test-chinese-char-in-path-\343\204\250.csproj"
rename to "src/mono/browser/debugger/tests/lazy-debugger-test-chinese-char-in-path-\343\204\250/lazy-debugger-test-chinese-char-in-path-\343\204\250.csproj"
diff --git "a/src/mono/wasm/debugger/tests/lazy-debugger-test-chinese-char-in-path-\343\204\250/lazy-debugger-test.cs" "b/src/mono/browser/debugger/tests/lazy-debugger-test-chinese-char-in-path-\343\204\250/lazy-debugger-test.cs"
similarity index 100%
rename from "src/mono/wasm/debugger/tests/lazy-debugger-test-chinese-char-in-path-\343\204\250/lazy-debugger-test.cs"
rename to "src/mono/browser/debugger/tests/lazy-debugger-test-chinese-char-in-path-\343\204\250/lazy-debugger-test.cs"
diff --git a/src/mono/wasm/debugger/tests/lazy-debugger-test-embedded/lazy-debugger-test-embedded.cs b/src/mono/browser/debugger/tests/lazy-debugger-test-embedded/lazy-debugger-test-embedded.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/lazy-debugger-test-embedded/lazy-debugger-test-embedded.cs
rename to src/mono/browser/debugger/tests/lazy-debugger-test-embedded/lazy-debugger-test-embedded.cs
diff --git a/src/mono/wasm/debugger/tests/lazy-debugger-test-embedded/lazy-debugger-test-embedded.csproj b/src/mono/browser/debugger/tests/lazy-debugger-test-embedded/lazy-debugger-test-embedded.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/lazy-debugger-test-embedded/lazy-debugger-test-embedded.csproj
rename to src/mono/browser/debugger/tests/lazy-debugger-test-embedded/lazy-debugger-test-embedded.csproj
diff --git a/src/mono/wasm/debugger/tests/lazy-debugger-test/lazy-debugger-test.cs b/src/mono/browser/debugger/tests/lazy-debugger-test/lazy-debugger-test.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/lazy-debugger-test/lazy-debugger-test.cs
rename to src/mono/browser/debugger/tests/lazy-debugger-test/lazy-debugger-test.cs
diff --git a/src/mono/wasm/debugger/tests/lazy-debugger-test/lazy-debugger-test.csproj b/src/mono/browser/debugger/tests/lazy-debugger-test/lazy-debugger-test.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/lazy-debugger-test/lazy-debugger-test.csproj
rename to src/mono/browser/debugger/tests/lazy-debugger-test/lazy-debugger-test.csproj
diff --git a/src/mono/wasm/debugger/tests/library-dependency-debugger-test1/library-dependency-debugger-test1.cs b/src/mono/browser/debugger/tests/library-dependency-debugger-test1/library-dependency-debugger-test1.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/library-dependency-debugger-test1/library-dependency-debugger-test1.cs
rename to src/mono/browser/debugger/tests/library-dependency-debugger-test1/library-dependency-debugger-test1.cs
diff --git a/src/mono/wasm/debugger/tests/library-dependency-debugger-test1/library-dependency-debugger-test1.csproj b/src/mono/browser/debugger/tests/library-dependency-debugger-test1/library-dependency-debugger-test1.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/library-dependency-debugger-test1/library-dependency-debugger-test1.csproj
rename to src/mono/browser/debugger/tests/library-dependency-debugger-test1/library-dependency-debugger-test1.csproj
diff --git a/src/mono/wasm/debugger/tests/library-dependency-debugger-test2/library-dependency-debugger-test2.cs b/src/mono/browser/debugger/tests/library-dependency-debugger-test2/library-dependency-debugger-test2.cs
similarity index 100%
rename from src/mono/wasm/debugger/tests/library-dependency-debugger-test2/library-dependency-debugger-test2.cs
rename to src/mono/browser/debugger/tests/library-dependency-debugger-test2/library-dependency-debugger-test2.cs
diff --git a/src/mono/wasm/debugger/tests/library-dependency-debugger-test2/library-dependency-debugger-test2.csproj b/src/mono/browser/debugger/tests/library-dependency-debugger-test2/library-dependency-debugger-test2.csproj
similarity index 100%
rename from src/mono/wasm/debugger/tests/library-dependency-debugger-test2/library-dependency-debugger-test2.csproj
rename to src/mono/browser/debugger/tests/library-dependency-debugger-test2/library-dependency-debugger-test2.csproj
diff --git a/src/mono/wasm/emscripten-version.txt b/src/mono/browser/emscripten-version.txt
similarity index 100%
rename from src/mono/wasm/emscripten-version.txt
rename to src/mono/browser/emscripten-version.txt
diff --git a/src/mono/wasm/runtime/.eslintignore b/src/mono/browser/runtime/.eslintignore
similarity index 100%
rename from src/mono/wasm/runtime/.eslintignore
rename to src/mono/browser/runtime/.eslintignore
diff --git a/src/mono/wasm/runtime/.eslintrc.cjs b/src/mono/browser/runtime/.eslintrc.cjs
similarity index 100%
rename from src/mono/wasm/runtime/.eslintrc.cjs
rename to src/mono/browser/runtime/.eslintrc.cjs
diff --git a/src/mono/wasm/runtime/.npmrc b/src/mono/browser/runtime/.npmrc
similarity index 100%
rename from src/mono/wasm/runtime/.npmrc
rename to src/mono/browser/runtime/.npmrc
diff --git a/src/mono/wasm/runtime/CMakeLists.txt b/src/mono/browser/runtime/CMakeLists.txt
similarity index 100%
rename from src/mono/wasm/runtime/CMakeLists.txt
rename to src/mono/browser/runtime/CMakeLists.txt
diff --git a/src/mono/wasm/runtime/assets.ts b/src/mono/browser/runtime/assets.ts
similarity index 100%
rename from src/mono/wasm/runtime/assets.ts
rename to src/mono/browser/runtime/assets.ts
diff --git a/src/mono/wasm/runtime/base64.ts b/src/mono/browser/runtime/base64.ts
similarity index 100%
rename from src/mono/wasm/runtime/base64.ts
rename to src/mono/browser/runtime/base64.ts
diff --git a/src/mono/wasm/runtime/cancelable-promise.ts b/src/mono/browser/runtime/cancelable-promise.ts
similarity index 100%
rename from src/mono/wasm/runtime/cancelable-promise.ts
rename to src/mono/browser/runtime/cancelable-promise.ts
diff --git a/src/mono/wasm/runtime/class-loader.ts b/src/mono/browser/runtime/class-loader.ts
similarity index 100%
rename from src/mono/wasm/runtime/class-loader.ts
rename to src/mono/browser/runtime/class-loader.ts
diff --git a/src/mono/wasm/runtime/corebindings.c b/src/mono/browser/runtime/corebindings.c
similarity index 100%
rename from src/mono/wasm/runtime/corebindings.c
rename to src/mono/browser/runtime/corebindings.c
diff --git a/src/mono/wasm/runtime/crypto.ts b/src/mono/browser/runtime/crypto.ts
similarity index 100%
rename from src/mono/wasm/runtime/crypto.ts
rename to src/mono/browser/runtime/crypto.ts
diff --git a/src/mono/wasm/runtime/cuint64.ts b/src/mono/browser/runtime/cuint64.ts
similarity index 100%
rename from src/mono/wasm/runtime/cuint64.ts
rename to src/mono/browser/runtime/cuint64.ts
diff --git a/src/mono/wasm/runtime/cwraps.ts b/src/mono/browser/runtime/cwraps.ts
similarity index 100%
rename from src/mono/wasm/runtime/cwraps.ts
rename to src/mono/browser/runtime/cwraps.ts
diff --git a/src/mono/wasm/runtime/debug.ts b/src/mono/browser/runtime/debug.ts
similarity index 100%
rename from src/mono/wasm/runtime/debug.ts
rename to src/mono/browser/runtime/debug.ts
diff --git a/src/mono/wasm/runtime/deterministic.diff b/src/mono/browser/runtime/deterministic.diff
similarity index 100%
rename from src/mono/wasm/runtime/deterministic.diff
rename to src/mono/browser/runtime/deterministic.diff
diff --git a/src/mono/wasm/runtime/diagnostics-mock.d.ts b/src/mono/browser/runtime/diagnostics-mock.d.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics-mock.d.ts
rename to src/mono/browser/runtime/diagnostics-mock.d.ts
diff --git a/src/mono/wasm/runtime/diagnostics-mock.d.ts.sha256 b/src/mono/browser/runtime/diagnostics-mock.d.ts.sha256
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics-mock.d.ts.sha256
rename to src/mono/browser/runtime/diagnostics-mock.d.ts.sha256
diff --git a/src/mono/wasm/runtime/diagnostics/README.md b/src/mono/browser/runtime/diagnostics/README.md
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/README.md
rename to src/mono/browser/runtime/diagnostics/README.md
diff --git a/src/mono/wasm/runtime/diagnostics/browser/controller.ts b/src/mono/browser/runtime/diagnostics/browser/controller.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/browser/controller.ts
rename to src/mono/browser/runtime/diagnostics/browser/controller.ts
diff --git a/src/mono/wasm/runtime/diagnostics/diagnostic-server.md b/src/mono/browser/runtime/diagnostics/diagnostic-server.md
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/diagnostic-server.md
rename to src/mono/browser/runtime/diagnostics/diagnostic-server.md
diff --git a/src/mono/wasm/runtime/diagnostics/index.ts b/src/mono/browser/runtime/diagnostics/index.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/index.ts
rename to src/mono/browser/runtime/diagnostics/index.ts
diff --git a/src/mono/wasm/runtime/diagnostics/mock/environment.ts b/src/mono/browser/runtime/diagnostics/mock/environment.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/mock/environment.ts
rename to src/mono/browser/runtime/diagnostics/mock/environment.ts
diff --git a/src/mono/wasm/runtime/diagnostics/mock/export-types.ts b/src/mono/browser/runtime/diagnostics/mock/export-types.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/mock/export-types.ts
rename to src/mono/browser/runtime/diagnostics/mock/export-types.ts
diff --git a/src/mono/wasm/runtime/diagnostics/mock/index.ts b/src/mono/browser/runtime/diagnostics/mock/index.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/mock/index.ts
rename to src/mono/browser/runtime/diagnostics/mock/index.ts
diff --git a/src/mono/wasm/runtime/diagnostics/mock/tsconfig.json b/src/mono/browser/runtime/diagnostics/mock/tsconfig.json
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/mock/tsconfig.json
rename to src/mono/browser/runtime/diagnostics/mock/tsconfig.json
diff --git a/src/mono/wasm/runtime/diagnostics/mock/types.ts b/src/mono/browser/runtime/diagnostics/mock/types.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/mock/types.ts
rename to src/mono/browser/runtime/diagnostics/mock/types.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/common-socket.ts b/src/mono/browser/runtime/diagnostics/server_pthread/common-socket.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/common-socket.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/common-socket.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/index.ts b/src/mono/browser/runtime/diagnostics/server_pthread/index.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/index.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/index.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/base-parser.ts b/src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/base-parser.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/base-parser.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/base-parser.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/base-serializer.ts b/src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/base-serializer.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/base-serializer.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/base-serializer.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/magic.ts b/src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/magic.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/magic.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/magic.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/parser.ts b/src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/parser.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/parser.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/parser.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/serializer.ts b/src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/serializer.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/serializer.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/serializer.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/types.ts b/src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/types.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/ipc-protocol/types.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/ipc-protocol/types.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/mock-remote.ts b/src/mono/browser/runtime/diagnostics/server_pthread/mock-remote.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/mock-remote.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/mock-remote.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/protocol-client-commands.ts b/src/mono/browser/runtime/diagnostics/server_pthread/protocol-client-commands.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/protocol-client-commands.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/protocol-client-commands.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/protocol-socket.ts b/src/mono/browser/runtime/diagnostics/server_pthread/protocol-socket.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/protocol-socket.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/protocol-socket.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/socket-connection.ts b/src/mono/browser/runtime/diagnostics/server_pthread/socket-connection.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/socket-connection.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/socket-connection.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/stream-queue.ts b/src/mono/browser/runtime/diagnostics/server_pthread/stream-queue.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/stream-queue.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/stream-queue.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/streaming-session.ts b/src/mono/browser/runtime/diagnostics/server_pthread/streaming-session.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/streaming-session.ts
rename to src/mono/browser/runtime/diagnostics/server_pthread/streaming-session.ts
diff --git a/src/mono/wasm/runtime/diagnostics/server_pthread/tsconfig.json b/src/mono/browser/runtime/diagnostics/server_pthread/tsconfig.json
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/server_pthread/tsconfig.json
rename to src/mono/browser/runtime/diagnostics/server_pthread/tsconfig.json
diff --git a/src/mono/wasm/runtime/diagnostics/shared/controller-commands.ts b/src/mono/browser/runtime/diagnostics/shared/controller-commands.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/shared/controller-commands.ts
rename to src/mono/browser/runtime/diagnostics/shared/controller-commands.ts
diff --git a/src/mono/wasm/runtime/diagnostics/shared/create-session.ts b/src/mono/browser/runtime/diagnostics/shared/create-session.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/shared/create-session.ts
rename to src/mono/browser/runtime/diagnostics/shared/create-session.ts
diff --git a/src/mono/wasm/runtime/diagnostics/shared/tsconfig.json b/src/mono/browser/runtime/diagnostics/shared/tsconfig.json
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/shared/tsconfig.json
rename to src/mono/browser/runtime/diagnostics/shared/tsconfig.json
diff --git a/src/mono/wasm/runtime/diagnostics/shared/types.ts b/src/mono/browser/runtime/diagnostics/shared/types.ts
similarity index 100%
rename from src/mono/wasm/runtime/diagnostics/shared/types.ts
rename to src/mono/browser/runtime/diagnostics/shared/types.ts
diff --git a/src/mono/wasm/runtime/dotnet-legacy.d.ts b/src/mono/browser/runtime/dotnet-legacy.d.ts
similarity index 100%
rename from src/mono/wasm/runtime/dotnet-legacy.d.ts
rename to src/mono/browser/runtime/dotnet-legacy.d.ts
diff --git a/src/mono/wasm/runtime/dotnet.d.ts b/src/mono/browser/runtime/dotnet.d.ts
similarity index 100%
rename from src/mono/wasm/runtime/dotnet.d.ts
rename to src/mono/browser/runtime/dotnet.d.ts
diff --git a/src/mono/wasm/runtime/driver.c b/src/mono/browser/runtime/driver.c
similarity index 100%
rename from src/mono/wasm/runtime/driver.c
rename to src/mono/browser/runtime/driver.c
diff --git a/src/mono/wasm/runtime/es6/dotnet.es6.extpost.js b/src/mono/browser/runtime/es6/dotnet.es6.extpost.js
similarity index 100%
rename from src/mono/wasm/runtime/es6/dotnet.es6.extpost.js
rename to src/mono/browser/runtime/es6/dotnet.es6.extpost.js
diff --git a/src/mono/wasm/runtime/es6/dotnet.es6.lib.js b/src/mono/browser/runtime/es6/dotnet.es6.lib.js
similarity index 99%
rename from src/mono/wasm/runtime/es6/dotnet.es6.lib.js
rename to src/mono/browser/runtime/es6/dotnet.es6.lib.js
index 75438c50424bbb..78fdc26dfaaac9 100644
--- a/src/mono/wasm/runtime/es6/dotnet.es6.lib.js
+++ b/src/mono/browser/runtime/es6/dotnet.es6.lib.js
@@ -102,4 +102,4 @@ function injectDependencies() {
 }
 
 
-// var methodIndexByName wil be appended below by the MSBuild in wasm.proj
+// var methodIndexByName wil be appended below by the MSBuild in browser.proj
diff --git a/src/mono/wasm/runtime/es6/dotnet.es6.pre.js b/src/mono/browser/runtime/es6/dotnet.es6.pre.js
similarity index 100%
rename from src/mono/wasm/runtime/es6/dotnet.es6.pre.js
rename to src/mono/browser/runtime/es6/dotnet.es6.pre.js
diff --git a/src/mono/wasm/runtime/export-api.ts b/src/mono/browser/runtime/export-api.ts
similarity index 100%
rename from src/mono/wasm/runtime/export-api.ts
rename to src/mono/browser/runtime/export-api.ts
diff --git a/src/mono/wasm/runtime/exports-binding.ts b/src/mono/browser/runtime/exports-binding.ts
similarity index 100%
rename from src/mono/wasm/runtime/exports-binding.ts
rename to src/mono/browser/runtime/exports-binding.ts
diff --git a/src/mono/wasm/runtime/exports-internal.ts b/src/mono/browser/runtime/exports-internal.ts
similarity index 100%
rename from src/mono/wasm/runtime/exports-internal.ts
rename to src/mono/browser/runtime/exports-internal.ts
diff --git a/src/mono/wasm/runtime/exports-linker.ts b/src/mono/browser/runtime/exports-linker.ts
similarity index 100%
rename from src/mono/wasm/runtime/exports-linker.ts
rename to src/mono/browser/runtime/exports-linker.ts
diff --git a/src/mono/wasm/runtime/exports.ts b/src/mono/browser/runtime/exports.ts
similarity index 100%
rename from src/mono/wasm/runtime/exports.ts
rename to src/mono/browser/runtime/exports.ts
diff --git a/src/mono/wasm/runtime/gc-common.h b/src/mono/browser/runtime/gc-common.h
similarity index 100%
rename from src/mono/wasm/runtime/gc-common.h
rename to src/mono/browser/runtime/gc-common.h
diff --git a/src/mono/wasm/runtime/gc-handles.ts b/src/mono/browser/runtime/gc-handles.ts
similarity index 100%
rename from src/mono/wasm/runtime/gc-handles.ts
rename to src/mono/browser/runtime/gc-handles.ts
diff --git a/src/mono/wasm/runtime/gc-lock.ts b/src/mono/browser/runtime/gc-lock.ts
similarity index 100%
rename from src/mono/wasm/runtime/gc-lock.ts
rename to src/mono/browser/runtime/gc-lock.ts
diff --git a/src/mono/wasm/runtime/genmintops.py b/src/mono/browser/runtime/genmintops.py
similarity index 100%
rename from src/mono/wasm/runtime/genmintops.py
rename to src/mono/browser/runtime/genmintops.py
diff --git a/src/mono/wasm/runtime/globals.ts b/src/mono/browser/runtime/globals.ts
similarity index 100%
rename from src/mono/wasm/runtime/globals.ts
rename to src/mono/browser/runtime/globals.ts
diff --git a/src/mono/wasm/runtime/guarded-promise.ts b/src/mono/browser/runtime/guarded-promise.ts
similarity index 100%
rename from src/mono/wasm/runtime/guarded-promise.ts
rename to src/mono/browser/runtime/guarded-promise.ts
diff --git a/src/mono/wasm/runtime/http.ts b/src/mono/browser/runtime/http.ts
similarity index 100%
rename from src/mono/wasm/runtime/http.ts
rename to src/mono/browser/runtime/http.ts
diff --git a/src/mono/wasm/runtime/hybrid-globalization/calendar.ts b/src/mono/browser/runtime/hybrid-globalization/calendar.ts
similarity index 100%
rename from src/mono/wasm/runtime/hybrid-globalization/calendar.ts
rename to src/mono/browser/runtime/hybrid-globalization/calendar.ts
diff --git a/src/mono/wasm/runtime/hybrid-globalization/change-case.ts b/src/mono/browser/runtime/hybrid-globalization/change-case.ts
similarity index 100%
rename from src/mono/wasm/runtime/hybrid-globalization/change-case.ts
rename to src/mono/browser/runtime/hybrid-globalization/change-case.ts
diff --git a/src/mono/wasm/runtime/hybrid-globalization/collations.ts b/src/mono/browser/runtime/hybrid-globalization/collations.ts
similarity index 100%
rename from src/mono/wasm/runtime/hybrid-globalization/collations.ts
rename to src/mono/browser/runtime/hybrid-globalization/collations.ts
diff --git a/src/mono/wasm/runtime/hybrid-globalization/culture-info.ts b/src/mono/browser/runtime/hybrid-globalization/culture-info.ts
similarity index 100%
rename from src/mono/wasm/runtime/hybrid-globalization/culture-info.ts
rename to src/mono/browser/runtime/hybrid-globalization/culture-info.ts
diff --git a/src/mono/wasm/runtime/hybrid-globalization/helpers.ts b/src/mono/browser/runtime/hybrid-globalization/helpers.ts
similarity index 100%
rename from src/mono/wasm/runtime/hybrid-globalization/helpers.ts
rename to src/mono/browser/runtime/hybrid-globalization/helpers.ts
diff --git a/src/mono/wasm/runtime/hybrid-globalization/locales.ts b/src/mono/browser/runtime/hybrid-globalization/locales.ts
similarity index 100%
rename from src/mono/wasm/runtime/hybrid-globalization/locales.ts
rename to src/mono/browser/runtime/hybrid-globalization/locales.ts
diff --git a/src/mono/wasm/runtime/icu.ts b/src/mono/browser/runtime/icu.ts
similarity index 100%
rename from src/mono/wasm/runtime/icu.ts
rename to src/mono/browser/runtime/icu.ts
diff --git a/src/mono/wasm/runtime/interp-pgo.ts b/src/mono/browser/runtime/interp-pgo.ts
similarity index 100%
rename from src/mono/wasm/runtime/interp-pgo.ts
rename to src/mono/browser/runtime/interp-pgo.ts
diff --git a/src/mono/wasm/runtime/invoke-cs.ts b/src/mono/browser/runtime/invoke-cs.ts
similarity index 100%
rename from src/mono/wasm/runtime/invoke-cs.ts
rename to src/mono/browser/runtime/invoke-cs.ts
diff --git a/src/mono/wasm/runtime/invoke-js.ts b/src/mono/browser/runtime/invoke-js.ts
similarity index 100%
rename from src/mono/wasm/runtime/invoke-js.ts
rename to src/mono/browser/runtime/invoke-js.ts
diff --git a/src/mono/wasm/runtime/jiterpreter-enums.ts b/src/mono/browser/runtime/jiterpreter-enums.ts
similarity index 100%
rename from src/mono/wasm/runtime/jiterpreter-enums.ts
rename to src/mono/browser/runtime/jiterpreter-enums.ts
diff --git a/src/mono/wasm/runtime/jiterpreter-interp-entry.ts b/src/mono/browser/runtime/jiterpreter-interp-entry.ts
similarity index 100%
rename from src/mono/wasm/runtime/jiterpreter-interp-entry.ts
rename to src/mono/browser/runtime/jiterpreter-interp-entry.ts
diff --git a/src/mono/wasm/runtime/jiterpreter-jit-call.ts b/src/mono/browser/runtime/jiterpreter-jit-call.ts
similarity index 100%
rename from src/mono/wasm/runtime/jiterpreter-jit-call.ts
rename to src/mono/browser/runtime/jiterpreter-jit-call.ts
diff --git a/src/mono/wasm/runtime/jiterpreter-opcodes.ts b/src/mono/browser/runtime/jiterpreter-opcodes.ts
similarity index 100%
rename from src/mono/wasm/runtime/jiterpreter-opcodes.ts
rename to src/mono/browser/runtime/jiterpreter-opcodes.ts
diff --git a/src/mono/wasm/runtime/jiterpreter-support.ts b/src/mono/browser/runtime/jiterpreter-support.ts
similarity index 100%
rename from src/mono/wasm/runtime/jiterpreter-support.ts
rename to src/mono/browser/runtime/jiterpreter-support.ts
diff --git a/src/mono/wasm/runtime/jiterpreter-tables.ts b/src/mono/browser/runtime/jiterpreter-tables.ts
similarity index 100%
rename from src/mono/wasm/runtime/jiterpreter-tables.ts
rename to src/mono/browser/runtime/jiterpreter-tables.ts
diff --git a/src/mono/wasm/runtime/jiterpreter-trace-generator.ts b/src/mono/browser/runtime/jiterpreter-trace-generator.ts
similarity index 100%
rename from src/mono/wasm/runtime/jiterpreter-trace-generator.ts
rename to src/mono/browser/runtime/jiterpreter-trace-generator.ts
diff --git a/src/mono/wasm/runtime/jiterpreter.ts b/src/mono/browser/runtime/jiterpreter.ts
similarity index 100%
rename from src/mono/wasm/runtime/jiterpreter.ts
rename to src/mono/browser/runtime/jiterpreter.ts
diff --git a/src/mono/wasm/runtime/lazyLoading.ts b/src/mono/browser/runtime/lazyLoading.ts
similarity index 100%
rename from src/mono/wasm/runtime/lazyLoading.ts
rename to src/mono/browser/runtime/lazyLoading.ts
diff --git a/src/mono/wasm/runtime/linker-preserves.xml b/src/mono/browser/runtime/linker-preserves.xml
similarity index 100%
rename from src/mono/wasm/runtime/linker-preserves.xml
rename to src/mono/browser/runtime/linker-preserves.xml
diff --git a/src/mono/wasm/runtime/loader/assets.ts b/src/mono/browser/runtime/loader/assets.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/assets.ts
rename to src/mono/browser/runtime/loader/assets.ts
diff --git a/src/mono/wasm/runtime/loader/assetsCache.ts b/src/mono/browser/runtime/loader/assetsCache.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/assetsCache.ts
rename to src/mono/browser/runtime/loader/assetsCache.ts
diff --git a/src/mono/wasm/runtime/loader/config.ts b/src/mono/browser/runtime/loader/config.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/config.ts
rename to src/mono/browser/runtime/loader/config.ts
diff --git a/src/mono/wasm/runtime/loader/exit.ts b/src/mono/browser/runtime/loader/exit.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/exit.ts
rename to src/mono/browser/runtime/loader/exit.ts
diff --git a/src/mono/wasm/runtime/loader/globals.ts b/src/mono/browser/runtime/loader/globals.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/globals.ts
rename to src/mono/browser/runtime/loader/globals.ts
diff --git a/src/mono/wasm/runtime/loader/icu.ts b/src/mono/browser/runtime/loader/icu.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/icu.ts
rename to src/mono/browser/runtime/loader/icu.ts
diff --git a/src/mono/wasm/runtime/loader/index.ts b/src/mono/browser/runtime/loader/index.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/index.ts
rename to src/mono/browser/runtime/loader/index.ts
diff --git a/src/mono/wasm/runtime/loader/libraryInitializers.ts b/src/mono/browser/runtime/loader/libraryInitializers.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/libraryInitializers.ts
rename to src/mono/browser/runtime/loader/libraryInitializers.ts
diff --git a/src/mono/wasm/runtime/loader/logging.ts b/src/mono/browser/runtime/loader/logging.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/logging.ts
rename to src/mono/browser/runtime/loader/logging.ts
diff --git a/src/mono/wasm/runtime/loader/polyfills.ts b/src/mono/browser/runtime/loader/polyfills.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/polyfills.ts
rename to src/mono/browser/runtime/loader/polyfills.ts
diff --git a/src/mono/wasm/runtime/loader/promise-controller.ts b/src/mono/browser/runtime/loader/promise-controller.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/promise-controller.ts
rename to src/mono/browser/runtime/loader/promise-controller.ts
diff --git a/src/mono/wasm/runtime/loader/run.ts b/src/mono/browser/runtime/loader/run.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/run.ts
rename to src/mono/browser/runtime/loader/run.ts
diff --git a/src/mono/wasm/runtime/loader/worker.ts b/src/mono/browser/runtime/loader/worker.ts
similarity index 100%
rename from src/mono/wasm/runtime/loader/worker.ts
rename to src/mono/browser/runtime/loader/worker.ts
diff --git a/src/mono/wasm/runtime/logging.ts b/src/mono/browser/runtime/logging.ts
similarity index 100%
rename from src/mono/wasm/runtime/logging.ts
rename to src/mono/browser/runtime/logging.ts
diff --git a/src/mono/wasm/runtime/managed-exports.ts b/src/mono/browser/runtime/managed-exports.ts
similarity index 100%
rename from src/mono/wasm/runtime/managed-exports.ts
rename to src/mono/browser/runtime/managed-exports.ts
diff --git a/src/mono/wasm/runtime/marshal-to-cs.ts b/src/mono/browser/runtime/marshal-to-cs.ts
similarity index 100%
rename from src/mono/wasm/runtime/marshal-to-cs.ts
rename to src/mono/browser/runtime/marshal-to-cs.ts
diff --git a/src/mono/wasm/runtime/marshal-to-js.ts b/src/mono/browser/runtime/marshal-to-js.ts
similarity index 100%
rename from src/mono/wasm/runtime/marshal-to-js.ts
rename to src/mono/browser/runtime/marshal-to-js.ts
diff --git a/src/mono/wasm/runtime/marshal.ts b/src/mono/browser/runtime/marshal.ts
similarity index 100%
rename from src/mono/wasm/runtime/marshal.ts
rename to src/mono/browser/runtime/marshal.ts
diff --git a/src/mono/wasm/runtime/memory.ts b/src/mono/browser/runtime/memory.ts
similarity index 100%
rename from src/mono/wasm/runtime/memory.ts
rename to src/mono/browser/runtime/memory.ts
diff --git a/src/mono/wasm/runtime/modularize-dotnet.md b/src/mono/browser/runtime/modularize-dotnet.md
similarity index 100%
rename from src/mono/wasm/runtime/modularize-dotnet.md
rename to src/mono/browser/runtime/modularize-dotnet.md
diff --git a/src/mono/wasm/runtime/net6-legacy/buffers.ts b/src/mono/browser/runtime/net6-legacy/buffers.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/buffers.ts
rename to src/mono/browser/runtime/net6-legacy/buffers.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/corebindings.ts b/src/mono/browser/runtime/net6-legacy/corebindings.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/corebindings.ts
rename to src/mono/browser/runtime/net6-legacy/corebindings.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/cs-to-js.ts b/src/mono/browser/runtime/net6-legacy/cs-to-js.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/cs-to-js.ts
rename to src/mono/browser/runtime/net6-legacy/cs-to-js.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/export-types.ts b/src/mono/browser/runtime/net6-legacy/export-types.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/export-types.ts
rename to src/mono/browser/runtime/net6-legacy/export-types.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/exports-legacy.ts b/src/mono/browser/runtime/net6-legacy/exports-legacy.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/exports-legacy.ts
rename to src/mono/browser/runtime/net6-legacy/exports-legacy.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/globals.ts b/src/mono/browser/runtime/net6-legacy/globals.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/globals.ts
rename to src/mono/browser/runtime/net6-legacy/globals.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/js-to-cs.ts b/src/mono/browser/runtime/net6-legacy/js-to-cs.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/js-to-cs.ts
rename to src/mono/browser/runtime/net6-legacy/js-to-cs.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/method-binding.ts b/src/mono/browser/runtime/net6-legacy/method-binding.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/method-binding.ts
rename to src/mono/browser/runtime/net6-legacy/method-binding.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/method-calls.ts b/src/mono/browser/runtime/net6-legacy/method-calls.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/method-calls.ts
rename to src/mono/browser/runtime/net6-legacy/method-calls.ts
diff --git a/src/mono/wasm/runtime/net6-legacy/strings.ts b/src/mono/browser/runtime/net6-legacy/strings.ts
similarity index 100%
rename from src/mono/wasm/runtime/net6-legacy/strings.ts
rename to src/mono/browser/runtime/net6-legacy/strings.ts
diff --git a/src/mono/wasm/runtime/package-lock.json b/src/mono/browser/runtime/package-lock.json
similarity index 100%
rename from src/mono/wasm/runtime/package-lock.json
rename to src/mono/browser/runtime/package-lock.json
diff --git a/src/mono/wasm/runtime/package.json b/src/mono/browser/runtime/package.json
similarity index 100%
rename from src/mono/wasm/runtime/package.json
rename to src/mono/browser/runtime/package.json
diff --git a/src/mono/wasm/runtime/pinvoke.c b/src/mono/browser/runtime/pinvoke.c
similarity index 100%
rename from src/mono/wasm/runtime/pinvoke.c
rename to src/mono/browser/runtime/pinvoke.c
diff --git a/src/mono/wasm/runtime/pinvoke.h b/src/mono/browser/runtime/pinvoke.h
similarity index 100%
rename from src/mono/wasm/runtime/pinvoke.h
rename to src/mono/browser/runtime/pinvoke.h
diff --git a/src/mono/wasm/runtime/polyfills.ts b/src/mono/browser/runtime/polyfills.ts
similarity index 100%
rename from src/mono/wasm/runtime/polyfills.ts
rename to src/mono/browser/runtime/polyfills.ts
diff --git a/src/mono/wasm/runtime/profiler.ts b/src/mono/browser/runtime/profiler.ts
similarity index 100%
rename from src/mono/wasm/runtime/profiler.ts
rename to src/mono/browser/runtime/profiler.ts
diff --git a/src/mono/wasm/runtime/pthreads/README.md b/src/mono/browser/runtime/pthreads/README.md
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/README.md
rename to src/mono/browser/runtime/pthreads/README.md
diff --git a/src/mono/wasm/runtime/pthreads/browser/index.ts b/src/mono/browser/runtime/pthreads/browser/index.ts
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/browser/index.ts
rename to src/mono/browser/runtime/pthreads/browser/index.ts
diff --git a/src/mono/wasm/runtime/pthreads/shared/emscripten-internals.ts b/src/mono/browser/runtime/pthreads/shared/emscripten-internals.ts
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/shared/emscripten-internals.ts
rename to src/mono/browser/runtime/pthreads/shared/emscripten-internals.ts
diff --git a/src/mono/wasm/runtime/pthreads/shared/emscripten-replacements.ts b/src/mono/browser/runtime/pthreads/shared/emscripten-replacements.ts
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/shared/emscripten-replacements.ts
rename to src/mono/browser/runtime/pthreads/shared/emscripten-replacements.ts
diff --git a/src/mono/wasm/runtime/pthreads/shared/eventloop.ts b/src/mono/browser/runtime/pthreads/shared/eventloop.ts
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/shared/eventloop.ts
rename to src/mono/browser/runtime/pthreads/shared/eventloop.ts
diff --git a/src/mono/wasm/runtime/pthreads/shared/index.ts b/src/mono/browser/runtime/pthreads/shared/index.ts
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/shared/index.ts
rename to src/mono/browser/runtime/pthreads/shared/index.ts
diff --git a/src/mono/wasm/runtime/pthreads/shared/tsconfig.json b/src/mono/browser/runtime/pthreads/shared/tsconfig.json
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/shared/tsconfig.json
rename to src/mono/browser/runtime/pthreads/shared/tsconfig.json
diff --git a/src/mono/wasm/runtime/pthreads/shared/types.ts b/src/mono/browser/runtime/pthreads/shared/types.ts
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/shared/types.ts
rename to src/mono/browser/runtime/pthreads/shared/types.ts
diff --git a/src/mono/wasm/runtime/pthreads/worker/events.ts b/src/mono/browser/runtime/pthreads/worker/events.ts
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/worker/events.ts
rename to src/mono/browser/runtime/pthreads/worker/events.ts
diff --git a/src/mono/wasm/runtime/pthreads/worker/index.ts b/src/mono/browser/runtime/pthreads/worker/index.ts
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/worker/index.ts
rename to src/mono/browser/runtime/pthreads/worker/index.ts
diff --git a/src/mono/wasm/runtime/pthreads/worker/tsconfig.json b/src/mono/browser/runtime/pthreads/worker/tsconfig.json
similarity index 100%
rename from src/mono/wasm/runtime/pthreads/worker/tsconfig.json
rename to src/mono/browser/runtime/pthreads/worker/tsconfig.json
diff --git a/src/mono/wasm/runtime/queue.ts b/src/mono/browser/runtime/queue.ts
similarity index 100%
rename from src/mono/wasm/runtime/queue.ts
rename to src/mono/browser/runtime/queue.ts
diff --git a/src/mono/wasm/runtime/rollup.config.js b/src/mono/browser/runtime/rollup.config.js
similarity index 100%
rename from src/mono/wasm/runtime/rollup.config.js
rename to src/mono/browser/runtime/rollup.config.js
diff --git a/src/mono/wasm/runtime/roots.ts b/src/mono/browser/runtime/roots.ts
similarity index 100%
rename from src/mono/wasm/runtime/roots.ts
rename to src/mono/browser/runtime/roots.ts
diff --git a/src/mono/wasm/runtime/run.ts b/src/mono/browser/runtime/run.ts
similarity index 100%
rename from src/mono/wasm/runtime/run.ts
rename to src/mono/browser/runtime/run.ts
diff --git a/src/mono/wasm/runtime/runtime.c b/src/mono/browser/runtime/runtime.c
similarity index 100%
rename from src/mono/wasm/runtime/runtime.c
rename to src/mono/browser/runtime/runtime.c
diff --git a/src/mono/wasm/runtime/runtime.h b/src/mono/browser/runtime/runtime.h
similarity index 100%
rename from src/mono/wasm/runtime/runtime.h
rename to src/mono/browser/runtime/runtime.h
diff --git a/src/mono/wasm/runtime/satelliteAssemblies.ts b/src/mono/browser/runtime/satelliteAssemblies.ts
similarity index 100%
rename from src/mono/wasm/runtime/satelliteAssemblies.ts
rename to src/mono/browser/runtime/satelliteAssemblies.ts
diff --git a/src/mono/wasm/runtime/scheduling.ts b/src/mono/browser/runtime/scheduling.ts
similarity index 100%
rename from src/mono/wasm/runtime/scheduling.ts
rename to src/mono/browser/runtime/scheduling.ts
diff --git a/src/mono/wasm/runtime/snapshot.ts b/src/mono/browser/runtime/snapshot.ts
similarity index 100%
rename from src/mono/wasm/runtime/snapshot.ts
rename to src/mono/browser/runtime/snapshot.ts
diff --git a/src/mono/wasm/runtime/startup.ts b/src/mono/browser/runtime/startup.ts
similarity index 100%
rename from src/mono/wasm/runtime/startup.ts
rename to src/mono/browser/runtime/startup.ts
diff --git a/src/mono/wasm/runtime/strings.ts b/src/mono/browser/runtime/strings.ts
similarity index 100%
rename from src/mono/wasm/runtime/strings.ts
rename to src/mono/browser/runtime/strings.ts
diff --git a/src/mono/wasm/runtime/tsconfig.json b/src/mono/browser/runtime/tsconfig.json
similarity index 100%
rename from src/mono/wasm/runtime/tsconfig.json
rename to src/mono/browser/runtime/tsconfig.json
diff --git a/src/mono/wasm/runtime/tsconfig.shared.json b/src/mono/browser/runtime/tsconfig.shared.json
similarity index 100%
rename from src/mono/wasm/runtime/tsconfig.shared.json
rename to src/mono/browser/runtime/tsconfig.shared.json
diff --git a/src/mono/wasm/runtime/tsconfig.worker.json b/src/mono/browser/runtime/tsconfig.worker.json
similarity index 100%
rename from src/mono/wasm/runtime/tsconfig.worker.json
rename to src/mono/browser/runtime/tsconfig.worker.json
diff --git a/src/mono/wasm/runtime/types/consts.d.ts b/src/mono/browser/runtime/types/consts.d.ts
similarity index 100%
rename from src/mono/wasm/runtime/types/consts.d.ts
rename to src/mono/browser/runtime/types/consts.d.ts
diff --git a/src/mono/wasm/runtime/types/emscripten.ts b/src/mono/browser/runtime/types/emscripten.ts
similarity index 100%
rename from src/mono/wasm/runtime/types/emscripten.ts
rename to src/mono/browser/runtime/types/emscripten.ts
diff --git a/src/mono/wasm/runtime/types/export-types.ts b/src/mono/browser/runtime/types/export-types.ts
similarity index 100%
rename from src/mono/wasm/runtime/types/export-types.ts
rename to src/mono/browser/runtime/types/export-types.ts
diff --git a/src/mono/wasm/runtime/types/index.ts b/src/mono/browser/runtime/types/index.ts
similarity index 100%
rename from src/mono/wasm/runtime/types/index.ts
rename to src/mono/browser/runtime/types/index.ts
diff --git a/src/mono/wasm/runtime/types/internal.ts b/src/mono/browser/runtime/types/internal.ts
similarity index 100%
rename from src/mono/wasm/runtime/types/internal.ts
rename to src/mono/browser/runtime/types/internal.ts
diff --git a/src/mono/wasm/runtime/types/node.d.ts b/src/mono/browser/runtime/types/node.d.ts
similarity index 100%
rename from src/mono/wasm/runtime/types/node.d.ts
rename to src/mono/browser/runtime/types/node.d.ts
diff --git a/src/mono/wasm/runtime/types/sidecar.d.ts b/src/mono/browser/runtime/types/sidecar.d.ts
similarity index 100%
rename from src/mono/wasm/runtime/types/sidecar.d.ts
rename to src/mono/browser/runtime/types/sidecar.d.ts
diff --git a/src/mono/wasm/runtime/types/v8.d.ts b/src/mono/browser/runtime/types/v8.d.ts
similarity index 100%
rename from src/mono/wasm/runtime/types/v8.d.ts
rename to src/mono/browser/runtime/types/v8.d.ts
diff --git a/src/mono/wasm/runtime/wasm-config.h.in b/src/mono/browser/runtime/wasm-config.h.in
similarity index 100%
rename from src/mono/wasm/runtime/wasm-config.h.in
rename to src/mono/browser/runtime/wasm-config.h.in
diff --git a/src/mono/wasm/runtime/weak-ref.ts b/src/mono/browser/runtime/weak-ref.ts
similarity index 100%
rename from src/mono/wasm/runtime/weak-ref.ts
rename to src/mono/browser/runtime/weak-ref.ts
diff --git a/src/mono/wasm/runtime/web-socket.ts b/src/mono/browser/runtime/web-socket.ts
similarity index 100%
rename from src/mono/wasm/runtime/web-socket.ts
rename to src/mono/browser/runtime/web-socket.ts
diff --git a/src/mono/wasm/runtime/workers/README.md b/src/mono/browser/runtime/workers/README.md
similarity index 98%
rename from src/mono/wasm/runtime/workers/README.md
rename to src/mono/browser/runtime/workers/README.md
index ed2837c87c5d6a..8c7eed7c41134f 100644
--- a/src/mono/wasm/runtime/workers/README.md
+++ b/src/mono/browser/runtime/workers/README.md
@@ -33,7 +33,7 @@ the size of the overall bundle.
 There are additional changes that are needed beyond just adding a new `dotnet-*-worker.[tj]s` file in this directory.
 
 Some other places that may need to be modified include:
-* [`../../wasm.proj`](../../wasm.proj)
+* [`../../browser.proj`](../../browser.proj)
 * `eng/liveBuilds.targets`
 * `src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.prop`
 * [`../../build/BrowserWasmApp.targets`](../../build/BrowserWasmApp.targets)
diff --git a/src/mono/wasm/runtime/workers/tsconfig.json b/src/mono/browser/runtime/workers/tsconfig.json
similarity index 100%
rename from src/mono/wasm/runtime/workers/tsconfig.json
rename to src/mono/browser/runtime/workers/tsconfig.json
diff --git a/src/mono/wasm/sanitize.py b/src/mono/browser/sanitize.py
similarity index 100%
rename from src/mono/wasm/sanitize.py
rename to src/mono/browser/sanitize.py
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 297a7058dffaaf..f0ff14d0568288 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -83,14 +83,14 @@
 
   <ItemGroup Condition="'$(TargetsBrowser)' == 'true' or '$(TargetsWasi)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsMacCatalyst)' == 'true'">
     <PackageReference Include="Microsoft.NETCore.Runtime.ICU.Transport" PrivateAssets="all" Version="$(MicrosoftNETCoreRuntimeICUTransportVersion)" GeneratePathProperty="true" />
-    <PackageReference Condition="'$(HostOS)' == 'windows'" 
+    <PackageReference Condition="'$(HostOS)' == 'windows'"
                       Include="Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-x64"
                       PrivateAssets="all"
                       Version="$(MicrosoftNETRuntimeEmscripten3134Pythonwinx64Version)"
                       GeneratePathProperty="true" />
   </ItemGroup>
 
-  <!-- 
+  <!--
     Like Wasm, Wasi needs a 64-bit python on windows to pinvoke into libClang.dll for offset generation.
     Only wasi doesn't come with its own python and windows uses 32-bit python, so refer to the transport pack instead.
   -->
@@ -149,7 +149,7 @@
   <!-- Sets up emscripten if you don't have the EMSDK_PATH env variable set -->
   <Target Name="ProvisionEmscripten"
           Condition="'$(ShouldProvisionEmscripten)' == 'true' and '$(SkipMonoCrossJitConfigure)' != 'true'">
-    <ReadLinesFromFile File="$(MSBuildThisFileDirectory)\wasm\emscripten-version.txt">
+    <ReadLinesFromFile File="$(MSBuildThisFileDirectory)\browser\emscripten-version.txt">
       <Output TaskParameter="Lines" ItemName="_VersionLines" />
     </ReadLinesFromFile>
 
@@ -157,7 +157,7 @@
       <EmsdkExt Condition="'$(HostOS)' != 'windows'"></EmsdkExt>
       <EmsdkExt Condition="'$(HostOS)' == 'windows'">.ps1</EmsdkExt>
       <EMSDK_PATH>$(ProvisionEmscriptenDir)</EMSDK_PATH>
-      <WasmLocalPath>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'wasm'))</WasmLocalPath>
+      <BrowserLocalPath>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'browser'))</BrowserLocalPath>
       <EmsdkLocalPath>emsdk</EmsdkLocalPath>
       <EmscriptenVersion>%(_VersionLines.Identity)</EmscriptenVersion>
 
@@ -170,7 +170,7 @@
 
     <RemoveDir Directories="$(EMSDK_PATH)" />
     <Exec Command="git clone https://github.com/emscripten-core/emsdk.git emsdk"
-          WorkingDirectory="$(WasmLocalPath)"
+          WorkingDirectory="$(BrowserLocalPath)"
           IgnoreStandardErrorWarningFormat="true" />
     <Exec Command="git checkout $(EmscriptenVersion) &amp;&amp; $(InstallCmd) &amp;&amp; $(ActivateCmd)"
           WorkingDirectory="$(EMSDK_PATH)"
@@ -456,8 +456,8 @@
       use $(CrossToolchainFile) and eng/common/cross/toolchain.cmake ?
       sockets,eventpipe, DENABLE_LLVM_RUNTIME
       -->
-      <_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'wasi', 'include').Replace('\','/'))$(EscapedQuoteW)"/>
-      <_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'wasi', 'mono-include').Replace('\','/'))$(EscapedQuoteW)"/>
+      <_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath($(WasiProjectRoot), 'include').Replace('\','/'))$(EscapedQuoteW)"/>
+      <_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath($(WasiProjectRoot), 'mono-include').Replace('\','/'))$(EscapedQuoteW)"/>
       <_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(RepoRoot)', 'src', 'native', 'public').Replace('\','/'))$(EscapedQuoteW)"/>
       <_MonoCFLAGS Include="$(EscapedQuoteW)-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'mono', 'eglib').Replace('\','/'))$(EscapedQuoteW)"/>
       <_MonoCFLAGS Include="-D_WASI_EMULATED_PROCESS_CLOCKS"/>
diff --git a/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Sdk/Microsoft.NET.Runtime.WebAssembly.Sdk.pkgproj b/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Sdk/Microsoft.NET.Runtime.WebAssembly.Sdk.pkgproj
index cce9b07be426bc..60aa2253ff8e29 100644
--- a/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Sdk/Microsoft.NET.Runtime.WebAssembly.Sdk.pkgproj
+++ b/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Sdk/Microsoft.NET.Runtime.WebAssembly.Sdk.pkgproj
@@ -8,20 +8,20 @@
   <ItemGroup>
     <ProjectReference Include="$(RepoTasksDir)WasmAppBuilder\WasmAppBuilder.csproj" />
     <ProjectReference Include="$(RepoTasksDir)WasmBuildTasks\WasmBuildTasks.csproj" />
-    <ProjectReference Include="$(RepoRoot)src\mono\wasm\host\WasmAppHost.csproj" />
+    <ProjectReference Include="$(WasmProjectRoot)host\WasmAppHost.csproj" />
 
     <PackageFile Include="Sdk\AutoImport.props" TargetPath="Sdk" />
     <PackageFile Include="Sdk\Sdk.props" TargetPath="Sdk" />
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\ILLink.Substitutions.*.xml" TargetPath="Sdk" />
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\ILLink.Descriptors.*.xml" TargetPath="Sdk" />
+    <PackageFile Include="$(BrowserProjectRoot)build\ILLink.Substitutions.*.xml" TargetPath="Sdk" />
+    <PackageFile Include="$(BrowserProjectRoot)build\ILLink.Descriptors.*.xml" TargetPath="Sdk" />
 
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\BrowserWasmApp.props" TargetPath="Sdk" />
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\BrowserWasmApp.targets" TargetPath="Sdk" />
+    <PackageFile Include="$(BrowserProjectRoot)build\BrowserWasmApp.props" TargetPath="Sdk" />
+    <PackageFile Include="$(BrowserProjectRoot)build\BrowserWasmApp.targets" TargetPath="Sdk" />
 
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\WasmApp.Common.props" TargetPath="Sdk" />
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\WasmApp.Common.targets" TargetPath="Sdk" />
+    <PackageFile Include="$(WasmProjectRoot)build\WasmApp.Common.props" TargetPath="Sdk" />
+    <PackageFile Include="$(WasmProjectRoot)build\WasmApp.Common.targets" TargetPath="Sdk" />
 
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\EmSdkRepo.Defaults.props" TargetPath="Sdk" />
+    <PackageFile Include="$(BrowserProjectRoot)build\EmSdkRepo.Defaults.props" TargetPath="Sdk" />
   </ItemGroup>
 
   <Target Name="_PrepareForPack" BeforeTargets="GetPackageFiles">
diff --git a/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.pkgproj b/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.pkgproj
index 0ecece2893dd3a..0e569168b9b256 100644
--- a/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.pkgproj
+++ b/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.pkgproj
@@ -8,17 +8,17 @@
   <ItemGroup>
     <ProjectReference Include="$(RepoTasksDir)WasmAppBuilder\WasmAppBuilder.csproj" />
     <ProjectReference Include="$(RepoTasksDir)WasmBuildTasks\WasmBuildTasks.csproj" />
-    <ProjectReference Include="$(RepoRoot)src\mono\wasm\host\WasmAppHost.csproj" />
+    <ProjectReference Include="$(WasmProjectRoot)host\WasmAppHost.csproj" />
 
     <PackageFile Include="Sdk\AutoImport.props" TargetPath="Sdk" />
     <PackageFile Include="Sdk\Sdk.props" TargetPath="Sdk" />
-    <PackageFile Include="$(RepoRoot)\src\mono\wasi\build\WasiApp.props" TargetPath="Sdk" />
-    <PackageFile Include="$(RepoRoot)\src\mono\wasi\build\WasiApp.targets" TargetPath="Sdk" />
+    <PackageFile Include="$(WasiProjectRoot)build\WasiApp.props" TargetPath="Sdk" />
+    <PackageFile Include="$(WasiProjectRoot)build\WasiApp.targets" TargetPath="Sdk" />
 
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\WasmApp.Common.props" TargetPath="Sdk" />
-    <PackageFile Include="$(RepoRoot)\src\mono\wasm\build\WasmApp.Common.targets" TargetPath="Sdk" />
+    <PackageFile Include="$(WasmProjectRoot)build\WasmApp.Common.props" TargetPath="Sdk" />
+    <PackageFile Include="$(WasmProjectRoot)build\WasmApp.Common.targets" TargetPath="Sdk" />
 
-    <PackageFile Include="$(RepoRoot)\src\mono\wasi\build\WasiSdk.Defaults.props" TargetPath="Sdk" />
+    <PackageFile Include="$(WasiProjectRoot)build\WasiSdk.Defaults.props" TargetPath="Sdk" />
   </ItemGroup>
 
   <Target Name="_PrepareForPack" BeforeTargets="GetPackageFiles">
diff --git a/src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/Microsoft.NETCore.BrowserDebugHost.Transport.pkgproj b/src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/Microsoft.NETCore.BrowserDebugHost.Transport.pkgproj
index 8294b2cbd38dc0..15337e230f9bb4 100644
--- a/src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/Microsoft.NETCore.BrowserDebugHost.Transport.pkgproj
+++ b/src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/Microsoft.NETCore.BrowserDebugHost.Transport.pkgproj
@@ -7,7 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="$(MonoProjectRoot)wasm\debugger\BrowserDebugHost\BrowserDebugHost.csproj" />
+    <ProjectReference Include="$(MonoProjectRoot)browser\debugger\BrowserDebugHost\BrowserDebugHost.csproj" />
   </ItemGroup>
 
   <ItemGroup>
diff --git a/src/mono/sample/mbr/browser/WasmDelta.csproj b/src/mono/sample/mbr/browser/WasmDelta.csproj
index 5bc8d24aa5b384..162a8f9a2ac9ed 100644
--- a/src/mono/sample/mbr/browser/WasmDelta.csproj
+++ b/src/mono/sample/mbr/browser/WasmDelta.csproj
@@ -1,5 +1,5 @@
 <Project Sdk="Microsoft.NET.Sdk">
-  <Import Project="$(MonoProjectRoot)wasm\build\WasmApp.InTree.props" />
+  <Import Project="$(BrowserProjectRoot)build\WasmApp.InTree.props" />
 
   <PropertyGroup>
     <Configuration>Release</Configuration>
@@ -51,7 +51,7 @@
 
   <!-- Set RoslynILDiffFullPath property to the path of roslynildiff -->
   <Import Project="..\DeltaHelper.targets" />
-  <Import Project="$(MonoProjectRoot)wasm\build\WasmApp.InTree.targets" />
+  <Import Project="$(BrowserProjectRoot)build\WasmApp.InTree.targets" />
 
   <Target Name="RunSample" DependsOnTargets="Build">
     <Exec Command="$(_Dotnet) serve -S -o -d:bin/$(Configuration)/AppBundle -p:8000 --mime .mjs=text/javascript" IgnoreExitCode="true" YieldDuringToolExecution="true" />
diff --git a/src/mono/sample/wasi/Directory.Build.props b/src/mono/sample/wasi/Directory.Build.props
index f2ecb0d30b5db4..28a09db931ed21 100644
--- a/src/mono/sample/wasi/Directory.Build.props
+++ b/src/mono/sample/wasi/Directory.Build.props
@@ -33,5 +33,5 @@
   </ItemGroup>
 
   <!-- Import late, so properties like $(ArtifactsBinDir) are set -->
-  <Import Project="$(MonoProjectRoot)wasi\build\WasiApp.InTree.props" />
+  <Import Project="$(WasiProjectRoot)build\WasiApp.InTree.props" />
 </Project>
diff --git a/src/mono/sample/wasm/Directory.Build.props b/src/mono/sample/wasm/Directory.Build.props
index 25a48ae56c05e7..93717b5fbb4f50 100644
--- a/src/mono/sample/wasm/Directory.Build.props
+++ b/src/mono/sample/wasm/Directory.Build.props
@@ -35,5 +35,5 @@
   </ItemGroup>
 
   <!-- Import late, so properties like $(ArtifactsBinDir) are set -->
-  <Import Project="$(MonoProjectRoot)wasm\build\WasmApp.InTree.props" />
+  <Import Project="$(BrowserProjectRoot)build\WasmApp.InTree.props" />
 </Project>
diff --git a/src/mono/sample/wasm/Directory.Build.targets b/src/mono/sample/wasm/Directory.Build.targets
index 13379588de89a9..06420b57f327c9 100644
--- a/src/mono/sample/wasm/Directory.Build.targets
+++ b/src/mono/sample/wasm/Directory.Build.targets
@@ -1,6 +1,6 @@
 <Project>
   <Import Project="../Directory.Build.targets" />
-  <Import Project="$(MonoProjectRoot)\wasm\build\WasmApp.InTree.targets" />
+  <Import Project="$(BrowserProjectRoot)build\WasmApp.InTree.targets" />
 
   <PropertyGroup>
     <RunScriptInputName Condition="'$(TargetOS)' == 'browser' and '$(OS)' != 'Windows_NT'">WasmRunnerTemplate.sh</RunScriptInputName>
diff --git a/src/mono/sample/wasm/browser-profile/README.md b/src/mono/sample/wasm/browser-profile/README.md
index 555e09657c7dbb..91dc0ab069f5e0 100644
--- a/src/mono/sample/wasm/browser-profile/README.md
+++ b/src/mono/sample/wasm/browser-profile/README.md
@@ -52,8 +52,8 @@ function saveProfile() {
 ### Build and Run a project with profiling
 1. To enable profiling during a build, we need to make use of WasmApp.InTree.targets/props by importing into the project file:
 
-`<Import Project="$(MonoProjectRoot)\wasm\build\WasmApp.InTree.targets" />` <br/>
-`<Import Project="$(MonoProjectRoot)wasm\build\WasmApp.InTree.props" />`
+`<Import Project="$(BrowserProjectRoot)build\WasmApp.InTree.targets" />` <br/>
+`<Import Project="$(BrowserProjectRoot)build\WasmApp.InTree.props" />`
 
 For more information on how to utilize WasmApp.InTree.targets/props consult the wasm build directory [README.md](../../../wasm/README.md)
 
diff --git a/src/mono/wasi/build/WasiApp.InTree.props b/src/mono/wasi/build/WasiApp.InTree.props
index 754b3ca9a3aad4..2d2124c33699a8 100644
--- a/src/mono/wasi/build/WasiApp.InTree.props
+++ b/src/mono/wasi/build/WasiApp.InTree.props
@@ -5,7 +5,7 @@
     <Platform>AnyCPU</Platform>
     <EnableTargetingPackDownload>false</EnableTargetingPackDownload>
     <TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
-    <WASI_SDK_PATH Condition="'$(WASI_SDK_PATH)' == '' and '$(MonoProjectRoot)' != ''">$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'wasi-sdk'))</WASI_SDK_PATH>
+    <WASI_SDK_PATH Condition="'$(WASI_SDK_PATH)' == '' and '$(MonoProjectRoot)' != ''">$([MSBuild]::NormalizeDirectory($(WasiProjectRoot), 'wasi-sdk'))</WASI_SDK_PATH>
     <RunAOTCompilation Condition="'$(RunAOTCompilation)' == ''">false</RunAOTCompilation>
     <PublishTrimmed>true</PublishTrimmed>
     <TrimMode>partial</TrimMode>
diff --git a/src/mono/wasi/runtime/CMakeLists.txt b/src/mono/wasi/runtime/CMakeLists.txt
index 034f1d3026dc93..1d2a220494779a 100644
--- a/src/mono/wasi/runtime/CMakeLists.txt
+++ b/src/mono/wasi/runtime/CMakeLists.txt
@@ -5,7 +5,7 @@ project(mono-wasi-runtime C)
 option(DISABLE_THREADS "defined if the build does NOT support multithreading" ON)
 
 set(CMAKE_EXECUTABLE_SUFFIX ".wasm")
-add_executable(dotnet ../../wasm/runtime/runtime.c ../../wasm/runtime/pinvoke.c driver.c main.c stubs.c synthetic-pthread.c)
+add_executable(dotnet ../../browser/runtime/runtime.c ../../browser/runtime/pinvoke.c driver.c main.c stubs.c synthetic-pthread.c)
 
 target_include_directories(dotnet PUBLIC ${MONO_INCLUDES} ../../wasm/runtime ${MONO_OBJ_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR}/include/wasm)
 target_compile_options(dotnet PUBLIC @${NATIVE_BIN_DIR}/src/wasi-default.rsp @${NATIVE_BIN_DIR}/src/wasi-compile.rsp -DGEN_PINVOKE=1)
diff --git a/src/mono/wasi/wasi.proj b/src/mono/wasi/wasi.proj
index 8a550f7efe9c44..7b8772070596f3 100644
--- a/src/mono/wasi/wasi.proj
+++ b/src/mono/wasi/wasi.proj
@@ -133,8 +133,8 @@
 
       <_WasiCompileFlags Condition="'$(MonoWasmThreads)' == 'true'" Include="-I$([MSBuild]::NormalizePath('$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)', 'runtimes', 'wasi-wasm-threads', 'native', 'include').Replace('\','/'))"/>
       <_WasiCompileFlags Condition="'$(MonoWasmThreads)' != 'true'" Include="-I$([MSBuild]::NormalizePath('$(PkgMicrosoft_NETCore_Runtime_ICU_Transport)', 'runtimes', 'wasi-wasm', 'native', 'include').Replace('\','/'))"/>
-      <_WasiCompileFlags Include="-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'wasi', 'include').Replace('\','/'))"/>
-      <_WasiCompileFlags Include="-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'wasi', 'mono-include').Replace('\','/'))"/>
+      <_WasiCompileFlags Include="-I$([MSBuild]::NormalizePath('$(WasiProjectRoot)', 'include').Replace('\','/'))"/>
+      <_WasiCompileFlags Include="-I$([MSBuild]::NormalizePath('$(WasiProjectRoot)', 'mono-include').Replace('\','/'))"/>
       <_WasiCompileFlags Include="-I$([MSBuild]::NormalizePath('$(RepoRoot)', 'src', 'native', 'public').Replace('\','/'))"/>
       <_WasiCompileFlags Include="-I$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'mono', 'eglib').Replace('\','/'))"/>
       <_WasiCompileFlags Include="-D_WASI_EMULATED_PROCESS_CLOCKS"/>
@@ -226,17 +226,17 @@
     </PropertyGroup>
 
     <ItemGroup>
-      <_FilesToCopy Include="$(MSBuildThisFileDirectory)..\wasm\runtime\runtime.c"   DestinationFolder="$(NativeBinDir)src" />
-      <_FilesToCopy Include="$(MSBuildThisFileDirectory)..\wasm\runtime\pinvoke.c"   DestinationFolder="$(NativeBinDir)src" />
+      <_FilesToCopy Include="$(BrowserProjectRoot)runtime\runtime.c"                 DestinationFolder="$(NativeBinDir)src" />
+      <_FilesToCopy Include="$(BrowserProjectRoot)runtime\pinvoke.c"                 DestinationFolder="$(NativeBinDir)src" />
       <_FilesToCopy Include="$(MSBuildThisFileDirectory)runtime/driver.c"            DestinationFolder="$(NativeBinDir)src" />
       <_FilesToCopy Include="$(MSBuildThisFileDirectory)runtime/main.c"              DestinationFolder="$(NativeBinDir)src" />
       <_FilesToCopy Include="$(MSBuildThisFileDirectory)runtime/stubs.c"             DestinationFolder="$(NativeBinDir)src" />
       <_FilesToCopy Include="$(MSBuildThisFileDirectory)runtime/synthetic-pthread.c" DestinationFolder="$(NativeBinDir)src" />
 
-      <_FilesToCopy Include="$(MonoProjectRoot)wasi\mono-include\driver.h"           DestinationFolder="$(NativeBinDir)include\wasm" />
-      <_FilesToCopy Include="$(MonoProjectRoot)wasm\runtime\gc-common.h"             DestinationFolder="$(NativeBinDir)include\wasm" />
-      <_FilesToCopy Include="$(MSBuildThisFileDirectory)..\wasm\runtime\runtime.h"   DestinationFolder="$(NativeBinDir)include\wasm" />
-      <_FilesToCopy Include="$(MSBuildThisFileDirectory)..\wasm\runtime\pinvoke.h"   DestinationFolder="$(NativeBinDir)include\wasm" />
+      <_FilesToCopy Include="$(WasiProjectRoot)mono-include\driver.h"           DestinationFolder="$(NativeBinDir)include\wasm" />
+      <_FilesToCopy Include="$(BrowserProjectRoot)runtime\gc-common.h"               DestinationFolder="$(NativeBinDir)include\wasm" />
+      <_FilesToCopy Include="$(BrowserProjectRoot)runtime\runtime.h"                 DestinationFolder="$(NativeBinDir)include\wasm" />
+      <_FilesToCopy Include="$(BrowserProjectRoot)runtime\pinvoke.h"                 DestinationFolder="$(NativeBinDir)include\wasm" />
     </ItemGroup>
 
     <Copy SourceFiles="$(PInvokeTableFile)"
diff --git a/src/mono/wasm/Makefile b/src/mono/wasm/Makefile
index 1355fcaa1a477c..a8826112502af8 100644
--- a/src/mono/wasm/Makefile
+++ b/src/mono/wasm/Makefile
@@ -11,11 +11,8 @@ endif
 MSBUILD_ARGS+=/p:KeepNativeSymbols=true
 
 DOTNET=$(TOP)/dotnet.sh
-JSVU=$(HOME)/.jsvu
-CHROMEDRIVER?=$(HOME)/.chromedriver
-GECKODRIVER?=$(HOME)/.geckodriver
 
-EMSDK_PATH?=$(TOP)/src/mono/wasm/emsdk
+EMSDK_PATH?=$(TOP)/src/mono/browser/emsdk
 CONFIG?=Release
 BINDIR?=$(TOP)/artifacts/bin
 OBJDIR?=$(TOP)/artifacts/obj
@@ -27,34 +24,9 @@ LOG_PATH=$(TOP)/artifacts/log/$(CONFIG)
 
 all: build-all
 
-#
-# EMSCRIPTEN SETUP
-#
-#  If EMSDK_PATH is not set by the caller, download and setup a local emsdk install.
-#
-
-EMSCRIPTEN_VERSION := $(shell cat $(TOP)/src/mono/wasm/emscripten-version.txt)
-EMSDK_LOCAL_PATH=emsdk
-EMCC=source $(EMSDK_PATH)/emsdk_env.sh 2>/dev/null && emcc
-
-.stamp-wasm-install-and-select-$(EMSCRIPTEN_VERSION):
-	rm -rf $(EMSDK_LOCAL_PATH)
-	git clone https://github.com/emscripten-core/emsdk.git $(EMSDK_LOCAL_PATH)
-	cd $(EMSDK_LOCAL_PATH) && ./emsdk install $(EMSCRIPTEN_VERSION)
-	cd $(EMSDK_LOCAL_PATH) && ./emsdk activate $(EMSCRIPTEN_VERSION)
-	python3 ./sanitize.py $(EMSDK_PATH)
-	touch $@
-
-provision-wasm: .stamp-wasm-install-and-select-$(EMSCRIPTEN_VERSION)
-	@echo "----------------------------------------------------------"
-	@echo "Installed emsdk into EMSDK_PATH=$(TOP)/src/mono/wasm/emsdk"
-
 MONO_OBJ_DIR=$(OBJDIR)/mono/browser.wasm.$(CONFIG)
 BUILDS_OBJ_DIR=$(MONO_OBJ_DIR)/wasm
 
-clean-emsdk:
-	$(RM) -rf $(EMSDK_LOCAL_PATH)
-
 #
 # Helper targets
 #
@@ -62,109 +34,14 @@ clean-emsdk:
 .PHONY: runtime
 .PHONY: build
 
-build:
-	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono+libs.pretest -os browser -c $(CONFIG) --binaryLog /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
-
-build-all:
-	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono+libs -os browser -c $(CONFIG) --binaryLog /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
-
-runtime:
-	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono.runtime+mono.wasmruntime+libs.native+libs.pretest -os browser -c $(CONFIG) /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
-
-# Rebuild only the mono runtime+cross compiler, don't build dotnet.wasm
-mono-runtime:
-	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono.runtime+libs.native+libs.pretest -os browser -c $(CONFIG) /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
-
-corlib:
-	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono.corelib+mono.wasmruntime+libs.pretest -os browser -c $(CONFIG) /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
-
 test-runner:
 	$(DOTNET) build $(TOP)/src/libraries/Common/tests/WasmTestRunner /p:Configuration=$(CONFIG) $(MSBUILD_ARGS)
 
-app-builder:
-	$(DOTNET) build $(TOP)/src/tasks/WasmAppBuilder
-
 build-tasks:
 	$(DOTNET) build $(TOP)/src/tasks/tasks.proj /p:Configuration=$(CONFIG) $(MSBUILD_ARGS)
 
-build-packages:
-	rm -f $(TOP)/artifacts/packages/$(CONFIG)/Shipping/*.nupkg
-	EMSDK_PATH=$(EMSDK_PATH) $(TOP)/build.sh mono.packages+mono.manifests+packs.product -os browser -c $(CONFIG) --binaryLog /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
-
 clean:
 	$(RM) -rf $(BUILDS_OBJ_DIR)
 
-run-tests-v8-%:
-	EMSDK_PATH=$(EMSDK_PATH) PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) /p:JSEngine=V8 $(MSBUILD_ARGS)
-run-tests-sm-%:
-	EMSDK_PATH=$(EMSDK_PATH) PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) /p:JSEngine=SpiderMonkey $(MSBUILD_ARGS)
-run-tests-jsc-%:
-	EMSDK_PATH=$(EMSDK_PATH) PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) /p:JSEngine=JavaScriptCore $(MSBUILD_ARGS)
-
-run-tests-%:
-	EMSDK_PATH=$(EMSDK_PATH) PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
-
-run-build-tests:
-	PATH="$(JSVU):$(PATH)" $(DOTNET) build $(TOP)/src/mono/wasm/Wasm.Build.Tests/ /t:Test /bl:$(LOG_PATH)/Wasm.Build.Tests.binlog $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
-
-run-browser-tests-%:
-	PATH="$(GECKODRIVER):$(CHROMEDRIVER):$(PATH)" XHARNESS_COMMAND="test-browser --browser=$(XHARNESS_BROWSER)" $(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
-
-build-runtime-tests:
-	$(TOP)/src/tests/build.sh -mono os browser wasm $(CONFIG) $(MSBUILD_ARGS)
-
-build-debugger-tests-helix:
-	$(DOTNET) build -restore -bl:$(LOG_PATH)/Wasm.Debugger.Tests.binlog \
-	/p:ContinuousIntegrationBuild=true /p:ArchiveTests=true \
-	$(TOP)/src/mono/wasm/debugger/Wasm.Debugger.Tests/Wasm.Debugger.Tests.csproj \
-	$(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
-
-submit-debugger-tests-helix: build-debugger-tests-helix
-	EMSDK_PATH=$(EMSDK_PATH) BUILD_REASON=wasm-test SYSTEM_TEAMPROJECT=public BUILD_REPOSITORY_NAME=dotnet/runtime BUILD_SOURCEBRANCH=main \
-		$(TOP)/eng/common/msbuild.sh --ci -restore $(TOP)/src/libraries/sendtohelix.proj \
-		/p:TestRunNamePrefixSuffix=WasmDebugger /p:HelixBuild=`date "+%Y%m%d.%H%M"` /p:Creator=`whoami` \
-		/bl:$(LOG_PATH)/SendToHelix.binlog -p:HelixTargetQueue=$(HELIX_TARGET_QUEUE) \
-		/p:RuntimeFlavor=mono /p:TargetRuntimeIdentifier= /p:MonoForceInterpreter= /p:TestScope=innerloop \
-		/p:_Scenarios=wasmdebuggertests \
-		$(_MSBUILD_WASM_BUILD_ARGS) \
-		$(MSBUILD_ARGS)
-
-submit-wbt-helix:
-	PATH="$(JSVU):$(PATH)" \
-		$(DOTNET) build $(TOP)/src/mono/wasm/Wasm.Build.Tests/ /v:m /p:ArchiveTests=true /t:ArchiveTests $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS) && \
-	EMSDK_PATH=$(EMSDK_PATH) BUILD_REASON=wasm-test SYSTEM_TEAMPROJECT=public BUILD_REPOSITORY_NAME=dotnet/runtime BUILD_SOURCEBRANCH=main \
-		$(TOP)/eng/common/msbuild.sh --ci -restore $(TOP)/src/libraries/sendtohelix.proj \
-		/p:TestRunNamePrefixSuffix=WasmBuildTests /p:HelixBuild=`date "+%Y%m%d.%H%M"` /p:Creator=`whoami` \
-		/bl:$(LOG_PATH)/SendToHelix.binlog -v:m -p:HelixTargetQueue=$(HELIX_TARGET_QUEUE) \
-		/p:RuntimeFlavor=mono /p:TargetRuntimeIdentifier= /p:MonoForceInterpreter= /p:TestScope=innerloop \
-		/p:_Scenarios=buildwasmapps \
-		$(_MSBUILD_WASM_BUILD_ARGS) \
-		$(MSBUILD_ARGS)
-
-submit-tests-helix:
-	echo "\n** This will submit all the available test zip files to helix **\n"
-	EMSDK_PATH=$(EMSDK_PATH) BUILD_REASON=wasm-test SYSTEM_TEAMPROJECT=public BUILD_REPOSITORY_NAME=dotnet/runtime BUILD_SOURCEBRANCH=main \
-		$(TOP)/eng/common/msbuild.sh --ci -restore $(TOP)/src/libraries/sendtohelix.proj \
-		/p:TestRunNamePrefixSuffix=WasmTests /p:HelixBuild=`date "+%Y%m%d.%H%M"` /p:Creator=`whoami` \
-		/bl:$(LOG_PATH)/SendToHelix.binlog -v:n -p:HelixTargetQueue=$(HELIX_TARGET_QUEUE) \
-		/p:RuntimeFlavor=mono /p:TargetRuntimeIdentifier= /p:MonoForceInterpreter= /p:TestScope=innerloop \
-		$(_MSBUILD_WASM_BUILD_ARGS) \
-		$(MSBUILD_ARGS)
-
-run-debugger-tests:
-	rm -f $(TOP)/artifacts/bin/DebuggerTestSuite/x64/Debug/*log; \
-	if [ ! -z "$(TEST_FILTER)" ]; then \
-	$(DOTNET) test  $(TOP)/src/mono/wasm/debugger/DebuggerTestSuite $(MSBUILD_ARGS) "-l:trx;LogFileName=DebuggerTestsResults.xml" --results-directory $(LOG_PATH) --filter "category!=failing&FullyQualifiedName$(TEST_FILTER)" $(TEST_ARGS); \
-	else \
-		$(DOTNET) test  $(TOP)/src/mono/wasm/debugger/DebuggerTestSuite $(MSBUILD_ARGS) "-l:trx;LogFileName=DebuggerTestsResults.xml" --results-directory $(LOG_PATH) --filter "category!=failing" $(TEST_ARGS); \
-	fi
-
-build-dbg-proxy:
-	$(DOTNET) build $(TOP)/src/mono/wasm/debugger/BrowserDebugHost $(MSBUILD_ARGS)
-build-dbg-testsuite:
-	$(DOTNET) build $(TOP)/src/mono/wasm/debugger/DebuggerTestSuite $(MSBUILD_ARGS)
 build-app-host:
 	$(DOTNET) build $(TOP)/src/mono/wasm/host $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
-
-patch-deterministic:
-	cd emsdk/upstream/emscripten/ && patch -p1 < ../../../runtime/deterministic.diff
diff --git a/src/mono/wasm/Wasm.Build.Tests/Blazor/WorkloadRequiredTests.cs b/src/mono/wasm/Wasm.Build.Tests/Blazor/WorkloadRequiredTests.cs
index cbe3e461ec9cde..b811d2b7dc9169 100644
--- a/src/mono/wasm/Wasm.Build.Tests/Blazor/WorkloadRequiredTests.cs
+++ b/src/mono/wasm/Wasm.Build.Tests/Blazor/WorkloadRequiredTests.cs
@@ -15,9 +15,9 @@ namespace Wasm.Build.Tests.Blazor;
 
 public class WorkloadRequiredTests : BlazorWasmTestBase
 {
-    /* Keep in sync with settings in wasm.proj, and WasmApp.Native.targets .
+    /* Keep in sync with settings in browser.proj, and WasmApp.Native.targets .
      * The `triggerValue` here is opposite of the default used when building the runtime pack
-     * (see wasm.proj), and thus requiring a native build
+     * (see browser.proj), and thus requiring a native build
      */
     public static (string propertyName, bool triggerValue)[] PropertiesWithTriggerValues = new[]
     {
diff --git a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj
index ac0c4fb1de2afd..3b8e184d96637b 100644
--- a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj
+++ b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj
@@ -36,7 +36,7 @@
   <ItemGroup>
     <PackageReference Include="Microsoft.Playwright" Version="1.21.0" />
     <ProjectReference Include="$(RepoRoot)src\tasks\Microsoft.NET.Sdk.WebAssembly.Pack.Tasks\Microsoft.NET.Sdk.WebAssembly.Pack.Tasks.csproj" />
-    <Compile Include="$(MonoProjectRoot)wasm\debugger\DebuggerTestSuite\BrowserLocator.cs" />
+    <Compile Include="$(BrowserProjectRoot)debugger\DebuggerTestSuite\BrowserLocator.cs" />
 
     <None Include="$(RepoRoot)\src\mono\wasm\test-main.js" CopyToOutputDirectory="PreserveNewest" />
     <None Include="..\testassets\**\*" Link="testassets\%(RecursiveDir)%(FileName)%(Extension)" CopyToOutputDirectory="PreserveNewest" />
diff --git a/src/mono/wasm/shared/build/WasmApp.LocalBuild.props b/src/mono/wasm/build/WasmApp.LocalBuild.props
similarity index 97%
rename from src/mono/wasm/shared/build/WasmApp.LocalBuild.props
rename to src/mono/wasm/build/WasmApp.LocalBuild.props
index bc5b28321718a4..615d0e56f6fd61 100644
--- a/src/mono/wasm/shared/build/WasmApp.LocalBuild.props
+++ b/src/mono/wasm/build/WasmApp.LocalBuild.props
@@ -25,12 +25,11 @@
     <_TargetFrameworkForNETCoreTasks>net8.0</_TargetFrameworkForNETCoreTasks>
     <MSBuildEnableWorkloadResolver>false</MSBuildEnableWorkloadResolver>
     <SelfContained>true</SelfContained>
-    <WasmCommonTargetsPath>$(_WasmTargetsDir)</WasmCommonTargetsPath>
   </PropertyGroup>
 
   <PropertyGroup Condition="'$(RuntimeSrcDir)' != '' and '$(WasmBuildSupportDir)' == ''">
     <ArtifactsBinDir>$(RuntimeSrcDir)\artifacts\bin\</ArtifactsBinDir>
-    <EMSDK_PATH Condition="'$(EMSDK_PATH)' == ''">$(RuntimeSrcDir)\src\mono\wasm\emsdk\</EMSDK_PATH>
+    <EMSDK_PATH Condition="'$(EMSDK_PATH)' == ''">$(RuntimeSrcDir)\src\mono\browser\emsdk\</EMSDK_PATH>
     <WASI_SDK_PATH Condition="'$(WASI_SDK_PATH)' == ''">$(RuntimeSrcDir)\src\mono\wasi\wasi-sdk\</WASI_SDK_PATH>
 
     <MicrosoftNetCoreAppRuntimePackLocationToUse>$([MSBuild]::NormalizeDirectory($(ArtifactsBinDir), 'microsoft.netcore.app.runtime.$(RuntimeIdentifier)', $(RuntimeConfig)))</MicrosoftNetCoreAppRuntimePackLocationToUse>
diff --git a/src/mono/wasm/shared/build/WasmApp.LocalBuild.targets b/src/mono/wasm/build/WasmApp.LocalBuild.targets
similarity index 100%
rename from src/mono/wasm/shared/build/WasmApp.LocalBuild.targets
rename to src/mono/wasm/build/WasmApp.LocalBuild.targets
diff --git a/src/mono/wasm/shared/data/aot-tests/Directory.Build.props b/src/mono/wasm/data/aot-tests/Directory.Build.props
similarity index 72%
rename from src/mono/wasm/shared/data/aot-tests/Directory.Build.props
rename to src/mono/wasm/data/aot-tests/Directory.Build.props
index 7aa5a9f775cbe0..c52f8028de5b12 100644
--- a/src/mono/wasm/shared/data/aot-tests/Directory.Build.props
+++ b/src/mono/wasm/data/aot-tests/Directory.Build.props
@@ -13,16 +13,20 @@
     <WASI_SDK_PATH>$(WasmBuildSupportDir)\wasi-sdk\</WASI_SDK_PATH>
   </PropertyGroup>
 
-  <PropertyGroup >
-    <_WasmTargetsDir Condition="'$(_WasmTargetsDir)' == '' and '$(RuntimeSrcDir)' != '' and '$(RuntimeIdentifier)' == 'browser-wasm'">$(RuntimeSrcDir)\src\mono\wasm\build\</_WasmTargetsDir>
+  <PropertyGroup Condition="'$(RuntimeSrcDir)' != ''">
+    <_WasmTargetsDir Condition="'$(_WasmTargetsDir)' == '' and '$(RuntimeSrcDir)' != '' and '$(RuntimeIdentifier)' == 'browser-wasm'">$(RuntimeSrcDir)\src\mono\browser\build\</_WasmTargetsDir>
     <_WasmTargetsDir Condition="'$(_WasmTargetsDir)' == '' and '$(RuntimeSrcDir)' != '' and '$(RuntimeIdentifier)' == 'wasi-wasm'">$(RuntimeSrcDir)\src\mono\wasi\build\</_WasmTargetsDir>
+    <_WasmSharedDir Condition="'$(_WasmSharedDir)' == '' and '$(RuntimeSrcDir)' != ''">$(RuntimeSrcDir)\src\mono\wasm\build\</_WasmSharedDir>
+  </PropertyGroup>
 
-    <_WasmSharedDir Condition="'$(_WasmSharedDir)' == '' and '$(RuntimeSrcDir)' != ''">$(RuntimeSrcDir)\src\mono\wasm\shared\</_WasmSharedDir>
+  <PropertyGroup>
     <_WasmTargetsDir Condition="'$(_WasmTargetsDir)' != ''">$([MSBuild]::EnsureTrailingSlash($(_WasmTargetsDir)))</_WasmTargetsDir>
     <_WasmSharedDir Condition="'$(_WasmSharedDir)' != ''">$([MSBuild]::EnsureTrailingSlash($(_WasmSharedDir)))</_WasmSharedDir>
 
-    <_WasmLocalBuildPropsPath Condition="'$(_WasmSharedDir)' != ''">$([MSBuild]::NormalizePath($(_WasmSharedDir), 'build', 'WasmApp.LocalBuild.props'))</_WasmLocalBuildPropsPath>
-    <_WasmLocalBuildTargetsPath Condition="'$(_WasmSharedDir)' != ''">$([MSBuild]::NormalizePath($(_WasmSharedDir), 'build', 'WasmApp.LocalBuild.targets'))</_WasmLocalBuildTargetsPath>
+    <WasmCommonTargetsPath>$(_WasmSharedDir)</WasmCommonTargetsPath>
+
+    <_WasmLocalBuildPropsPath Condition="'$(WasmCommonTargetsPath)' != ''">$([MSBuild]::NormalizePath($(WasmCommonTargetsPath), 'WasmApp.LocalBuild.props'))</_WasmLocalBuildPropsPath>
+    <_WasmLocalBuildTargetsPath Condition="'$(WasmCommonTargetsPath)' != ''">$([MSBuild]::NormalizePath($(WasmCommonTargetsPath), 'WasmApp.LocalBuild.targets'))</_WasmLocalBuildTargetsPath>
   </PropertyGroup>
 
   <Import Project="$(_WasmLocalBuildPropsPath)" Condition="Exists($(_WasmLocalBuildPropsPath))" />
diff --git a/src/mono/wasm/shared/data/aot-tests/Directory.Build.targets b/src/mono/wasm/data/aot-tests/Directory.Build.targets
similarity index 100%
rename from src/mono/wasm/shared/data/aot-tests/Directory.Build.targets
rename to src/mono/wasm/data/aot-tests/Directory.Build.targets
diff --git a/src/mono/wasm/shared/data/aot-tests/ProxyProjectForAOTOnHelix.proj b/src/mono/wasm/data/aot-tests/ProxyProjectForAOTOnHelix.proj
similarity index 100%
rename from src/mono/wasm/shared/data/aot-tests/ProxyProjectForAOTOnHelix.proj
rename to src/mono/wasm/data/aot-tests/ProxyProjectForAOTOnHelix.proj
diff --git a/src/mono/wasm/host/WasmAppHost.csproj b/src/mono/wasm/host/WasmAppHost.csproj
index 8a32ea3332d148..0fea53c84cf5a1 100644
--- a/src/mono/wasm/host/WasmAppHost.csproj
+++ b/src/mono/wasm/host/WasmAppHost.csproj
@@ -10,7 +10,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="$(MonoProjectRoot)wasm\debugger\BrowserDebugHost\BrowserDebugHost.csproj" />
+    <ProjectReference Include="$(BrowserProjectRoot)debugger\BrowserDebugHost\BrowserDebugHost.csproj" />
 
     <_browserDebugHostFiles Include="$(ArtifactsDir)bin\BrowserDebugHost\$(TargetArchitecture)\$(Configuration)\BrowserDebugHost.dll" />
     <_browserDebugHostFiles Include="$(ArtifactsDir)bin\BrowserDebugHost\$(TargetArchitecture)\$(Configuration)\BrowserDebugHost.runtimeconfig.json" />
diff --git a/src/mono/wasm/sln/WasmBuild.sln b/src/mono/wasm/sln/WasmBuild.sln
index 265cbcdb8210d2..da3a82af643fb0 100755
--- a/src/mono/wasm/sln/WasmBuild.sln
+++ b/src/mono/wasm/sln/WasmBuild.sln
@@ -11,17 +11,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MonoAOTCompiler", "..\..\..
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wasm.Build.Tests", "..\Wasm.Build.Tests\Wasm.Build.Tests.csproj", "{94E18644-B0E5-4DBB-9CE4-EA1515ACE4C2}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DebuggerTestSuite", "..\debugger\DebuggerTestSuite\DebuggerTestSuite.csproj", "{4C0EE027-FC30-4167-B2CF-A6D18F00E08F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DebuggerTestSuite", "..\..\browser\debugger\DebuggerTestSuite\DebuggerTestSuite.csproj", "{4C0EE027-FC30-4167-B2CF-A6D18F00E08F}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrowserDebugHost", "..\debugger\BrowserDebugHost\BrowserDebugHost.csproj", "{292A88FD-795F-467A-8801-B5B791CEF96E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrowserDebugHost", "..\..\browser\debugger\BrowserDebugHost\BrowserDebugHost.csproj", "{292A88FD-795F-467A-8801-B5B791CEF96E}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrowserDebugProxy", "..\debugger\BrowserDebugProxy\BrowserDebugProxy.csproj", "{F5AE2AF5-3C30-45E3-A0C6-D962C51FE5E7}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrowserDebugProxy", "..\..\browser\debugger\BrowserDebugProxy\BrowserDebugProxy.csproj", "{F5AE2AF5-3C30-45E3-A0C6-D962C51FE5E7}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WasmAppHost", "..\host\WasmAppHost.csproj", "{C7099764-EC2E-4FAF-9057-0321893DE4F8}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WasmSymbolicator", "..\symbolicator\WasmSymbolicator.csproj", "{ABC41254-EC2E-4FAF-9057-091ABF4DE4F8}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApplyUpdateReferencedAssembly", "..\debugger\tests\ApplyUpdateReferencedAssembly\ApplyUpdateReferencedAssembly.csproj", "{75477B6F-DC8E-4002-88B8-017C992C568E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApplyUpdateReferencedAssembly", "..\..\browser\debugger\tests\ApplyUpdateReferencedAssembly\ApplyUpdateReferencedAssembly.csproj", "{75477B6F-DC8E-4002-88B8-017C992C568E}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.NET.Sdk.WebAssembly.Pack.Tasks", "..\..\..\tasks\Microsoft.NET.Sdk.WebAssembly.Pack.Tasks\Microsoft.NET.Sdk.WebAssembly.Pack.Tasks.csproj", "{5EEC2925-2021-4830-B7E9-72BB8B2C283D}"
 EndProject
diff --git a/src/native/libs/build-native.sh b/src/native/libs/build-native.sh
index 4d712eb0eed3ab..430174429889cc 100755
--- a/src/native/libs/build-native.sh
+++ b/src/native/libs/build-native.sh
@@ -56,7 +56,7 @@ source "$__RepoRootDir"/eng/native/build-commons.sh
 if [[ "$__TargetOS" == browser ]]; then
     if [[ -z "$EMSDK_PATH" ]]; then
         if [[ -d "$__RepoRootDir"/src/mono/wasm/emsdk/ ]]; then
-            export EMSDK_PATH="$__RepoRootDir"/src/mono/wasm/emsdk/
+            export EMSDK_PATH="$__RepoRootDir"/src/mono/browser/emsdk/
         else
             echo "Error: You need to set the EMSDK_PATH environment variable pointing to the emscripten SDK root."
             exit 1
diff --git a/src/tests/Common/Directory.Build.targets b/src/tests/Common/Directory.Build.targets
index 1e8e7f82399818..cb96e1862608b6 100644
--- a/src/tests/Common/Directory.Build.targets
+++ b/src/tests/Common/Directory.Build.targets
@@ -197,6 +197,9 @@
         <RunTimeDependencyCopyLocal
           Include="$(MonoProjectRoot)\wasm\build\*"
           TargetDir="build/"/>
+        <RunTimeDependencyCopyLocal
+          Include="$(MonoProjectRoot)\browser\build\*"
+          TargetDir="build/"/>
     </ItemGroup>
 
     <ItemGroup>
diff --git a/src/tests/FunctionalTests/WebAssembly/Directory.Build.props b/src/tests/FunctionalTests/WebAssembly/Directory.Build.props
index 3eabd3de6b4c01..3f19205474672d 100644
--- a/src/tests/FunctionalTests/WebAssembly/Directory.Build.props
+++ b/src/tests/FunctionalTests/WebAssembly/Directory.Build.props
@@ -3,7 +3,7 @@
     <!-- These need to be set here because the root Directory.Build.props sets up the intermediate path early -->
     <Configuration>Release</Configuration>
     <OutputType>Exe</OutputType>
-    
+
     <TestRuntime>true</TestRuntime>
     <Scenario>WasmTestOnBrowser</Scenario>
     <TestArchiveTestsRoot>$(TestArchiveRoot)browseronly/</TestArchiveTestsRoot>
@@ -11,7 +11,7 @@
     <DefineConstants>$(DefineConstants);TARGET_BROWSER</DefineConstants>
     <ExpectedExitCode>42</ExpectedExitCode>
   </PropertyGroup>
-  
+
   <ItemGroup>
     <ProjectReference Include="$(LibrariesProjectRoot)System.Runtime.InteropServices.JavaScript\src\System.Runtime.InteropServices.JavaScript.csproj" SkipUseReferenceAssembly="true"/>
   </ItemGroup>
@@ -28,7 +28,7 @@
   <PropertyGroup>
     <TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
     <OutputPath>$(RepoRoot)artifacts\bin\$(MSBuildProjectName)</OutputPath>
-    <_InTreeEmSdk>$(MSBuildThisFileDirectory)..\..\..\mono\wasm\emsdk</_InTreeEmSdk>
+    <_InTreeEmSdk>$(BrowserProjectRoot)emsdk</_InTreeEmSdk>
     <EMSDK_PATH Condition="'$(EMSDK_PATH)' == '' and Exists($(_InTreeEmSdk))">$(_InTreeEmSdk)</EMSDK_PATH>
   </PropertyGroup>
 </Project>