mirror of
https://github.com/electron/electron.git
synced 2026-01-09 15:38:08 -05:00
advance deprecation of v8::ReturnValue<void>::Set(Local<S>).
7168624: [runtime][api] Relax requirements for setter/definer/deleter callbacks | https://chromium-review.googlesource.com/c/v8/v8/+/7168624
This commit is contained in:
@@ -6,3 +6,4 @@ fix_remove_deprecated_propertycallbackinfo_holder.patch
|
||||
fix_deprecation_of_v8_context_and_v8_object_api_methods.patch
|
||||
remove_accesscontrol_enum_for_v8_14_4_59.patch
|
||||
chore_add_yarnrc_yml_and_yarn_lock_file_to_use_yarn_v4.patch
|
||||
chore_handle_deprecation_of_v8_returnvalue_void_set_local_s.patch
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: John Kleinschmidt <jkleinsc@electronjs.org>
|
||||
Date: Mon, 1 Dec 2025 10:27:23 -0500
|
||||
Subject: chore: handle deprecation of v8::ReturnValue<void>::Set(Local<S>)
|
||||
|
||||
v8::ReturnValue<void>::Set(Local<S>) is now deprecated.
|
||||
|
||||
See http://crbug.com/348660658 for details.
|
||||
|
||||
diff --git a/nan_callbacks_12_inl.h b/nan_callbacks_12_inl.h
|
||||
index e40383c095ab329b2e20b7e68ade507788a79fb6..9688e933a7d8e31629b507def483024ba7705b26 100644
|
||||
--- a/nan_callbacks_12_inl.h
|
||||
+++ b/nan_callbacks_12_inl.h
|
||||
@@ -26,7 +26,23 @@ class ReturnValue {
|
||||
// Handle setters
|
||||
template <typename S> inline void Set(const v8::Local<S> &handle) {
|
||||
TYPE_CHECK(T, S);
|
||||
+#if defined(V8_MAJOR_VERSION) && defined(V8_MINOR_VERSION) && defined(V8_BUILD_NUMBER) && \
|
||||
+ (V8_MAJOR_VERSION > 14 || \
|
||||
+ (V8_MAJOR_VERSION == 14 && V8_MINOR_VERSION > 4) || \
|
||||
+ (V8_MAJOR_VERSION == 14 && V8_MINOR_VERSION == 4 && V8_BUILD_NUMBER >= 230))
|
||||
+ // For V8 14.4.230+, avoid deprecated Set method for ReturnValue<void>
|
||||
+ if constexpr (std::is_void_v<T>) {
|
||||
+ if (handle.IsEmpty()) {
|
||||
+ value_.SetDefaultValue();
|
||||
+ } else {
|
||||
+ value_.Set(handle->BooleanValue(value_.GetIsolate()));
|
||||
+ }
|
||||
+ } else {
|
||||
+ value_.Set(handle);
|
||||
+ }
|
||||
+#else
|
||||
value_.Set(handle);
|
||||
+#endif
|
||||
}
|
||||
|
||||
template <typename S> inline void Set(const Global<S> &handle) {
|
||||
Reference in New Issue
Block a user