react-native 0.84.0-nightly-20251107-f8198f662 → 0.84.0-nightly-20251109-b7012ba92

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 (63) hide show
  1. package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
  2. package/Libraries/Core/ReactNativeVersion.js +1 -1
  3. package/Libraries/Image/RCTImagePlugins.h +1 -0
  4. package/Libraries/Image/RCTImagePlugins.mm +30 -17
  5. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
  6. package/Libraries/LogBox/Data/LogBoxData.js +31 -4
  7. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
  8. package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
  9. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
  10. package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
  11. package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
  12. package/React/Base/RCTVersion.m +1 -1
  13. package/React/CoreModules/CoreModulesPlugins.mm +98 -35
  14. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +16 -0
  15. package/ReactAndroid/gradle.properties +1 -1
  16. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +1 -1
  17. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
  18. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
  19. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
  20. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +5 -1
  21. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
  22. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
  23. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  24. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +4 -5
  25. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
  26. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +12 -0
  27. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
  28. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
  29. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +8 -1
  30. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
  31. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +29 -4
  32. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  33. package/ReactCommon/jsinspector-modern/HostTarget.h +8 -2
  34. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +6 -2
  35. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +15 -5
  36. package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +9 -5
  37. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
  38. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +19 -2
  39. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +59 -0
  40. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +20 -7
  41. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +19 -18
  42. package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
  43. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
  44. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +3 -0
  45. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +126 -0
  46. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
  47. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
  48. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +113 -77
  49. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
  50. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +9 -1
  51. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
  52. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
  53. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +0 -1
  54. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
  55. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
  56. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +3 -3
  57. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +2 -1
  58. package/ReactCommon/react/runtime/TimerManager.cpp +0 -54
  59. package/ReactCommon/react/runtime/TimerManager.h +0 -12
  60. package/package.json +9 -9
  61. package/sdks/hermes-engine/version.properties +1 -1
  62. package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -1
  63. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
@@ -13,21 +13,21 @@
13
13
 
14
14
  #import "RCTBlobPlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTBlobClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"BlobModule", RCTBlobManagerCls},
23
- {"FileReaderModule", RCTFileReaderModuleCls},
24
- };
25
-
26
- auto p = sCoreModuleClassMap->find(name);
27
- if (p != sCoreModuleClassMap->end()) {
28
- auto classFunc = p->second;
29
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTBlobClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "BlobModule"sv) {
24
+ return RCTBlobManagerCls();
30
25
  }
26
+
27
+ if (name == "FileReaderModule"sv) {
28
+ return RCTFileReaderModuleCls();
29
+ }
30
+
31
31
  return nil;
32
32
  }
33
33
 
@@ -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-20251107-f8198f662';
32
+ static prerelease: string | null = 'nightly-20251109-b7012ba92';
33
33
 
34
34
  static getVersionString(): string {
35
35
  return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
@@ -29,6 +29,7 @@ extern "C" {
29
29
  Class RCTImageClassProvider(const char *name);
30
30
 
31
31
  // Lookup functions
32
+ Class RCTBundleAssetImageLoaderCls(void) __attribute__((used));
32
33
  Class RCTGIFImageDecoderCls(void) __attribute__((used));
33
34
  Class RCTImageEditingManagerCls(void) __attribute__((used));
34
35
  Class RCTImageLoaderCls(void) __attribute__((used));
@@ -13,24 +13,37 @@
13
13
 
14
14
  #import "RCTImagePlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTImageClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"GIFImageDecoder", RCTGIFImageDecoderCls},
23
- {"ImageEditingManager", RCTImageEditingManagerCls},
24
- {"ImageLoader", RCTImageLoaderCls},
25
- {"ImageStoreManager", RCTImageStoreManagerCls},
26
- {"LocalAssetImageLoader", RCTLocalAssetImageLoaderCls},
27
- };
28
-
29
- auto p = sCoreModuleClassMap->find(name);
30
- if (p != sCoreModuleClassMap->end()) {
31
- auto classFunc = p->second;
32
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTImageClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "BundleAssetImageLoader"sv) {
24
+ return RCTBundleAssetImageLoaderCls();
25
+ }
26
+
27
+ if (name == "GIFImageDecoder"sv) {
28
+ return RCTGIFImageDecoderCls();
29
+ }
30
+
31
+ if (name == "ImageEditingManager"sv) {
32
+ return RCTImageEditingManagerCls();
33
33
  }
34
+
35
+ if (name == "ImageLoader"sv) {
36
+ return RCTImageLoaderCls();
37
+ }
38
+
39
+ if (name == "ImageStoreManager"sv) {
40
+ return RCTImageStoreManagerCls();
41
+ }
42
+
43
+ if (name == "LocalAssetImageLoader"sv) {
44
+ return RCTLocalAssetImageLoaderCls();
45
+ }
46
+
34
47
  return nil;
35
48
  }
36
49
 
@@ -13,20 +13,17 @@
13
13
 
14
14
  #import "RCTLinkingPlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTLinkingClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"LinkingManager", RCTLinkingManagerCls},
23
- };
24
-
25
- auto p = sCoreModuleClassMap->find(name);
26
- if (p != sCoreModuleClassMap->end()) {
27
- auto classFunc = p->second;
28
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTLinkingClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "LinkingManager"sv) {
24
+ return RCTLinkingManagerCls();
29
25
  }
26
+
30
27
  return nil;
31
28
  }
32
29
 
@@ -412,6 +412,21 @@ export function observe(observer: Observer): Subscription {
412
412
  };
413
413
  }
414
414
 
415
+ /**
416
+ * Same as observe(), but doesn't call notify observer sync at the time of subscription.
417
+ * Expected to be used only in LogBoxStateSubscription.
418
+ */
419
+ function observeNext(observer: Observer): Subscription {
420
+ const subscription = {observer};
421
+ observers.add(subscription);
422
+
423
+ return {
424
+ unsubscribe(): void {
425
+ observers.delete(subscription);
426
+ },
427
+ };
428
+ }
429
+
415
430
  type LogBoxStateSubscriptionProps = $ReadOnly<{}>;
416
431
  type LogBoxStateSubscriptionState = $ReadOnly<{
417
432
  logs: LogBoxLogs,
@@ -447,12 +462,11 @@ export function withSubscription(
447
462
  }
448
463
 
449
464
  _subscription: ?Subscription;
465
+ _updateStateOnMountTimeoutId: ?TimeoutID;
450
466
 
451
467
  state: LogBoxStateSubscriptionState = {
452
- logs: new Set(),
453
- isDisabled: false,
454
468
  hasError: false,
455
- selectedLogIndex: -1,
469
+ ...getNextState(),
456
470
  };
457
471
 
458
472
  render(): React.Node {
@@ -472,12 +486,25 @@ export function withSubscription(
472
486
  }
473
487
 
474
488
  componentDidMount(): void {
475
- this._subscription = observe(data => {
489
+ this._subscription = observeNext(data => {
476
490
  this.setState(data);
477
491
  });
492
+
493
+ /**
494
+ * This should cover the case when the state changes in between the first render and mount effect.
495
+ * We defer the state update to next task to avoid cascading update.
496
+ */
497
+ this._updateStateOnMountTimeoutId = setTimeout(() => {
498
+ this._updateStateOnMountTimeoutId = null;
499
+ this.setState(getNextState());
500
+ }, 0);
478
501
  }
479
502
 
480
503
  componentWillUnmount(): void {
504
+ if (this._updateStateOnMountTimeoutId != null) {
505
+ clearTimeout(this._updateStateOnMountTimeoutId);
506
+ }
507
+
481
508
  if (this._subscription != null) {
482
509
  this._subscription.unsubscribe();
483
510
  }
@@ -13,21 +13,21 @@
13
13
 
14
14
  #import "RCTAnimationPlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTAnimationClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"NativeAnimatedModule", RCTNativeAnimatedModuleCls},
23
- {"NativeAnimatedTurboModule", RCTNativeAnimatedTurboModuleCls},
24
- };
25
-
26
- auto p = sCoreModuleClassMap->find(name);
27
- if (p != sCoreModuleClassMap->end()) {
28
- auto classFunc = p->second;
29
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTAnimationClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "NativeAnimatedModule"sv) {
24
+ return RCTNativeAnimatedModuleCls();
30
25
  }
26
+
27
+ if (name == "NativeAnimatedTurboModule"sv) {
28
+ return RCTNativeAnimatedTurboModuleCls();
29
+ }
30
+
31
31
  return nil;
32
32
  }
33
33
 
@@ -13,23 +13,29 @@
13
13
 
14
14
  #import "RCTNetworkPlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTNetworkClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"DataRequestHandler", RCTDataRequestHandlerCls},
23
- {"FileRequestHandler", RCTFileRequestHandlerCls},
24
- {"HTTPRequestHandler", RCTHTTPRequestHandlerCls},
25
- {"Networking", RCTNetworkingCls},
26
- };
27
-
28
- auto p = sCoreModuleClassMap->find(name);
29
- if (p != sCoreModuleClassMap->end()) {
30
- auto classFunc = p->second;
31
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTNetworkClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "DataRequestHandler"sv) {
24
+ return RCTDataRequestHandlerCls();
25
+ }
26
+
27
+ if (name == "FileRequestHandler"sv) {
28
+ return RCTFileRequestHandlerCls();
32
29
  }
30
+
31
+ if (name == "HTTPRequestHandler"sv) {
32
+ return RCTHTTPRequestHandlerCls();
33
+ }
34
+
35
+ if (name == "Networking"sv) {
36
+ return RCTNetworkingCls();
37
+ }
38
+
33
39
  return nil;
34
40
  }
35
41
 
@@ -13,20 +13,17 @@
13
13
 
14
14
  #import "RCTPushNotificationPlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTPushNotificationClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"PushNotificationManager", RCTPushNotificationManagerCls},
23
- };
24
-
25
- auto p = sCoreModuleClassMap->find(name);
26
- if (p != sCoreModuleClassMap->end()) {
27
- auto classFunc = p->second;
28
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTPushNotificationClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "PushNotificationManager"sv) {
24
+ return RCTPushNotificationManagerCls();
29
25
  }
26
+
30
27
  return nil;
31
28
  }
32
29
 
@@ -13,20 +13,17 @@
13
13
 
14
14
  #import "RCTSettingsPlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTSettingsClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"SettingsManager", RCTSettingsManagerCls},
23
- };
24
-
25
- auto p = sCoreModuleClassMap->find(name);
26
- if (p != sCoreModuleClassMap->end()) {
27
- auto classFunc = p->second;
28
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTSettingsClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "SettingsManager"sv) {
24
+ return RCTSettingsManagerCls();
29
25
  }
26
+
30
27
  return nil;
31
28
  }
32
29
 
@@ -13,20 +13,17 @@
13
13
 
14
14
  #import "RCTVibrationPlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTVibrationClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"Vibration", RCTVibrationCls},
23
- };
24
-
25
- auto p = sCoreModuleClassMap->find(name);
26
- if (p != sCoreModuleClassMap->end()) {
27
- auto classFunc = p->second;
28
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTVibrationClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "Vibration"sv) {
24
+ return RCTVibrationCls();
29
25
  }
26
+
30
27
  return nil;
31
28
  }
32
29
 
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(84),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"nightly-20251107-f8198f662",
27
+ RCTVersionPrerelease: @"nightly-20251109-b7012ba92",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -13,42 +13,105 @@
13
13
 
14
14
  #import "CoreModulesPlugins.h"
15
15
 
16
- #import <string>
17
- #import <unordered_map>
18
-
19
- Class RCTCoreModulesClassProvider(const char *name) {
20
- // Intentionally leak to avoid crashing after static destructors are run.
21
- static const auto sCoreModuleClassMap = new const std::unordered_map<std::string, Class (*)(void)>{
22
- {"AccessibilityManager", RCTAccessibilityManagerCls},
23
- {"ActionSheetManager", RCTActionSheetManagerCls},
24
- {"AlertManager", RCTAlertManagerCls},
25
- {"AppState", RCTAppStateCls},
26
- {"Appearance", RCTAppearanceCls},
27
- {"Clipboard", RCTClipboardCls},
28
- {"DevLoadingView", RCTDevLoadingViewCls},
29
- {"DevMenu", RCTDevMenuCls},
30
- {"DevSettings", RCTDevSettingsCls},
31
- {"DeviceInfo", RCTDeviceInfoCls},
32
- {"EventDispatcher", RCTEventDispatcherCls},
33
- {"ExceptionsManager", RCTExceptionsManagerCls},
34
- {"I18nManager", RCTI18nManagerCls},
35
- {"KeyboardObserver", RCTKeyboardObserverCls},
36
- {"LogBox", RCTLogBoxCls},
37
- {"PerfMonitor", RCTPerfMonitorCls},
38
- {"PlatformConstants", RCTPlatformCls},
39
- {"RedBox", RCTRedBoxCls},
40
- {"SourceCode", RCTSourceCodeCls},
41
- {"StatusBarManager", RCTStatusBarManagerCls},
42
- {"Timing", RCTTimingCls},
43
- {"WebSocketModule", RCTWebSocketModuleCls},
44
- {"BlobModule", RCTBlobManagerCls},
45
- };
46
-
47
- auto p = sCoreModuleClassMap->find(name);
48
- if (p != sCoreModuleClassMap->end()) {
49
- auto classFunc = p->second;
50
- return classFunc();
16
+ #import <string_view>
17
+
18
+ using namespace std::literals;
19
+
20
+ Class RCTCoreModulesClassProvider(const char *name)
21
+ {
22
+
23
+ if (name == "AccessibilityManager"sv) {
24
+ return RCTAccessibilityManagerCls();
25
+ }
26
+
27
+ if (name == "ActionSheetManager"sv) {
28
+ return RCTActionSheetManagerCls();
29
+ }
30
+
31
+ if (name == "AlertManager"sv) {
32
+ return RCTAlertManagerCls();
33
+ }
34
+
35
+ if (name == "AppState"sv) {
36
+ return RCTAppStateCls();
37
+ }
38
+
39
+ if (name == "Appearance"sv) {
40
+ return RCTAppearanceCls();
41
+ }
42
+
43
+ if (name == "Clipboard"sv) {
44
+ return RCTClipboardCls();
45
+ }
46
+
47
+ if (name == "DevLoadingView"sv) {
48
+ return RCTDevLoadingViewCls();
49
+ }
50
+
51
+ if (name == "DevMenu"sv) {
52
+ return RCTDevMenuCls();
53
+ }
54
+
55
+ if (name == "DevSettings"sv) {
56
+ return RCTDevSettingsCls();
57
+ }
58
+
59
+ if (name == "DeviceInfo"sv) {
60
+ return RCTDeviceInfoCls();
61
+ }
62
+
63
+ if (name == "EventDispatcher"sv) {
64
+ return RCTEventDispatcherCls();
65
+ }
66
+
67
+ if (name == "ExceptionsManager"sv) {
68
+ return RCTExceptionsManagerCls();
69
+ }
70
+
71
+ if (name == "I18nManager"sv) {
72
+ return RCTI18nManagerCls();
73
+ }
74
+
75
+ if (name == "KeyboardObserver"sv) {
76
+ return RCTKeyboardObserverCls();
77
+ }
78
+
79
+ if (name == "LogBox"sv) {
80
+ return RCTLogBoxCls();
81
+ }
82
+
83
+ if (name == "PerfMonitor"sv) {
84
+ return RCTPerfMonitorCls();
85
+ }
86
+
87
+ if (name == "PlatformConstants"sv) {
88
+ return RCTPlatformCls();
89
+ }
90
+
91
+ if (name == "RedBox"sv) {
92
+ return RCTRedBoxCls();
93
+ }
94
+
95
+ if (name == "SourceCode"sv) {
96
+ return RCTSourceCodeCls();
97
+ }
98
+
99
+ if (name == "StatusBarManager"sv) {
100
+ return RCTStatusBarManagerCls();
101
+ }
102
+
103
+ if (name == "Timing"sv) {
104
+ return RCTTimingCls();
105
+ }
106
+
107
+ if (name == "WebSocketModule"sv) {
108
+ return RCTWebSocketModuleCls();
51
109
  }
110
+
111
+ if (name == "BlobModule"sv) {
112
+ return RCTBlobManagerCls();
113
+ }
114
+
52
115
  return nil;
53
116
  }
54
117
 
@@ -230,10 +230,12 @@ protected:
230
230
  methodMap_["cxxNativeAnimatedRemoveJsSync"] = MethodMetadata {.argCount = 0, .invoker = __cxxNativeAnimatedRemoveJsSync};
231
231
  methodMap_["disableEarlyViewCommandExecution"] = MethodMetadata {.argCount = 0, .invoker = __disableEarlyViewCommandExecution};
232
232
  methodMap_["disableFabricCommitInCXXAnimated"] = MethodMetadata {.argCount = 0, .invoker = __disableFabricCommitInCXXAnimated};
233
+ methodMap_["disableImageViewPreallocationAndroid"] = MethodMetadata {.argCount = 0, .invoker = __disableImageViewPreallocationAndroid};
233
234
  methodMap_["disableMountItemReorderingAndroid"] = MethodMetadata {.argCount = 0, .invoker = __disableMountItemReorderingAndroid};
234
235
  methodMap_["disableOldAndroidAttachmentMetricsWorkarounds"] = MethodMetadata {.argCount = 0, .invoker = __disableOldAndroidAttachmentMetricsWorkarounds};
235
236
  methodMap_["disableSubviewClippingAndroid"] = MethodMetadata {.argCount = 0, .invoker = __disableSubviewClippingAndroid};
236
237
  methodMap_["disableTextLayoutManagerCacheAndroid"] = MethodMetadata {.argCount = 0, .invoker = __disableTextLayoutManagerCacheAndroid};
238
+ methodMap_["disableViewPreallocationAndroid"] = MethodMetadata {.argCount = 0, .invoker = __disableViewPreallocationAndroid};
237
239
  methodMap_["enableAccessibilityOrder"] = MethodMetadata {.argCount = 0, .invoker = __enableAccessibilityOrder};
238
240
  methodMap_["enableAccumulatedUpdatesInRawPropsAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableAccumulatedUpdatesInRawPropsAndroid};
239
241
  methodMap_["enableAndroidLinearText"] = MethodMetadata {.argCount = 0, .invoker = __enableAndroidLinearText};
@@ -358,6 +360,13 @@ private:
358
360
  return bridging::callFromJs<bool>(rt, &T::disableFabricCommitInCXXAnimated, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
359
361
  }
360
362
 
363
+ static jsi::Value __disableImageViewPreallocationAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
364
+ static_assert(
365
+ bridging::getParameterCount(&T::disableImageViewPreallocationAndroid) == 1,
366
+ "Expected disableImageViewPreallocationAndroid(...) to have 1 parameters");
367
+ return bridging::callFromJs<bool>(rt, &T::disableImageViewPreallocationAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
368
+ }
369
+
361
370
  static jsi::Value __disableMountItemReorderingAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
362
371
  static_assert(
363
372
  bridging::getParameterCount(&T::disableMountItemReorderingAndroid) == 1,
@@ -386,6 +395,13 @@ private:
386
395
  return bridging::callFromJs<bool>(rt, &T::disableTextLayoutManagerCacheAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
387
396
  }
388
397
 
398
+ static jsi::Value __disableViewPreallocationAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
399
+ static_assert(
400
+ bridging::getParameterCount(&T::disableViewPreallocationAndroid) == 1,
401
+ "Expected disableViewPreallocationAndroid(...) to have 1 parameters");
402
+ return bridging::callFromJs<bool>(rt, &T::disableViewPreallocationAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
403
+ }
404
+
389
405
  static jsi::Value __enableAccessibilityOrder(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
390
406
  static_assert(
391
407
  bridging::getParameterCount(&T::enableAccessibilityOrder) == 1,
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.84.0-nightly-20251107-f8198f662
1
+ VERSION_NAME=0.84.0-nightly-20251109-b7012ba92
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
  react.internal.hermesPublishingGroup=com.facebook.hermes
4
4
 
@@ -1485,7 +1485,7 @@ public class FabricUIManager
1485
1485
  mBinding.driveCxxAnimations();
1486
1486
  }
1487
1487
 
1488
- if (mBinding != null) {
1488
+ if (!ReactNativeFeatureFlags.disableViewPreallocationAndroid() && mBinding != null) {
1489
1489
  mBinding.drainPreallocateViewsQueue();
1490
1490
  }
1491
1491
 
@@ -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<<9646ebeba75ec903be5ade7e2333f0c8>>
7
+ * @generated SignedSource<<01feab16132bc07b79b359178e322327>>
8
8
  */
9
9
 
10
10
  /**
@@ -66,6 +66,12 @@ public object ReactNativeFeatureFlags {
66
66
  @JvmStatic
67
67
  public fun disableFabricCommitInCXXAnimated(): Boolean = accessor.disableFabricCommitInCXXAnimated()
68
68
 
69
+ /**
70
+ * Force disable view preallocation for images triggered from createNode off the main thread on Android
71
+ */
72
+ @JvmStatic
73
+ public fun disableImageViewPreallocationAndroid(): Boolean = accessor.disableImageViewPreallocationAndroid()
74
+
69
75
  /**
70
76
  * Prevent FabricMountingManager from reordering mountItems, which may lead to invalid state on the UI thread
71
77
  */
@@ -90,6 +96,12 @@ public object ReactNativeFeatureFlags {
90
96
  @JvmStatic
91
97
  public fun disableTextLayoutManagerCacheAndroid(): Boolean = accessor.disableTextLayoutManagerCacheAndroid()
92
98
 
99
+ /**
100
+ * Force disable view preallocation triggered from createNode off the main thread on Android
101
+ */
102
+ @JvmStatic
103
+ public fun disableViewPreallocationAndroid(): Boolean = accessor.disableViewPreallocationAndroid()
104
+
93
105
  /**
94
106
  * When enabled, the accessibilityOrder prop will propagate to native platforms and define the accessibility order.
95
107
  */