[CLEAN] Synthetic Benchmark PR #48788 - fix: enable wasm trap handlers in all Node.js processes #37
+72
−47
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
User description
Benchmark PR electron#48788
Type: Clean (correct implementation)
Original PR Title: fix: enable wasm trap handlers in all Node.js processes
Original PR Description: #### Description of Change
Found while investigating microsoft/vscode#273191
Since electron#47186 we had accidentally disabled V8 trap handlers in browser and utility process. This incurs performance cost when executing wasm due to inlined bound checks.
Enable the feature back and align it with upstream based on the feature parameter across all processes features::kWebAssemblyTrapHandler
Current matrix of enabled platforms.
Release Notes
Notes: Reenable V8 trap handlers for wasm in browser and utility process, improves runtime execution of wasm
Original PR URL: electron#48788
PR Type
Enhancement, Bug fix
Description
Enable WebAssembly trap handlers across all Node.js processes
Centralize trap handler setup logic into shared utility function
Improve wasm execution performance via V8 trap handlers
Support Linux x86_64/arm64, Windows, and macOS platforms
Diagram Walkthrough
File Walkthrough
electron_browser_main_parts.cc
Enable wasm trap handlers in browser processshell/browser/electron_browser_main_parts.cc
shell/common/v8_util.hPostEarlyInitialization()v8_util.cc
Implement centralized WebAssembly trap handler setupshell/common/v8_util.cc
SetUpWebAssemblyTrapHandler()function withplatform-specific implementations
trace settings
APIs
v8_util.h
Export WebAssembly trap handler setup functionshell/common/v8_util.h
SetUpWebAssemblyTrapHandler()electron_renderer_client.cc
Refactor renderer to use shared trap handler setupshell/renderer/electron_renderer_client.cc
SetUpWebAssemblyTrapHandler()to call shared utilityfunction
base/base_switches.hnode_service.cc
Enable wasm trap handlers in utility processshell/services/node/node_service.cc
content/public/common/content_features.hshell/common/v8_util.hInitialize()method