This depends on `emsdk` to be installed.
-## emsdk on mac
+## emsdk on macOS
* You can run `make provision-wasm`, which will install it to `$reporoot/src/mono/wasm/emsdk` .
Note: Irrespective of `$(EMSDK_PATH)`'s value, `provision-wasm` will always install into `$reporoot/src/mono/wasm/emsdk`.
Make sure to set `EMSDK_PATH` variable, whenever building, or running tests for wasm.
-### Windows dependencies
-
-Windows build [requirements](https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/windows-requirements.md)
-
-If `EMSDK_PATH` is not set, the `emsdk` should be provisioned automatically during the build.
-
-## Building on mac
+## Building on macOS
* To build the whole thing, with libraries:
`make runtime`
-### Note: Additional msbuild arguments can be passed with: `make build-all MSBUILD_ARGS="/p:a=b"`
+**Note:** Additional msbuild arguments can be passed with: `make build-all MSBUILD_ARGS="/p:a=b"`
+
+## emsdk on Windows
+
+Windows build [requirements](https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/windows-requirements.md)
+
+If `EMSDK_PATH` is not set, the `emsdk` should be provisioned automatically during the build.
+
+**Note:** The EMSDK has an implicit dependency on Python for it to be initialized. A consequence of this is that if the system doesn't have Python installed prior to attempting a build, the automatic provisioning will fail and be in an invalid state. Therefore, if Python needs to be installed after a build attempt the `$reporoot/src/mono/wasm/emsdk` directory should be manually deleted and then a rebuild attempted.
-### Bulding on windows
+## Bulding on Windows
* To build everything
The latest engines can be installed with jsvu (JavaScript engine Version Updater https://github.com/GoogleChromeLabs/jsvu)
-### Mac
+### macOS
* Install npm with brew:
Library tests can be run with js engines: `v8`, `SpiderMonkey`,or `JavaScriptCore`:
-### Mac
+### macOS
* `v8`: `make run-tests-v8-$(lib_name)`
* SpiderMonkey: `make run-tests-sm-$(lib_name)`
`.\dotnet.cmd build /t:Test /p:TargetOS=Browser src\libraries\System.Collections.Concurrent\tests`
`.\dotnet.cmd build /t:Test /p:TargetOS=Browser /p:JSEngine="SpiderMonkey" src\libraries\System.Text.Json\tests`
-### Browser tests on mac
+### Browser tests on macOS
Or they can be run with a browser (Chrome):
* set `XHARNESS_CLI_PATH=/path/to/xharness/artifacts/bin/Microsoft.DotNet.XHarness.CLI/Debug/netcoreapp3.1/Microsoft.DotNet.XHarness.CLI.dll`
-### Note: Additional msbuild arguments can be passed with: `make .. MSBUILD_ARGS="/p:a=b"`
+**Note:** Additional msbuild arguments can be passed with: `make .. MSBUILD_ARGS="/p:a=b"`
-## Debugger tests on mac
+## Debugger tests on macOS
Debugger tests need `Google Chrome` to be installed.
## Code style
* Is enforced via [eslint](https://eslint.org/) and rules are in `./.eslintrc.js`
* You could check the style by running `npm run lint` in `src/mono/wasm/runtime` directory
-* You can install [plugin into your VS Code](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to show you the errors as you type
\ No newline at end of file
+* You can install [plugin into your VS Code](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) to show you the errors as you type