electron/shell/common
trop[bot] 01ce103ae1
perf: have ErrorThrower lazily lookup the current isolate (#46415)
perf: have ErrorThrower lazy-lookup the current isolate

ErrorThrower's default constructor is marked as "should rarely if ever
be used" because it's expensive to call.

Unfortunately, nearly every instance of ErrorThrower comes as an argument
in gin_helper's JS-->C++ function marshalling where a thrower is
default-constructed and then populated in gin_helper::GetNextArgument()
with an assignment operator to a temporary ErrorThrower constructed
with the gin::Arguments' isolate.

tldr: most of the time we use the slow constructor first, then throw
that work away unused by overwriting with a fast-constructed one.

This refactor avoids that cost by deferring the expensive work to
`ErrorThrower::isolate()`, where it happens only as a fallback iff
isolate_ hasn't been set.

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-04-01 17:25:29 -05:00
..
api refactor: do not use AdaptCallbackForRepeating() in electron_api_url_loader.cc (#45771) 2025-02-24 11:09:01 -05:00
asar refactor: migrate hashing code to new upstream crypto::hash API (#46273) 2025-03-25 19:41:49 -05:00
extensions chore: bump chromium to 136.0.7062.0 (#45987) 2025-03-12 09:37:36 -04:00
gin_converters refactor: use v8::String::Empty() when creating empty strings (#46371) 2025-03-31 10:39:48 +02:00
gin_helper perf: have ErrorThrower lazily lookup the current isolate (#46415) 2025-04-01 17:25:29 -05:00
mac refactor: return-braced-init-list pt 2 of 2 (#44870) 2024-11-29 11:44:33 -06:00
resources/mac
application_info.cc chore: bump chromium to 136.0.7062.0 (#45987) 2025-03-12 09:37:36 -04:00
application_info.h
application_info_linux.cc chore: remove unused nogncheck includes (#43964) 2024-09-26 17:09:42 -05:00
application_info_mac.mm
application_info_win.cc chore: remove unused base/ includes (#43688) 2024-09-12 16:05:37 +02:00
BUILD.gn feat: route deprecated sync clipboard read through permission checks (#45377) 2025-02-05 15:13:29 +09:00
color_util.cc refactor: replace base::StringPrintf() calls with absl::StrFormat() (#44515) 2024-11-04 12:58:16 -06:00
color_util.h fix: modernize-use-equals-default warnings (#44935) 2024-12-03 16:25:48 -06:00
crash_keys.cc refactor: add EmitWarning(v8::Isolate*) helper (#43722) 2024-09-16 15:53:04 -05:00
crash_keys.h
electron_command_line.cc fix: -Wunsafe-buffer-usage warnings with argc, argv (#44366) 2024-10-29 13:23:08 +01:00
electron_command_line.h fix: -Wunsafe-buffer-usage warnings with argc, argv (#44366) 2024-10-29 13:23:08 +01:00
electron_constants.h feat: support global shortcuts via GlobalShortcutsPortal feature with ozone/wayland (#45171) 2025-01-22 11:59:48 +01:00
electron_paths.h
heap_snapshot.cc refactor: use base::as_bytes() in WriteAsciiChunk() (#45724) 2025-02-20 20:19:48 -05:00
heap_snapshot.h
key_weak_map.h perf: use absl::flat_hash_map instead of std::unordered_map (#46217) 2025-03-24 09:30:52 -05:00
keyboard_util.cc chore: bump chromium to 128.0.6558.0 (main) (#42413) 2024-07-02 09:51:33 +02:00
keyboard_util.h
language_util.h
language_util_linux.cc fix: silence -Wunsafe-buffer-usage warning in GetPreferredLanguages() (#44333) 2024-10-21 18:20:00 -05:00
language_util_mac.mm
language_util_win.cc chore: remove more unused #include calls (#43000) 2024-07-25 11:25:45 +02:00
logging.cc fix: performance-no-automatic-move clang-tidy warnings (#44742) 2024-11-20 18:10:30 -06:00
logging.h
mac_util.h fix: -Wunsafe-buffer-usage warning in didRegisterForRemoteNotificationsWithDeviceToken (#44348) 2024-10-23 14:18:22 -05:00
mac_util.mm fix: -Wunsafe-buffer-usage warning in didRegisterForRemoteNotificationsWithDeviceToken (#44348) 2024-10-23 14:18:22 -05:00
node_bindings.cc fix: oob string read when parsing node_options (#46247) 2025-03-25 08:14:33 -05:00
node_bindings.h fix: support for v8.setHeapSnapshotNearHeapLimit api (#45606) 2025-02-14 10:00:39 -06:00
node_bindings_linux.cc refactor: NodeBindings::Create() returns a unique_ptr (#43361) 2024-08-20 15:34:59 -04:00
node_bindings_linux.h chore: remove unused #includes (#42971) 2024-07-22 11:31:32 +02:00
node_bindings_mac.cc refactor: add EmitWarning(v8::Isolate*) helper (#43722) 2024-09-16 15:53:04 -05:00
node_bindings_mac.h chore: remove unused #includes (#42971) 2024-07-22 11:31:32 +02:00
node_bindings_win.cc chore: remove unused base/ includes (#43688) 2024-09-12 16:05:37 +02:00
node_bindings_win.h chore: remove unused #includes (#42971) 2024-07-22 11:31:32 +02:00
node_includes.h feat: add error event for utility process (#43774) 2024-09-27 10:17:06 +09:00
node_util.cc feat: service worker preload scripts for improved extensions support (#44411) 2025-01-31 09:32:45 -05:00
node_util.h chore: better logging if Node initialization fails (#45286) 2025-01-23 08:55:28 -06:00
options_switches.h feat: Corner Smoothing CSS rule (Reland) (#46385) 2025-04-01 08:49:44 -05:00
platform_util.cc fix: misc-use-internal-linkage warnings (#44843) 2024-11-27 10:40:39 -06:00
platform_util.h
platform_util_internal.h
platform_util_linux.cc refactor: use gdk_display_beep() on Linux (#44734) 2024-11-20 16:24:59 -05:00
platform_util_mac.mm fix: update shell.openExternal to correctly focus on external window (#44408) 2024-10-29 15:10:10 -07:00
platform_util_win.cc refactor: remove C-style void arg type for no-arg functions (#43884) 2024-09-23 22:37:32 -07:00
plugin.mojom chore: bump chromium to 129.0.6650.0 (main) (#43266) 2024-08-12 10:28:33 +02:00
plugin_info.cc chore: bump chromium to 123.0.6312.5 (main) (#41337) 2024-02-21 15:27:05 -05:00
plugin_info.h
process_util.cc refactor: add EmitWarning(v8::Isolate*) helper (#43722) 2024-09-16 15:53:04 -05:00
process_util.h refactor: remove unused system header includes (#46043) 2025-03-14 17:06:04 -05:00
skia_util.cc fix: misc-use-internal-linkage warnings (#44843) 2024-11-27 10:40:39 -06:00
skia_util.h refactor: spanify image utils (#44127) 2024-10-10 09:34:55 -04:00
thread_restrictions.h
v8_util.cc refactor: only pass v8::Context to gin_helper::MicrotasksScope constructor (#45484) 2025-02-07 10:44:19 +09:00
v8_util.h fix: -Wunsafe-buffer-usage warning in ChunkedDataPipeReadableStream (#44211) 2024-10-14 10:46:24 +02:00
web_contents_utility.mojom fix: avoid IPC for renderer webFrame.getZoom... APIs (#45499) 2025-02-10 16:09:11 -05:00
world_ids.h