electron/patches/v8
Aman Karmani 3d4a4b9343
feat: add support for --js-flags=--perf-prof on macOS (#46876)
* feat: add support for `--js-flags=--perf-prof` on macOS

allows for profiling of macOS electron apps using samply[1],
which can capture cpu usage for an entire process tree, including
both c/c++ frames and interpreted + jit-compiled JS stack frames

[1] https://github.com/mstange/samply

* chore: update patches

---------

Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2025-05-01 09:46:10 -05:00
..
.patches feat: add support for --js-flags=--perf-prof on macOS (#46876) 2025-05-01 09:46:10 -05:00
chore_allow_customizing_microtask_policy_per_context.patch chore: bump chromium to 134.0.6968.0 (main) (#45172) 2025-01-23 23:07:43 -05:00
deps_add_v8_object_setinternalfieldfornodecore.patch chore: bump chromium to 136.0.7095.0 (36-x-y) (#46184) 2025-04-07 13:09:35 -05:00
enable_--perf-prof_flag_on_macos.patch feat: add support for --js-flags=--perf-prof on macOS (#46876) 2025-05-01 09:46:10 -05:00
README.md chore: remove mips64el patches as they've largely been upstreamed (#18628) 2019-06-05 16:36:17 -07:00

Exporting node's patches to v8

$ cd third_party/electron_node
$ CURRENT_NODE_VERSION=vX.Y.Z  # e.g. v10.11.0

# Find the last commit with the message "deps: update V8 to <some version>"
# This commit corresponds to node resetting V8 to its pristine upstream
# state at the stated version.
$ LAST_V8_UPDATE="$(git log --grep='^deps: update V8' --format='%H' -1 deps/v8)"

# This creates a patch file containing all changes in deps/v8 from
# $LAST_V8_UPDATE up to the current node version, formatted in a way that
# it will apply cleanly to the V8 repository (i.e. with `deps/v8`
# stripped off the path and excluding the v8/gypfiles directory, which
# isn't present in V8.
$ git format-patch \
    --relative=deps/v8 \
    $LAST_V8_UPDATE..$CURRENT_NODE_VERSION \
    deps/v8 \
    ':(exclude)deps/v8/gypfiles' \
    --stdout

When upgrading to a new version of node, make sure to match node's patches to v8 by removing all the deps_* patches and re-exporting node's v8 patches using the process above.