react-native 0.84.0-nightly-20260105-0241b5995 → 0.84.0-nightly-20260106-36a0d9ef6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +7 -1
  2. package/Libraries/Core/ReactNativeVersion.js +1 -1
  3. package/React/Base/RCTVersion.m +1 -1
  4. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +0 -16
  5. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +6 -5
  6. package/ReactAndroid/gradle.properties +1 -1
  7. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
  8. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +1 -13
  9. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +1 -21
  10. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +1 -5
  11. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +1 -5
  12. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +1 -23
  13. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +1 -5
  14. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +2 -2
  15. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +4 -2
  16. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  17. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +17 -0
  18. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
  19. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +1 -29
  20. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +1 -7
  21. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +13 -6
  22. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +2 -1
  23. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  24. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +1 -9
  25. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +1 -11
  26. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +11 -47
  27. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +2 -6
  28. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +1 -9
  29. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +1 -19
  30. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +1 -3
  31. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +1 -11
  32. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +1 -5
  33. package/package.json +10 -10
  34. package/sdks/hermes-engine/version.properties +2 -2
  35. package/src/private/featureflags/ReactNativeFeatureFlags.js +1 -11
  36. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +1 -3
  37. package/types_generated/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +4 -2
@@ -42,7 +42,11 @@ type AccessibilityEventDefinitions = {
42
42
  screenReaderChanged: [boolean],
43
43
  };
44
44
 
45
- type AccessibilityEventTypes = 'click' | 'focus' | 'viewHoverEnter';
45
+ type AccessibilityEventTypes =
46
+ | 'click'
47
+ | 'focus'
48
+ | 'viewHoverEnter'
49
+ | 'windowStateChange';
46
50
 
47
51
  // Mapping of public event names to platform-specific event names.
48
52
  const EventNames: Map<
@@ -438,6 +442,8 @@ const AccessibilityInfo = {
438
442
  * Set accessibility focus to a React component.
439
443
  *
440
444
  * See https://reactnative.dev/docs/accessibilityinfo#setaccessibilityfocus
445
+ *
446
+ * @deprecated Use `sendAccessibilityEvent` with eventType `focus` instead.
441
447
  */
442
448
  setAccessibilityFocus(reactTag: number): void {
443
449
  legacySendAccessibilityEvent(reactTag, 'focus');
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
29
29
  static major: number = 0;
30
30
  static minor: number = 84;
31
31
  static patch: number = 0;
32
- static prerelease: string | null = 'nightly-20260105-0241b5995';
32
+ static prerelease: string | null = 'nightly-20260106-36a0d9ef6';
33
33
 
34
34
  static getVersionString(): string {
35
35
  return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(84),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"nightly-20260105-0241b5995",
27
+ RCTVersionPrerelease: @"nightly-20260106-36a0d9ef6",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -302,8 +302,6 @@ protected:
302
302
  methodMap_["updateRuntimeShadowNodeReferencesOnCommit"] = MethodMetadata {.argCount = 0, .invoker = __updateRuntimeShadowNodeReferencesOnCommit};
303
303
  methodMap_["useAlwaysAvailableJSErrorHandling"] = MethodMetadata {.argCount = 0, .invoker = __useAlwaysAvailableJSErrorHandling};
304
304
  methodMap_["useFabricInterop"] = MethodMetadata {.argCount = 0, .invoker = __useFabricInterop};
305
- methodMap_["useNativeEqualsInNativeReadableArrayAndroid"] = MethodMetadata {.argCount = 0, .invoker = __useNativeEqualsInNativeReadableArrayAndroid};
306
- methodMap_["useNativeTransformHelperAndroid"] = MethodMetadata {.argCount = 0, .invoker = __useNativeTransformHelperAndroid};
307
305
  methodMap_["useNativeViewConfigsInBridgelessMode"] = MethodMetadata {.argCount = 0, .invoker = __useNativeViewConfigsInBridgelessMode};
308
306
  methodMap_["useRawPropsJsiValue"] = MethodMetadata {.argCount = 0, .invoker = __useRawPropsJsiValue};
309
307
  methodMap_["useShadowNodeStateOnClone"] = MethodMetadata {.argCount = 0, .invoker = __useShadowNodeStateOnClone};
@@ -870,20 +868,6 @@ private:
870
868
  return bridging::callFromJs<bool>(rt, &T::useFabricInterop, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
871
869
  }
872
870
 
873
- static jsi::Value __useNativeEqualsInNativeReadableArrayAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
874
- static_assert(
875
- bridging::getParameterCount(&T::useNativeEqualsInNativeReadableArrayAndroid) == 1,
876
- "Expected useNativeEqualsInNativeReadableArrayAndroid(...) to have 1 parameters");
877
- return bridging::callFromJs<bool>(rt, &T::useNativeEqualsInNativeReadableArrayAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
878
- }
879
-
880
- static jsi::Value __useNativeTransformHelperAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
881
- static_assert(
882
- bridging::getParameterCount(&T::useNativeTransformHelperAndroid) == 1,
883
- "Expected useNativeTransformHelperAndroid(...) to have 1 parameters");
884
- return bridging::callFromJs<bool>(rt, &T::useNativeTransformHelperAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
885
- }
886
-
887
871
  static jsi::Value __useNativeViewConfigsInBridgelessMode(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
888
872
  static_assert(
889
873
  bridging::getParameterCount(&T::useNativeViewConfigsInBridgelessMode) == 1,
@@ -9,9 +9,9 @@
9
9
 
10
10
  #if RCT_DEV || RCT_REMOTE_PROFILE
11
11
 
12
+ #import <React/RCTAssert.h>
12
13
  #import <React/RCTInspector.h>
13
14
  #import <React/RCTInspectorPackagerConnection.h>
14
- #import <React/RCTLog.h>
15
15
  #import <React/RCTUtils.h>
16
16
  #import <SocketRocket/SRWebSocket.h>
17
17
  #import <jsinspector-modern/InspectorPackagerConnection.h>
@@ -22,7 +22,11 @@ using namespace facebook::react::jsinspector_modern;
22
22
  namespace {
23
23
  NSString *NSStringFromUTF8StringView(std::string_view view)
24
24
  {
25
- return [[NSString alloc] initWithBytes:(const char *)view.data() length:view.size() encoding:NSUTF8StringEncoding];
25
+ NSString *result = [[NSString alloc] initWithBytes:(const char *)view.data()
26
+ length:view.size()
27
+ encoding:NSUTF8StringEncoding];
28
+ RCTAssert(result != nil, @"string_view contains invalid UTF-8 bytes");
29
+ return result;
26
30
  }
27
31
  } // namespace
28
32
  @interface RCTCxxInspectorWebSocketAdapter () <SRWebSocketDelegate> {
@@ -47,9 +51,6 @@ NSString *NSStringFromUTF8StringView(std::string_view view)
47
51
  {
48
52
  __weak RCTCxxInspectorWebSocketAdapter *weakSelf = self;
49
53
  NSString *messageStr = NSStringFromUTF8StringView(message);
50
- if (messageStr == nil) {
51
- RCTLogError(@"Failed to convert CDP message string to NSString, message will be dropped!");
52
- }
53
54
  dispatch_async(dispatch_get_main_queue(), ^{
54
55
  RCTCxxInspectorWebSocketAdapter *strongSelf = weakSelf;
55
56
  if (strongSelf != nullptr) {
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.84.0-nightly-20260105-0241b5995
1
+ VERSION_NAME=0.84.0-nightly-20260106-36a0d9ef6
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
  react.internal.hermesPublishingGroup=com.facebook.hermes
4
4
 
@@ -8,7 +8,6 @@
8
8
  package com.facebook.react.bridge
9
9
 
10
10
  import com.facebook.proguard.annotations.DoNotStrip
11
- import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
12
11
  import java.util.ArrayList
13
12
  import java.util.Arrays
14
13
  import kotlin.jvm.JvmStatic
@@ -90,17 +89,7 @@ public open class ReadableNativeArray protected constructor() : NativeArray(), R
90
89
 
91
90
  override fun hashCode(): Int = localArray.hashCode()
92
91
 
93
- override fun equals(other: Any?): Boolean {
94
- if (other !is ReadableNativeArray) {
95
- return false
96
- }
97
-
98
- return if (ReactNativeFeatureFlags.useNativeEqualsInNativeReadableArrayAndroid()) {
99
- nativeEquals(other)
100
- } else {
101
- localArray.contentDeepEquals(other.localArray)
102
- }
103
- }
92
+ override fun equals(other: Any?): Boolean = (other is ReadableNativeArray) && nativeEquals(other)
104
93
 
105
94
  private external fun nativeEquals(other: ReadableNativeArray): Boolean
106
95
 
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<adc6b24ae04487d2b82a2bac35f027a7>>
7
+ * @generated SignedSource<<9406085adbc0685b473c868a27085cf8>>
8
8
  */
9
9
 
10
10
  /**
@@ -498,18 +498,6 @@ public object ReactNativeFeatureFlags {
498
498
  @JvmStatic
499
499
  public fun useFabricInterop(): Boolean = accessor.useFabricInterop()
500
500
 
501
- /**
502
- * Use a native implementation of equals in NativeReadableArray.
503
- */
504
- @JvmStatic
505
- public fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean = accessor.useNativeEqualsInNativeReadableArrayAndroid()
506
-
507
- /**
508
- * Use a native implementation of TransformHelper
509
- */
510
- @JvmStatic
511
- public fun useNativeTransformHelperAndroid(): Boolean = accessor.useNativeTransformHelperAndroid()
512
-
513
501
  /**
514
502
  * When enabled, the native view configs are used in bridgeless mode.
515
503
  */
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<3ebb3c265193b4f61e5bf43082c5be54>>
7
+ * @generated SignedSource<<accc9aa83d8ea2f5faa1eaae9a696d67>>
8
8
  */
9
9
 
10
10
  /**
@@ -98,8 +98,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
98
98
  private var updateRuntimeShadowNodeReferencesOnCommitCache: Boolean? = null
99
99
  private var useAlwaysAvailableJSErrorHandlingCache: Boolean? = null
100
100
  private var useFabricInteropCache: Boolean? = null
101
- private var useNativeEqualsInNativeReadableArrayAndroidCache: Boolean? = null
102
- private var useNativeTransformHelperAndroidCache: Boolean? = null
103
101
  private var useNativeViewConfigsInBridgelessModeCache: Boolean? = null
104
102
  private var useRawPropsJsiValueCache: Boolean? = null
105
103
  private var useShadowNodeStateOnCloneCache: Boolean? = null
@@ -813,24 +811,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
813
811
  return cached
814
812
  }
815
813
 
816
- override fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean {
817
- var cached = useNativeEqualsInNativeReadableArrayAndroidCache
818
- if (cached == null) {
819
- cached = ReactNativeFeatureFlagsCxxInterop.useNativeEqualsInNativeReadableArrayAndroid()
820
- useNativeEqualsInNativeReadableArrayAndroidCache = cached
821
- }
822
- return cached
823
- }
824
-
825
- override fun useNativeTransformHelperAndroid(): Boolean {
826
- var cached = useNativeTransformHelperAndroidCache
827
- if (cached == null) {
828
- cached = ReactNativeFeatureFlagsCxxInterop.useNativeTransformHelperAndroid()
829
- useNativeTransformHelperAndroidCache = cached
830
- }
831
- return cached
832
- }
833
-
834
814
  override fun useNativeViewConfigsInBridgelessMode(): Boolean {
835
815
  var cached = useNativeViewConfigsInBridgelessModeCache
836
816
  if (cached == null) {
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<eb11cf643c4e94eddc5d7985a8a7a03a>>
7
+ * @generated SignedSource<<e3e8ad599dfc9c77d6a79d6c094e8a2b>>
8
8
  */
9
9
 
10
10
  /**
@@ -184,10 +184,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
184
184
 
185
185
  @DoNotStrip @JvmStatic public external fun useFabricInterop(): Boolean
186
186
 
187
- @DoNotStrip @JvmStatic public external fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean
188
-
189
- @DoNotStrip @JvmStatic public external fun useNativeTransformHelperAndroid(): Boolean
190
-
191
187
  @DoNotStrip @JvmStatic public external fun useNativeViewConfigsInBridgelessMode(): Boolean
192
188
 
193
189
  @DoNotStrip @JvmStatic public external fun useRawPropsJsiValue(): Boolean
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<3525ab6194d3057e779e1050f19c93e4>>
7
+ * @generated SignedSource<<6bdc23594dd175a0bf4409c0e2f10552>>
8
8
  */
9
9
 
10
10
  /**
@@ -179,10 +179,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
179
179
 
180
180
  override fun useFabricInterop(): Boolean = true
181
181
 
182
- override fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean = true
183
-
184
- override fun useNativeTransformHelperAndroid(): Boolean = true
185
-
186
182
  override fun useNativeViewConfigsInBridgelessMode(): Boolean = false
187
183
 
188
184
  override fun useRawPropsJsiValue(): Boolean = true
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<f9ee0d1f23024b026d065ffc3d48cfcf>>
7
+ * @generated SignedSource<<3b0c2dec02a603afec82993302ecb6ff>>
8
8
  */
9
9
 
10
10
  /**
@@ -102,8 +102,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
102
102
  private var updateRuntimeShadowNodeReferencesOnCommitCache: Boolean? = null
103
103
  private var useAlwaysAvailableJSErrorHandlingCache: Boolean? = null
104
104
  private var useFabricInteropCache: Boolean? = null
105
- private var useNativeEqualsInNativeReadableArrayAndroidCache: Boolean? = null
106
- private var useNativeTransformHelperAndroidCache: Boolean? = null
107
105
  private var useNativeViewConfigsInBridgelessModeCache: Boolean? = null
108
106
  private var useRawPropsJsiValueCache: Boolean? = null
109
107
  private var useShadowNodeStateOnCloneCache: Boolean? = null
@@ -895,26 +893,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
895
893
  return cached
896
894
  }
897
895
 
898
- override fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean {
899
- var cached = useNativeEqualsInNativeReadableArrayAndroidCache
900
- if (cached == null) {
901
- cached = currentProvider.useNativeEqualsInNativeReadableArrayAndroid()
902
- accessedFeatureFlags.add("useNativeEqualsInNativeReadableArrayAndroid")
903
- useNativeEqualsInNativeReadableArrayAndroidCache = cached
904
- }
905
- return cached
906
- }
907
-
908
- override fun useNativeTransformHelperAndroid(): Boolean {
909
- var cached = useNativeTransformHelperAndroidCache
910
- if (cached == null) {
911
- cached = currentProvider.useNativeTransformHelperAndroid()
912
- accessedFeatureFlags.add("useNativeTransformHelperAndroid")
913
- useNativeTransformHelperAndroidCache = cached
914
- }
915
- return cached
916
- }
917
-
918
896
  override fun useNativeViewConfigsInBridgelessMode(): Boolean {
919
897
  var cached = useNativeViewConfigsInBridgelessModeCache
920
898
  if (cached == null) {
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<09cef8cedd515f477a32c2ed77d86fc4>>
7
+ * @generated SignedSource<<995c1c3035757935dc7a4c4d6778e43e>>
8
8
  */
9
9
 
10
10
  /**
@@ -179,10 +179,6 @@ public interface ReactNativeFeatureFlagsProvider {
179
179
 
180
180
  @DoNotStrip public fun useFabricInterop(): Boolean
181
181
 
182
- @DoNotStrip public fun useNativeEqualsInNativeReadableArrayAndroid(): Boolean
183
-
184
- @DoNotStrip public fun useNativeTransformHelperAndroid(): Boolean
185
-
186
182
  @DoNotStrip public fun useNativeViewConfigsInBridgelessMode(): Boolean
187
183
 
188
184
  @DoNotStrip public fun useRawPropsJsiValue(): Boolean
@@ -59,7 +59,7 @@ public class TurboModuleManager(
59
59
 
60
60
  init {
61
61
 
62
- installJSIBindings(runtimeExecutor)
62
+ dispatchJSBindingInstall(runtimeExecutor)
63
63
 
64
64
  eagerInitModuleNames = delegate?.getEagerInitModuleNames() ?: emptyList()
65
65
 
@@ -282,7 +282,7 @@ public class TurboModuleManager(
282
282
  tmmDelegate: TurboModuleManagerDelegate?,
283
283
  ): HybridData
284
284
 
285
- private external fun installJSIBindings(runtimeExecutor: RuntimeExecutor)
285
+ private external fun dispatchJSBindingInstall(runtimeExecutor: RuntimeExecutor)
286
286
 
287
287
  override fun invalidate() {
288
288
  /*
@@ -327,9 +327,11 @@ public open class JavaTimerManager(
327
327
  // If the JS thread is busy for multiple frames we cancel any other pending runnable.
328
328
  // We also capture the idleCallbackRunnable to tentatively fix:
329
329
  // https://github.com/facebook/react-native/issues/44842
330
+ // https://github.com/facebook/react-native/issues/54983
330
331
  currentIdleCallbackRunnable?.cancel()
331
- currentIdleCallbackRunnable = IdleCallbackRunnable(frameTimeNanos)
332
- reactApplicationContext.runOnJSQueueThread(currentIdleCallbackRunnable)
332
+ val idleCallbackRunnable = IdleCallbackRunnable(frameTimeNanos)
333
+ currentIdleCallbackRunnable = idleCallbackRunnable
334
+ reactApplicationContext.runOnJSQueueThread(idleCallbackRunnable)
333
335
  reactChoreographer.postFrameCallback(ReactChoreographer.CallbackType.IDLE_EVENT, this)
334
336
  }
335
337
  }
@@ -15,6 +15,6 @@ public object ReactNativeVersion {
15
15
  "major" to 0,
16
16
  "minor" to 84,
17
17
  "patch" to 0,
18
- "prerelease" to "nightly-20260105-0241b5995"
18
+ "prerelease" to "nightly-20260106-36a0d9ef6"
19
19
  )
20
20
  }
@@ -14,12 +14,29 @@ import com.facebook.react.bridge.ReactContext
14
14
  /**
15
15
  * Abstract base for a Choreographer FrameCallback that should have any RuntimeExceptions it throws
16
16
  * handled by the [JSExceptionHandler] registered if the app is in dev mode.
17
+ *
18
+ * @property exceptionHandler The handler for RuntimeExceptions thrown during frame callbacks.
19
+ * @constructor Creates a GuardedFrameCallback with the specified exception handler.
17
20
  */
18
21
  public abstract class GuardedFrameCallback
19
22
  protected constructor(private val exceptionHandler: JSExceptionHandler) :
20
23
  Choreographer.FrameCallback {
24
+ /**
25
+ * Creates a GuardedFrameCallback using the exception handler from the provided ReactContext.
26
+ *
27
+ * @param reactContext The React context whose exception handler will be used.
28
+ */
21
29
  protected constructor(reactContext: ReactContext) : this(reactContext.exceptionHandler)
22
30
 
31
+ /**
32
+ * Choreographer frame callback implementation that guards [doFrameGuarded] with exception
33
+ * handling.
34
+ *
35
+ * Wraps calls to [doFrameGuarded] in a try-catch block. Any RuntimeExceptions thrown are caught
36
+ * and passed to the exception handler instead of crashing the app.
37
+ *
38
+ * @param frameTimeNanos The time in nanoseconds when the frame started being rendered.
39
+ */
23
40
  public override fun doFrame(frameTimeNanos: Long) {
24
41
  try {
25
42
  doFrameGuarded(frameTimeNanos)
@@ -13,7 +13,6 @@ import com.facebook.react.bridge.ReadableArray
13
13
  import com.facebook.react.bridge.ReadableMap
14
14
  import com.facebook.react.bridge.ReadableType
15
15
  import com.facebook.react.common.ReactConstants
16
- import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
17
16
 
18
17
  public object TransformHelper {
19
18
 
@@ -73,12 +72,7 @@ public object TransformHelper {
73
72
  transformOrigin: ReadableArray?,
74
73
  allowPercentageResolution: Boolean,
75
74
  ) {
76
- if (
77
- allowPercentageResolution &&
78
- ReactNativeFeatureFlags.useNativeTransformHelperAndroid() &&
79
- transforms is NativeArray &&
80
- transformOrigin is NativeArray?
81
- ) {
75
+ if (allowPercentageResolution && transforms is NativeArray && transformOrigin is NativeArray?) {
82
76
  nativeProcessTransform(transforms, result, viewWidth, viewHeight, transformOrigin)
83
77
  return
84
78
  }
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<b9af351de972ddff807bd25f98f3ff42>>
7
+ * @generated SignedSource<<1ea556a16d18a54b7087742b986a93a7>>
8
8
  */
9
9
 
10
10
  /**
@@ -507,18 +507,6 @@ class ReactNativeFeatureFlagsJavaProvider
507
507
  return method(javaProvider_);
508
508
  }
509
509
 
510
- bool useNativeEqualsInNativeReadableArrayAndroid() override {
511
- static const auto method =
512
- getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("useNativeEqualsInNativeReadableArrayAndroid");
513
- return method(javaProvider_);
514
- }
515
-
516
- bool useNativeTransformHelperAndroid() override {
517
- static const auto method =
518
- getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("useNativeTransformHelperAndroid");
519
- return method(javaProvider_);
520
- }
521
-
522
510
  bool useNativeViewConfigsInBridgelessMode() override {
523
511
  static const auto method =
524
512
  getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("useNativeViewConfigsInBridgelessMode");
@@ -973,16 +961,6 @@ bool JReactNativeFeatureFlagsCxxInterop::useFabricInterop(
973
961
  return ReactNativeFeatureFlags::useFabricInterop();
974
962
  }
975
963
 
976
- bool JReactNativeFeatureFlagsCxxInterop::useNativeEqualsInNativeReadableArrayAndroid(
977
- facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
978
- return ReactNativeFeatureFlags::useNativeEqualsInNativeReadableArrayAndroid();
979
- }
980
-
981
- bool JReactNativeFeatureFlagsCxxInterop::useNativeTransformHelperAndroid(
982
- facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
983
- return ReactNativeFeatureFlags::useNativeTransformHelperAndroid();
984
- }
985
-
986
964
  bool JReactNativeFeatureFlagsCxxInterop::useNativeViewConfigsInBridgelessMode(
987
965
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
988
966
  return ReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode();
@@ -1298,12 +1276,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
1298
1276
  makeNativeMethod(
1299
1277
  "useFabricInterop",
1300
1278
  JReactNativeFeatureFlagsCxxInterop::useFabricInterop),
1301
- makeNativeMethod(
1302
- "useNativeEqualsInNativeReadableArrayAndroid",
1303
- JReactNativeFeatureFlagsCxxInterop::useNativeEqualsInNativeReadableArrayAndroid),
1304
- makeNativeMethod(
1305
- "useNativeTransformHelperAndroid",
1306
- JReactNativeFeatureFlagsCxxInterop::useNativeTransformHelperAndroid),
1307
1279
  makeNativeMethod(
1308
1280
  "useNativeViewConfigsInBridgelessMode",
1309
1281
  JReactNativeFeatureFlagsCxxInterop::useNativeViewConfigsInBridgelessMode),
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<c89b15dbb7d1cec571eed1551e1b7162>>
7
+ * @generated SignedSource<<67b23d4209c5fa6b721921953d76a829>>
8
8
  */
9
9
 
10
10
  /**
@@ -264,12 +264,6 @@ class JReactNativeFeatureFlagsCxxInterop
264
264
  static bool useFabricInterop(
265
265
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
266
266
 
267
- static bool useNativeEqualsInNativeReadableArrayAndroid(
268
- facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
269
-
270
- static bool useNativeTransformHelperAndroid(
271
- facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
272
-
273
267
  static bool useNativeViewConfigsInBridgelessMode(
274
268
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
275
269
 
@@ -118,7 +118,8 @@ void TurboModuleManager::registerNatives() {
118
118
  registerHybrid({
119
119
  makeNativeMethod("initHybrid", TurboModuleManager::initHybrid),
120
120
  makeNativeMethod(
121
- "installJSIBindings", TurboModuleManager::installJSIBindings),
121
+ "dispatchJSBindingInstall",
122
+ TurboModuleManager::dispatchJSBindingInstall),
122
123
  });
123
124
  }
124
125
 
@@ -318,7 +319,16 @@ std::shared_ptr<TurboModule> TurboModuleManager::getLegacyModule(
318
319
  return nullptr;
319
320
  }
320
321
 
321
- void TurboModuleManager::installJSIBindings(
322
+ void TurboModuleManager::installJSBindings(
323
+ jsi::Runtime& runtime,
324
+ jni::alias_ref<jhybridobject> javaPart) {
325
+ TurboModuleBinding::install(
326
+ runtime,
327
+ createTurboModuleProvider(javaPart),
328
+ createLegacyModuleProvider(javaPart));
329
+ }
330
+
331
+ void TurboModuleManager::dispatchJSBindingInstall(
322
332
  jni::alias_ref<jhybridobject> javaPart,
323
333
  jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor) {
324
334
  auto cxxPart = javaPart->cthis();
@@ -328,10 +338,7 @@ void TurboModuleManager::installJSIBindings(
328
338
 
329
339
  runtimeExecutor->cthis()->get()(
330
340
  [javaPart = jni::make_global(javaPart)](jsi::Runtime& runtime) {
331
- TurboModuleBinding::install(
332
- runtime,
333
- createTurboModuleProvider(javaPart),
334
- createLegacyModuleProvider(javaPart));
341
+ installJSBindings(runtime, javaPart);
335
342
  });
336
343
  }
337
344
 
@@ -55,7 +55,8 @@ class TurboModuleManager : public jni::HybridClass<TurboModuleManager> {
55
55
  std::shared_ptr<NativeMethodCallInvoker> nativeMethodCallInvoker,
56
56
  jni::alias_ref<TurboModuleManagerDelegate::javaobject> delegate);
57
57
 
58
- static void installJSIBindings(
58
+ static void installJSBindings(jsi::Runtime &runtime, jni::alias_ref<jhybridobject> javaPart);
59
+ static void dispatchJSBindingInstall(
59
60
  jni::alias_ref<jhybridobject> javaPart,
60
61
  jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutor);
61
62
 
@@ -22,7 +22,7 @@ constexpr struct {
22
22
  int32_t Major = 0;
23
23
  int32_t Minor = 84;
24
24
  int32_t Patch = 0;
25
- std::string_view Prerelease = "nightly-20260105-0241b5995";
25
+ std::string_view Prerelease = "nightly-20260106-36a0d9ef6";
26
26
  } ReactNativeVersion;
27
27
 
28
28
  } // namespace facebook::react
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<08d50062a88a227aa8800e549b6dfe57>>
7
+ * @generated SignedSource<<3d71ee2b906dcc1313428185cbe853f8>>
8
8
  */
9
9
 
10
10
  /**
@@ -338,14 +338,6 @@ bool ReactNativeFeatureFlags::useFabricInterop() {
338
338
  return getAccessor().useFabricInterop();
339
339
  }
340
340
 
341
- bool ReactNativeFeatureFlags::useNativeEqualsInNativeReadableArrayAndroid() {
342
- return getAccessor().useNativeEqualsInNativeReadableArrayAndroid();
343
- }
344
-
345
- bool ReactNativeFeatureFlags::useNativeTransformHelperAndroid() {
346
- return getAccessor().useNativeTransformHelperAndroid();
347
- }
348
-
349
341
  bool ReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode() {
350
342
  return getAccessor().useNativeViewConfigsInBridgelessMode();
351
343
  }
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<4f6913d92515fd817a167ef2a505c777>>
7
+ * @generated SignedSource<<d7838e490a83e54bee2770b80951877a>>
8
8
  */
9
9
 
10
10
  /**
@@ -429,16 +429,6 @@ class ReactNativeFeatureFlags {
429
429
  */
430
430
  RN_EXPORT static bool useFabricInterop();
431
431
 
432
- /**
433
- * Use a native implementation of equals in NativeReadableArray.
434
- */
435
- RN_EXPORT static bool useNativeEqualsInNativeReadableArrayAndroid();
436
-
437
- /**
438
- * Use a native implementation of TransformHelper
439
- */
440
- RN_EXPORT static bool useNativeTransformHelperAndroid();
441
-
442
432
  /**
443
433
  * When enabled, the native view configs are used in bridgeless mode.
444
434
  */
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<c9a7ba46b550596ced6dfea4eb224ff4>>
7
+ * @generated SignedSource<<8bda4a084596c5512b8ebf5eaa44268e>>
8
8
  */
9
9
 
10
10
  /**
@@ -1433,42 +1433,6 @@ bool ReactNativeFeatureFlagsAccessor::useFabricInterop() {
1433
1433
  return flagValue.value();
1434
1434
  }
1435
1435
 
1436
- bool ReactNativeFeatureFlagsAccessor::useNativeEqualsInNativeReadableArrayAndroid() {
1437
- auto flagValue = useNativeEqualsInNativeReadableArrayAndroid_.load();
1438
-
1439
- if (!flagValue.has_value()) {
1440
- // This block is not exclusive but it is not necessary.
1441
- // If multiple threads try to initialize the feature flag, we would only
1442
- // be accessing the provider multiple times but the end state of this
1443
- // instance and the returned flag value would be the same.
1444
-
1445
- markFlagAsAccessed(78, "useNativeEqualsInNativeReadableArrayAndroid");
1446
-
1447
- flagValue = currentProvider_->useNativeEqualsInNativeReadableArrayAndroid();
1448
- useNativeEqualsInNativeReadableArrayAndroid_ = flagValue;
1449
- }
1450
-
1451
- return flagValue.value();
1452
- }
1453
-
1454
- bool ReactNativeFeatureFlagsAccessor::useNativeTransformHelperAndroid() {
1455
- auto flagValue = useNativeTransformHelperAndroid_.load();
1456
-
1457
- if (!flagValue.has_value()) {
1458
- // This block is not exclusive but it is not necessary.
1459
- // If multiple threads try to initialize the feature flag, we would only
1460
- // be accessing the provider multiple times but the end state of this
1461
- // instance and the returned flag value would be the same.
1462
-
1463
- markFlagAsAccessed(79, "useNativeTransformHelperAndroid");
1464
-
1465
- flagValue = currentProvider_->useNativeTransformHelperAndroid();
1466
- useNativeTransformHelperAndroid_ = flagValue;
1467
- }
1468
-
1469
- return flagValue.value();
1470
- }
1471
-
1472
1436
  bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
1473
1437
  auto flagValue = useNativeViewConfigsInBridgelessMode_.load();
1474
1438
 
@@ -1478,7 +1442,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
1478
1442
  // be accessing the provider multiple times but the end state of this
1479
1443
  // instance and the returned flag value would be the same.
1480
1444
 
1481
- markFlagAsAccessed(80, "useNativeViewConfigsInBridgelessMode");
1445
+ markFlagAsAccessed(78, "useNativeViewConfigsInBridgelessMode");
1482
1446
 
1483
1447
  flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
1484
1448
  useNativeViewConfigsInBridgelessMode_ = flagValue;
@@ -1496,7 +1460,7 @@ bool ReactNativeFeatureFlagsAccessor::useRawPropsJsiValue() {
1496
1460
  // be accessing the provider multiple times but the end state of this
1497
1461
  // instance and the returned flag value would be the same.
1498
1462
 
1499
- markFlagAsAccessed(81, "useRawPropsJsiValue");
1463
+ markFlagAsAccessed(79, "useRawPropsJsiValue");
1500
1464
 
1501
1465
  flagValue = currentProvider_->useRawPropsJsiValue();
1502
1466
  useRawPropsJsiValue_ = flagValue;
@@ -1514,7 +1478,7 @@ bool ReactNativeFeatureFlagsAccessor::useShadowNodeStateOnClone() {
1514
1478
  // be accessing the provider multiple times but the end state of this
1515
1479
  // instance and the returned flag value would be the same.
1516
1480
 
1517
- markFlagAsAccessed(82, "useShadowNodeStateOnClone");
1481
+ markFlagAsAccessed(80, "useShadowNodeStateOnClone");
1518
1482
 
1519
1483
  flagValue = currentProvider_->useShadowNodeStateOnClone();
1520
1484
  useShadowNodeStateOnClone_ = flagValue;
@@ -1532,7 +1496,7 @@ bool ReactNativeFeatureFlagsAccessor::useSharedAnimatedBackend() {
1532
1496
  // be accessing the provider multiple times but the end state of this
1533
1497
  // instance and the returned flag value would be the same.
1534
1498
 
1535
- markFlagAsAccessed(83, "useSharedAnimatedBackend");
1499
+ markFlagAsAccessed(81, "useSharedAnimatedBackend");
1536
1500
 
1537
1501
  flagValue = currentProvider_->useSharedAnimatedBackend();
1538
1502
  useSharedAnimatedBackend_ = flagValue;
@@ -1550,7 +1514,7 @@ bool ReactNativeFeatureFlagsAccessor::useTraitHiddenOnAndroid() {
1550
1514
  // be accessing the provider multiple times but the end state of this
1551
1515
  // instance and the returned flag value would be the same.
1552
1516
 
1553
- markFlagAsAccessed(84, "useTraitHiddenOnAndroid");
1517
+ markFlagAsAccessed(82, "useTraitHiddenOnAndroid");
1554
1518
 
1555
1519
  flagValue = currentProvider_->useTraitHiddenOnAndroid();
1556
1520
  useTraitHiddenOnAndroid_ = flagValue;
@@ -1568,7 +1532,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModuleInterop() {
1568
1532
  // be accessing the provider multiple times but the end state of this
1569
1533
  // instance and the returned flag value would be the same.
1570
1534
 
1571
- markFlagAsAccessed(85, "useTurboModuleInterop");
1535
+ markFlagAsAccessed(83, "useTurboModuleInterop");
1572
1536
 
1573
1537
  flagValue = currentProvider_->useTurboModuleInterop();
1574
1538
  useTurboModuleInterop_ = flagValue;
@@ -1586,7 +1550,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModules() {
1586
1550
  // be accessing the provider multiple times but the end state of this
1587
1551
  // instance and the returned flag value would be the same.
1588
1552
 
1589
- markFlagAsAccessed(86, "useTurboModules");
1553
+ markFlagAsAccessed(84, "useTurboModules");
1590
1554
 
1591
1555
  flagValue = currentProvider_->useTurboModules();
1592
1556
  useTurboModules_ = flagValue;
@@ -1604,7 +1568,7 @@ double ReactNativeFeatureFlagsAccessor::viewCullingOutsetRatio() {
1604
1568
  // be accessing the provider multiple times but the end state of this
1605
1569
  // instance and the returned flag value would be the same.
1606
1570
 
1607
- markFlagAsAccessed(87, "viewCullingOutsetRatio");
1571
+ markFlagAsAccessed(85, "viewCullingOutsetRatio");
1608
1572
 
1609
1573
  flagValue = currentProvider_->viewCullingOutsetRatio();
1610
1574
  viewCullingOutsetRatio_ = flagValue;
@@ -1622,7 +1586,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewHysteresisRatio() {
1622
1586
  // be accessing the provider multiple times but the end state of this
1623
1587
  // instance and the returned flag value would be the same.
1624
1588
 
1625
- markFlagAsAccessed(88, "virtualViewHysteresisRatio");
1589
+ markFlagAsAccessed(86, "virtualViewHysteresisRatio");
1626
1590
 
1627
1591
  flagValue = currentProvider_->virtualViewHysteresisRatio();
1628
1592
  virtualViewHysteresisRatio_ = flagValue;
@@ -1640,7 +1604,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewPrerenderRatio() {
1640
1604
  // be accessing the provider multiple times but the end state of this
1641
1605
  // instance and the returned flag value would be the same.
1642
1606
 
1643
- markFlagAsAccessed(89, "virtualViewPrerenderRatio");
1607
+ markFlagAsAccessed(87, "virtualViewPrerenderRatio");
1644
1608
 
1645
1609
  flagValue = currentProvider_->virtualViewPrerenderRatio();
1646
1610
  virtualViewPrerenderRatio_ = flagValue;
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<1bcf3e91c74400c90689e350fab7b4ce>>
7
+ * @generated SignedSource<<fd5d2f3789bc66906ec6b31a1f5c23f6>>
8
8
  */
9
9
 
10
10
  /**
@@ -110,8 +110,6 @@ class ReactNativeFeatureFlagsAccessor {
110
110
  bool updateRuntimeShadowNodeReferencesOnCommit();
111
111
  bool useAlwaysAvailableJSErrorHandling();
112
112
  bool useFabricInterop();
113
- bool useNativeEqualsInNativeReadableArrayAndroid();
114
- bool useNativeTransformHelperAndroid();
115
113
  bool useNativeViewConfigsInBridgelessMode();
116
114
  bool useRawPropsJsiValue();
117
115
  bool useShadowNodeStateOnClone();
@@ -133,7 +131,7 @@ class ReactNativeFeatureFlagsAccessor {
133
131
  std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
134
132
  bool wasOverridden_;
135
133
 
136
- std::array<std::atomic<const char*>, 90> accessedFeatureFlags_;
134
+ std::array<std::atomic<const char*>, 88> accessedFeatureFlags_;
137
135
 
138
136
  std::atomic<std::optional<bool>> commonTestFlag_;
139
137
  std::atomic<std::optional<bool>> cdpInteractionMetricsEnabled_;
@@ -213,8 +211,6 @@ class ReactNativeFeatureFlagsAccessor {
213
211
  std::atomic<std::optional<bool>> updateRuntimeShadowNodeReferencesOnCommit_;
214
212
  std::atomic<std::optional<bool>> useAlwaysAvailableJSErrorHandling_;
215
213
  std::atomic<std::optional<bool>> useFabricInterop_;
216
- std::atomic<std::optional<bool>> useNativeEqualsInNativeReadableArrayAndroid_;
217
- std::atomic<std::optional<bool>> useNativeTransformHelperAndroid_;
218
214
  std::atomic<std::optional<bool>> useNativeViewConfigsInBridgelessMode_;
219
215
  std::atomic<std::optional<bool>> useRawPropsJsiValue_;
220
216
  std::atomic<std::optional<bool>> useShadowNodeStateOnClone_;
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<7df208d8e3cda2df044e6303bb359ba9>>
7
+ * @generated SignedSource<<b8b6163068152d88615813c0d80ed28b>>
8
8
  */
9
9
 
10
10
  /**
@@ -339,14 +339,6 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
339
339
  return true;
340
340
  }
341
341
 
342
- bool useNativeEqualsInNativeReadableArrayAndroid() override {
343
- return true;
344
- }
345
-
346
- bool useNativeTransformHelperAndroid() override {
347
- return true;
348
- }
349
-
350
342
  bool useNativeViewConfigsInBridgelessMode() override {
351
343
  return false;
352
344
  }
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<543338d7b54991244389bca238b2078d>>
7
+ * @generated SignedSource<<a4f191da59898458d1f02248cfa509d6>>
8
8
  */
9
9
 
10
10
  /**
@@ -747,24 +747,6 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
747
747
  return ReactNativeFeatureFlagsDefaults::useFabricInterop();
748
748
  }
749
749
 
750
- bool useNativeEqualsInNativeReadableArrayAndroid() override {
751
- auto value = values_["useNativeEqualsInNativeReadableArrayAndroid"];
752
- if (!value.isNull()) {
753
- return value.getBool();
754
- }
755
-
756
- return ReactNativeFeatureFlagsDefaults::useNativeEqualsInNativeReadableArrayAndroid();
757
- }
758
-
759
- bool useNativeTransformHelperAndroid() override {
760
- auto value = values_["useNativeTransformHelperAndroid"];
761
- if (!value.isNull()) {
762
- return value.getBool();
763
- }
764
-
765
- return ReactNativeFeatureFlagsDefaults::useNativeTransformHelperAndroid();
766
- }
767
-
768
750
  bool useNativeViewConfigsInBridgelessMode() override {
769
751
  auto value = values_["useNativeViewConfigsInBridgelessMode"];
770
752
  if (!value.isNull()) {
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<4c2b82eb2fc7f82b09b7b0b489f3d447>>
7
+ * @generated SignedSource<<8e68f8be2e5f35422ae866390c76f670>>
8
8
  */
9
9
 
10
10
  /**
@@ -103,8 +103,6 @@ class ReactNativeFeatureFlagsProvider {
103
103
  virtual bool updateRuntimeShadowNodeReferencesOnCommit() = 0;
104
104
  virtual bool useAlwaysAvailableJSErrorHandling() = 0;
105
105
  virtual bool useFabricInterop() = 0;
106
- virtual bool useNativeEqualsInNativeReadableArrayAndroid() = 0;
107
- virtual bool useNativeTransformHelperAndroid() = 0;
108
106
  virtual bool useNativeViewConfigsInBridgelessMode() = 0;
109
107
  virtual bool useRawPropsJsiValue() = 0;
110
108
  virtual bool useShadowNodeStateOnClone() = 0;
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<f22bdf728cccaf9d95e62256f630ee1b>>
7
+ * @generated SignedSource<<3923fa1256c4cc2656201f9d83338606>>
8
8
  */
9
9
 
10
10
  /**
@@ -434,16 +434,6 @@ bool NativeReactNativeFeatureFlags::useFabricInterop(
434
434
  return ReactNativeFeatureFlags::useFabricInterop();
435
435
  }
436
436
 
437
- bool NativeReactNativeFeatureFlags::useNativeEqualsInNativeReadableArrayAndroid(
438
- jsi::Runtime& /*runtime*/) {
439
- return ReactNativeFeatureFlags::useNativeEqualsInNativeReadableArrayAndroid();
440
- }
441
-
442
- bool NativeReactNativeFeatureFlags::useNativeTransformHelperAndroid(
443
- jsi::Runtime& /*runtime*/) {
444
- return ReactNativeFeatureFlags::useNativeTransformHelperAndroid();
445
- }
446
-
447
437
  bool NativeReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode(
448
438
  jsi::Runtime& /*runtime*/) {
449
439
  return ReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode();
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<3caa7ab068af35b4b198bce5925dea1d>>
7
+ * @generated SignedSource<<560b5619790e0d17e76bc3d600ca10d1>>
8
8
  */
9
9
 
10
10
  /**
@@ -192,10 +192,6 @@ class NativeReactNativeFeatureFlags
192
192
 
193
193
  bool useFabricInterop(jsi::Runtime& runtime);
194
194
 
195
- bool useNativeEqualsInNativeReadableArrayAndroid(jsi::Runtime& runtime);
196
-
197
- bool useNativeTransformHelperAndroid(jsi::Runtime& runtime);
198
-
199
195
  bool useNativeViewConfigsInBridgelessMode(jsi::Runtime& runtime);
200
196
 
201
197
  bool useRawPropsJsiValue(jsi::Runtime& runtime);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.84.0-nightly-20260105-0241b5995",
3
+ "version": "0.84.0-nightly-20260106-36a0d9ef6",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -21,7 +21,7 @@
21
21
  ],
22
22
  "bugs": "https://github.com/facebook/react-native/issues",
23
23
  "engines": {
24
- "node": ">= 20.19.4"
24
+ "node": ">= 22.11.0"
25
25
  },
26
26
  "bin": {
27
27
  "react-native": "cli.js"
@@ -160,13 +160,13 @@
160
160
  },
161
161
  "dependencies": {
162
162
  "@jest/create-cache-key-function": "^29.7.0",
163
- "@react-native/assets-registry": "0.84.0-nightly-20260105-0241b5995",
164
- "@react-native/codegen": "0.84.0-nightly-20260105-0241b5995",
165
- "@react-native/community-cli-plugin": "0.84.0-nightly-20260105-0241b5995",
166
- "@react-native/gradle-plugin": "0.84.0-nightly-20260105-0241b5995",
167
- "@react-native/js-polyfills": "0.84.0-nightly-20260105-0241b5995",
168
- "@react-native/normalize-colors": "0.84.0-nightly-20260105-0241b5995",
169
- "@react-native/virtualized-lists": "0.84.0-nightly-20260105-0241b5995",
163
+ "@react-native/assets-registry": "0.84.0-nightly-20260106-36a0d9ef6",
164
+ "@react-native/codegen": "0.84.0-nightly-20260106-36a0d9ef6",
165
+ "@react-native/community-cli-plugin": "0.84.0-nightly-20260106-36a0d9ef6",
166
+ "@react-native/gradle-plugin": "0.84.0-nightly-20260106-36a0d9ef6",
167
+ "@react-native/js-polyfills": "0.84.0-nightly-20260106-36a0d9ef6",
168
+ "@react-native/normalize-colors": "0.84.0-nightly-20260106-36a0d9ef6",
169
+ "@react-native/virtualized-lists": "0.84.0-nightly-20260106-36a0d9ef6",
170
170
  "abort-controller": "^3.0.0",
171
171
  "anser": "^1.4.9",
172
172
  "ansi-regex": "^5.0.0",
@@ -175,7 +175,7 @@
175
175
  "base64-js": "^1.5.1",
176
176
  "commander": "^12.0.0",
177
177
  "flow-enums-runtime": "^0.0.6",
178
- "hermes-compiler": "0.15.0-commitly-202512121350-fd0e1d3ed",
178
+ "hermes-compiler": "0.16.0-commitly-202601051832-eb1eb2d95",
179
179
  "invariant": "^2.2.4",
180
180
  "jest-environment-node": "^29.7.0",
181
181
  "memoize-one": "^5.0.0",
@@ -1,2 +1,2 @@
1
- HERMES_VERSION_NAME=0.15.0-commitly-202512121350-fd0e1d3ed
2
- HERMES_V1_VERSION_NAME=250829098.0.4
1
+ HERMES_VERSION_NAME=0.16.0-commitly-202601051832-eb1eb2d95
2
+ HERMES_V1_VERSION_NAME=250829098.0.5
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<9ffc43524e0aa410a7f161dfe9f315a5>>
7
+ * @generated SignedSource<<db4650fb28b7c07c73eb75775a7e7811>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -129,8 +129,6 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
129
129
  updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean>,
130
130
  useAlwaysAvailableJSErrorHandling: Getter<boolean>,
131
131
  useFabricInterop: Getter<boolean>,
132
- useNativeEqualsInNativeReadableArrayAndroid: Getter<boolean>,
133
- useNativeTransformHelperAndroid: Getter<boolean>,
134
132
  useNativeViewConfigsInBridgelessMode: Getter<boolean>,
135
133
  useRawPropsJsiValue: Getter<boolean>,
136
134
  useShadowNodeStateOnClone: Getter<boolean>,
@@ -539,14 +537,6 @@ export const useAlwaysAvailableJSErrorHandling: Getter<boolean> = createNativeFl
539
537
  * Should this application enable the Fabric Interop Layer for Android? If yes, the application will behave so that it can accept non-Fabric components and render them on Fabric. This toggle is controlling extra logic such as custom event dispatching that are needed for the Fabric Interop Layer to work correctly.
540
538
  */
541
539
  export const useFabricInterop: Getter<boolean> = createNativeFlagGetter('useFabricInterop', true);
542
- /**
543
- * Use a native implementation of equals in NativeReadableArray.
544
- */
545
- export const useNativeEqualsInNativeReadableArrayAndroid: Getter<boolean> = createNativeFlagGetter('useNativeEqualsInNativeReadableArrayAndroid', true);
546
- /**
547
- * Use a native implementation of TransformHelper
548
- */
549
- export const useNativeTransformHelperAndroid: Getter<boolean> = createNativeFlagGetter('useNativeTransformHelperAndroid', true);
550
540
  /**
551
541
  * When enabled, the native view configs are used in bridgeless mode.
552
542
  */
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<c43da900298aae909ac525053b5ba848>>
7
+ * @generated SignedSource<<14b4f8916fccd1d255b4a260556d11da>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -103,8 +103,6 @@ export interface Spec extends TurboModule {
103
103
  +updateRuntimeShadowNodeReferencesOnCommit?: () => boolean;
104
104
  +useAlwaysAvailableJSErrorHandling?: () => boolean;
105
105
  +useFabricInterop?: () => boolean;
106
- +useNativeEqualsInNativeReadableArrayAndroid?: () => boolean;
107
- +useNativeTransformHelperAndroid?: () => boolean;
108
106
  +useNativeViewConfigsInBridgelessMode?: () => boolean;
109
107
  +useRawPropsJsiValue?: () => boolean;
110
108
  +useShadowNodeStateOnClone?: () => boolean;
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<2c2e2cbf13a39a3577605ef8e9f9c6ea>>
7
+ * @generated SignedSource<<5a9df3f9bf260d084c99647eeb92b83b>>
8
8
  *
9
9
  * This file was translated from Flow by scripts/js-api/build-types/index.js.
10
10
  * Original file: packages/react-native/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js
@@ -40,7 +40,7 @@ type AccessibilityEventDefinitions = Omit<AccessibilityEventDefinitionsAndroid,
40
40
  reduceMotionChanged: [boolean];
41
41
  screenReaderChanged: [boolean];
42
42
  };
43
- type AccessibilityEventTypes = "click" | "focus" | "viewHoverEnter";
43
+ type AccessibilityEventTypes = "click" | "focus" | "viewHoverEnter" | "windowStateChange";
44
44
  declare const AccessibilityInfo: {
45
45
  /**
46
46
  * Query whether bold text is currently enabled.
@@ -178,6 +178,8 @@ declare const AccessibilityInfo: {
178
178
  * Set accessibility focus to a React component.
179
179
  *
180
180
  * See https://reactnative.dev/docs/accessibilityinfo#setaccessibilityfocus
181
+ *
182
+ * @deprecated Use `sendAccessibilityEvent` with eventType `focus` instead.
181
183
  */
182
184
  setAccessibilityFocus(reactTag: number): void;
183
185
  /**