react-native 0.76.5 → 0.76.7

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 (53) hide show
  1. package/Libraries/AppDelegate/RCTAppDelegate.mm +0 -5
  2. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +3 -1
  3. package/Libraries/AppDelegate/RCTRootViewFactory.mm +2 -3
  4. package/Libraries/Core/ReactNativeVersion.js +1 -1
  5. package/Libraries/Image/RCTImageLoader.mm +9 -1
  6. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +1 -1
  7. package/Libraries/Utilities/Appearance.js +3 -1
  8. package/React/Base/RCTVersion.m +1 -1
  9. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +2 -5
  10. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +4 -0
  11. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -9
  12. package/ReactAndroid/api/ReactAndroid.api +2 -0
  13. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +18 -3
  14. package/ReactAndroid/gradle.properties +1 -1
  15. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +15 -8
  16. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +1 -7
  17. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +1 -11
  18. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +1 -3
  19. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +1 -3
  20. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +1 -12
  21. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +1 -3
  22. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  23. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +16 -2
  24. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +1 -0
  25. package/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +17 -19
  26. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +1 -15
  27. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +1 -4
  28. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  29. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +1 -5
  30. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +1 -6
  31. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +47 -65
  32. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +2 -4
  33. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +1 -5
  34. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +1 -2
  35. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +9 -0
  36. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +1 -6
  37. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +1 -3
  38. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +5 -0
  39. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  40. package/ReactCommon/react/renderer/attributedstring/conversions.h +5 -0
  41. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +12 -0
  42. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
  43. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +7 -3
  44. package/gradle/libs.versions.toml +1 -1
  45. package/package.json +8 -8
  46. package/scripts/cocoapods/utils.rb +6 -6
  47. package/scripts/codegen/generate-artifacts-executor.js +6 -6
  48. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  49. package/sdks/hermesc/osx-bin/hermes +0 -0
  50. package/sdks/hermesc/osx-bin/hermesc +0 -0
  51. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  52. package/src/private/featureflags/ReactNativeFeatureFlags.js +1 -6
  53. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +1 -2
@@ -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<<dadda9bba46220975852baddb41e7dc9>>
7
+ * @generated SignedSource<<4e9b371598ef4fbec6b6b9b826c5d193>>
8
8
  */
9
9
 
10
10
  /**
@@ -47,24 +47,6 @@ bool ReactNativeFeatureFlagsAccessor::commonTestFlag() {
47
47
  return flagValue.value();
48
48
  }
49
49
 
50
- bool ReactNativeFeatureFlagsAccessor::allowRecursiveCommitsWithSynchronousMountOnAndroid() {
51
- auto flagValue = allowRecursiveCommitsWithSynchronousMountOnAndroid_.load();
52
-
53
- if (!flagValue.has_value()) {
54
- // This block is not exclusive but it is not necessary.
55
- // If multiple threads try to initialize the feature flag, we would only
56
- // be accessing the provider multiple times but the end state of this
57
- // instance and the returned flag value would be the same.
58
-
59
- markFlagAsAccessed(1, "allowRecursiveCommitsWithSynchronousMountOnAndroid");
60
-
61
- flagValue = currentProvider_->allowRecursiveCommitsWithSynchronousMountOnAndroid();
62
- allowRecursiveCommitsWithSynchronousMountOnAndroid_ = flagValue;
63
- }
64
-
65
- return flagValue.value();
66
- }
67
-
68
50
  bool ReactNativeFeatureFlagsAccessor::batchRenderingUpdatesInEventLoop() {
69
51
  auto flagValue = batchRenderingUpdatesInEventLoop_.load();
70
52
 
@@ -74,7 +56,7 @@ bool ReactNativeFeatureFlagsAccessor::batchRenderingUpdatesInEventLoop() {
74
56
  // be accessing the provider multiple times but the end state of this
75
57
  // instance and the returned flag value would be the same.
76
58
 
77
- markFlagAsAccessed(2, "batchRenderingUpdatesInEventLoop");
59
+ markFlagAsAccessed(1, "batchRenderingUpdatesInEventLoop");
78
60
 
79
61
  flagValue = currentProvider_->batchRenderingUpdatesInEventLoop();
80
62
  batchRenderingUpdatesInEventLoop_ = flagValue;
@@ -92,7 +74,7 @@ bool ReactNativeFeatureFlagsAccessor::completeReactInstanceCreationOnBgThreadOnA
92
74
  // be accessing the provider multiple times but the end state of this
93
75
  // instance and the returned flag value would be the same.
94
76
 
95
- markFlagAsAccessed(3, "completeReactInstanceCreationOnBgThreadOnAndroid");
77
+ markFlagAsAccessed(2, "completeReactInstanceCreationOnBgThreadOnAndroid");
96
78
 
97
79
  flagValue = currentProvider_->completeReactInstanceCreationOnBgThreadOnAndroid();
98
80
  completeReactInstanceCreationOnBgThreadOnAndroid_ = flagValue;
@@ -110,7 +92,7 @@ bool ReactNativeFeatureFlagsAccessor::destroyFabricSurfacesInReactInstanceManage
110
92
  // be accessing the provider multiple times but the end state of this
111
93
  // instance and the returned flag value would be the same.
112
94
 
113
- markFlagAsAccessed(4, "destroyFabricSurfacesInReactInstanceManager");
95
+ markFlagAsAccessed(3, "destroyFabricSurfacesInReactInstanceManager");
114
96
 
115
97
  flagValue = currentProvider_->destroyFabricSurfacesInReactInstanceManager();
116
98
  destroyFabricSurfacesInReactInstanceManager_ = flagValue;
@@ -128,7 +110,7 @@ bool ReactNativeFeatureFlagsAccessor::enableAlignItemsBaselineOnFabricIOS() {
128
110
  // be accessing the provider multiple times but the end state of this
129
111
  // instance and the returned flag value would be the same.
130
112
 
131
- markFlagAsAccessed(5, "enableAlignItemsBaselineOnFabricIOS");
113
+ markFlagAsAccessed(4, "enableAlignItemsBaselineOnFabricIOS");
132
114
 
133
115
  flagValue = currentProvider_->enableAlignItemsBaselineOnFabricIOS();
134
116
  enableAlignItemsBaselineOnFabricIOS_ = flagValue;
@@ -146,7 +128,7 @@ bool ReactNativeFeatureFlagsAccessor::enableAndroidMixBlendModeProp() {
146
128
  // be accessing the provider multiple times but the end state of this
147
129
  // instance and the returned flag value would be the same.
148
130
 
149
- markFlagAsAccessed(6, "enableAndroidMixBlendModeProp");
131
+ markFlagAsAccessed(5, "enableAndroidMixBlendModeProp");
150
132
 
151
133
  flagValue = currentProvider_->enableAndroidMixBlendModeProp();
152
134
  enableAndroidMixBlendModeProp_ = flagValue;
@@ -164,7 +146,7 @@ bool ReactNativeFeatureFlagsAccessor::enableBackgroundStyleApplicator() {
164
146
  // be accessing the provider multiple times but the end state of this
165
147
  // instance and the returned flag value would be the same.
166
148
 
167
- markFlagAsAccessed(7, "enableBackgroundStyleApplicator");
149
+ markFlagAsAccessed(6, "enableBackgroundStyleApplicator");
168
150
 
169
151
  flagValue = currentProvider_->enableBackgroundStyleApplicator();
170
152
  enableBackgroundStyleApplicator_ = flagValue;
@@ -182,7 +164,7 @@ bool ReactNativeFeatureFlagsAccessor::enableCleanTextInputYogaNode() {
182
164
  // be accessing the provider multiple times but the end state of this
183
165
  // instance and the returned flag value would be the same.
184
166
 
185
- markFlagAsAccessed(8, "enableCleanTextInputYogaNode");
167
+ markFlagAsAccessed(7, "enableCleanTextInputYogaNode");
186
168
 
187
169
  flagValue = currentProvider_->enableCleanTextInputYogaNode();
188
170
  enableCleanTextInputYogaNode_ = flagValue;
@@ -200,7 +182,7 @@ bool ReactNativeFeatureFlagsAccessor::enableEagerRootViewAttachment() {
200
182
  // be accessing the provider multiple times but the end state of this
201
183
  // instance and the returned flag value would be the same.
202
184
 
203
- markFlagAsAccessed(9, "enableEagerRootViewAttachment");
185
+ markFlagAsAccessed(8, "enableEagerRootViewAttachment");
204
186
 
205
187
  flagValue = currentProvider_->enableEagerRootViewAttachment();
206
188
  enableEagerRootViewAttachment_ = flagValue;
@@ -218,7 +200,7 @@ bool ReactNativeFeatureFlagsAccessor::enableEventEmitterRetentionDuringGesturesO
218
200
  // be accessing the provider multiple times but the end state of this
219
201
  // instance and the returned flag value would be the same.
220
202
 
221
- markFlagAsAccessed(10, "enableEventEmitterRetentionDuringGesturesOnAndroid");
203
+ markFlagAsAccessed(9, "enableEventEmitterRetentionDuringGesturesOnAndroid");
222
204
 
223
205
  flagValue = currentProvider_->enableEventEmitterRetentionDuringGesturesOnAndroid();
224
206
  enableEventEmitterRetentionDuringGesturesOnAndroid_ = flagValue;
@@ -236,7 +218,7 @@ bool ReactNativeFeatureFlagsAccessor::enableFabricLogs() {
236
218
  // be accessing the provider multiple times but the end state of this
237
219
  // instance and the returned flag value would be the same.
238
220
 
239
- markFlagAsAccessed(11, "enableFabricLogs");
221
+ markFlagAsAccessed(10, "enableFabricLogs");
240
222
 
241
223
  flagValue = currentProvider_->enableFabricLogs();
242
224
  enableFabricLogs_ = flagValue;
@@ -254,7 +236,7 @@ bool ReactNativeFeatureFlagsAccessor::enableFabricRendererExclusively() {
254
236
  // be accessing the provider multiple times but the end state of this
255
237
  // instance and the returned flag value would be the same.
256
238
 
257
- markFlagAsAccessed(12, "enableFabricRendererExclusively");
239
+ markFlagAsAccessed(11, "enableFabricRendererExclusively");
258
240
 
259
241
  flagValue = currentProvider_->enableFabricRendererExclusively();
260
242
  enableFabricRendererExclusively_ = flagValue;
@@ -272,7 +254,7 @@ bool ReactNativeFeatureFlagsAccessor::enableGranularShadowTreeStateReconciliatio
272
254
  // be accessing the provider multiple times but the end state of this
273
255
  // instance and the returned flag value would be the same.
274
256
 
275
- markFlagAsAccessed(13, "enableGranularShadowTreeStateReconciliation");
257
+ markFlagAsAccessed(12, "enableGranularShadowTreeStateReconciliation");
276
258
 
277
259
  flagValue = currentProvider_->enableGranularShadowTreeStateReconciliation();
278
260
  enableGranularShadowTreeStateReconciliation_ = flagValue;
@@ -290,7 +272,7 @@ bool ReactNativeFeatureFlagsAccessor::enableIOSViewClipToPaddingBox() {
290
272
  // be accessing the provider multiple times but the end state of this
291
273
  // instance and the returned flag value would be the same.
292
274
 
293
- markFlagAsAccessed(14, "enableIOSViewClipToPaddingBox");
275
+ markFlagAsAccessed(13, "enableIOSViewClipToPaddingBox");
294
276
 
295
277
  flagValue = currentProvider_->enableIOSViewClipToPaddingBox();
296
278
  enableIOSViewClipToPaddingBox_ = flagValue;
@@ -308,7 +290,7 @@ bool ReactNativeFeatureFlagsAccessor::enableLayoutAnimationsOnIOS() {
308
290
  // be accessing the provider multiple times but the end state of this
309
291
  // instance and the returned flag value would be the same.
310
292
 
311
- markFlagAsAccessed(15, "enableLayoutAnimationsOnIOS");
293
+ markFlagAsAccessed(14, "enableLayoutAnimationsOnIOS");
312
294
 
313
295
  flagValue = currentProvider_->enableLayoutAnimationsOnIOS();
314
296
  enableLayoutAnimationsOnIOS_ = flagValue;
@@ -326,7 +308,7 @@ bool ReactNativeFeatureFlagsAccessor::enableLongTaskAPI() {
326
308
  // be accessing the provider multiple times but the end state of this
327
309
  // instance and the returned flag value would be the same.
328
310
 
329
- markFlagAsAccessed(16, "enableLongTaskAPI");
311
+ markFlagAsAccessed(15, "enableLongTaskAPI");
330
312
 
331
313
  flagValue = currentProvider_->enableLongTaskAPI();
332
314
  enableLongTaskAPI_ = flagValue;
@@ -344,7 +326,7 @@ bool ReactNativeFeatureFlagsAccessor::enableMicrotasks() {
344
326
  // be accessing the provider multiple times but the end state of this
345
327
  // instance and the returned flag value would be the same.
346
328
 
347
- markFlagAsAccessed(17, "enableMicrotasks");
329
+ markFlagAsAccessed(16, "enableMicrotasks");
348
330
 
349
331
  flagValue = currentProvider_->enableMicrotasks();
350
332
  enableMicrotasks_ = flagValue;
@@ -362,7 +344,7 @@ bool ReactNativeFeatureFlagsAccessor::enablePropsUpdateReconciliationAndroid() {
362
344
  // be accessing the provider multiple times but the end state of this
363
345
  // instance and the returned flag value would be the same.
364
346
 
365
- markFlagAsAccessed(18, "enablePropsUpdateReconciliationAndroid");
347
+ markFlagAsAccessed(17, "enablePropsUpdateReconciliationAndroid");
366
348
 
367
349
  flagValue = currentProvider_->enablePropsUpdateReconciliationAndroid();
368
350
  enablePropsUpdateReconciliationAndroid_ = flagValue;
@@ -380,7 +362,7 @@ bool ReactNativeFeatureFlagsAccessor::enableReportEventPaintTime() {
380
362
  // be accessing the provider multiple times but the end state of this
381
363
  // instance and the returned flag value would be the same.
382
364
 
383
- markFlagAsAccessed(19, "enableReportEventPaintTime");
365
+ markFlagAsAccessed(18, "enableReportEventPaintTime");
384
366
 
385
367
  flagValue = currentProvider_->enableReportEventPaintTime();
386
368
  enableReportEventPaintTime_ = flagValue;
@@ -398,7 +380,7 @@ bool ReactNativeFeatureFlagsAccessor::enableSynchronousStateUpdates() {
398
380
  // be accessing the provider multiple times but the end state of this
399
381
  // instance and the returned flag value would be the same.
400
382
 
401
- markFlagAsAccessed(20, "enableSynchronousStateUpdates");
383
+ markFlagAsAccessed(19, "enableSynchronousStateUpdates");
402
384
 
403
385
  flagValue = currentProvider_->enableSynchronousStateUpdates();
404
386
  enableSynchronousStateUpdates_ = flagValue;
@@ -416,7 +398,7 @@ bool ReactNativeFeatureFlagsAccessor::enableUIConsistency() {
416
398
  // be accessing the provider multiple times but the end state of this
417
399
  // instance and the returned flag value would be the same.
418
400
 
419
- markFlagAsAccessed(21, "enableUIConsistency");
401
+ markFlagAsAccessed(20, "enableUIConsistency");
420
402
 
421
403
  flagValue = currentProvider_->enableUIConsistency();
422
404
  enableUIConsistency_ = flagValue;
@@ -434,7 +416,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecycling() {
434
416
  // be accessing the provider multiple times but the end state of this
435
417
  // instance and the returned flag value would be the same.
436
418
 
437
- markFlagAsAccessed(22, "enableViewRecycling");
419
+ markFlagAsAccessed(21, "enableViewRecycling");
438
420
 
439
421
  flagValue = currentProvider_->enableViewRecycling();
440
422
  enableViewRecycling_ = flagValue;
@@ -452,7 +434,7 @@ bool ReactNativeFeatureFlagsAccessor::excludeYogaFromRawProps() {
452
434
  // be accessing the provider multiple times but the end state of this
453
435
  // instance and the returned flag value would be the same.
454
436
 
455
- markFlagAsAccessed(23, "excludeYogaFromRawProps");
437
+ markFlagAsAccessed(22, "excludeYogaFromRawProps");
456
438
 
457
439
  flagValue = currentProvider_->excludeYogaFromRawProps();
458
440
  excludeYogaFromRawProps_ = flagValue;
@@ -470,7 +452,7 @@ bool ReactNativeFeatureFlagsAccessor::fetchImagesInViewPreallocation() {
470
452
  // be accessing the provider multiple times but the end state of this
471
453
  // instance and the returned flag value would be the same.
472
454
 
473
- markFlagAsAccessed(24, "fetchImagesInViewPreallocation");
455
+ markFlagAsAccessed(23, "fetchImagesInViewPreallocation");
474
456
 
475
457
  flagValue = currentProvider_->fetchImagesInViewPreallocation();
476
458
  fetchImagesInViewPreallocation_ = flagValue;
@@ -488,7 +470,7 @@ bool ReactNativeFeatureFlagsAccessor::fixIncorrectScrollViewStateUpdateOnAndroid
488
470
  // be accessing the provider multiple times but the end state of this
489
471
  // instance and the returned flag value would be the same.
490
472
 
491
- markFlagAsAccessed(25, "fixIncorrectScrollViewStateUpdateOnAndroid");
473
+ markFlagAsAccessed(24, "fixIncorrectScrollViewStateUpdateOnAndroid");
492
474
 
493
475
  flagValue = currentProvider_->fixIncorrectScrollViewStateUpdateOnAndroid();
494
476
  fixIncorrectScrollViewStateUpdateOnAndroid_ = flagValue;
@@ -506,7 +488,7 @@ bool ReactNativeFeatureFlagsAccessor::fixMappingOfEventPrioritiesBetweenFabricAn
506
488
  // be accessing the provider multiple times but the end state of this
507
489
  // instance and the returned flag value would be the same.
508
490
 
509
- markFlagAsAccessed(26, "fixMappingOfEventPrioritiesBetweenFabricAndReact");
491
+ markFlagAsAccessed(25, "fixMappingOfEventPrioritiesBetweenFabricAndReact");
510
492
 
511
493
  flagValue = currentProvider_->fixMappingOfEventPrioritiesBetweenFabricAndReact();
512
494
  fixMappingOfEventPrioritiesBetweenFabricAndReact_ = flagValue;
@@ -524,7 +506,7 @@ bool ReactNativeFeatureFlagsAccessor::fixMissedFabricStateUpdatesOnAndroid() {
524
506
  // be accessing the provider multiple times but the end state of this
525
507
  // instance and the returned flag value would be the same.
526
508
 
527
- markFlagAsAccessed(27, "fixMissedFabricStateUpdatesOnAndroid");
509
+ markFlagAsAccessed(26, "fixMissedFabricStateUpdatesOnAndroid");
528
510
 
529
511
  flagValue = currentProvider_->fixMissedFabricStateUpdatesOnAndroid();
530
512
  fixMissedFabricStateUpdatesOnAndroid_ = flagValue;
@@ -542,7 +524,7 @@ bool ReactNativeFeatureFlagsAccessor::fixMountingCoordinatorReportedPendingTrans
542
524
  // be accessing the provider multiple times but the end state of this
543
525
  // instance and the returned flag value would be the same.
544
526
 
545
- markFlagAsAccessed(28, "fixMountingCoordinatorReportedPendingTransactionsOnAndroid");
527
+ markFlagAsAccessed(27, "fixMountingCoordinatorReportedPendingTransactionsOnAndroid");
546
528
 
547
529
  flagValue = currentProvider_->fixMountingCoordinatorReportedPendingTransactionsOnAndroid();
548
530
  fixMountingCoordinatorReportedPendingTransactionsOnAndroid_ = flagValue;
@@ -560,7 +542,7 @@ bool ReactNativeFeatureFlagsAccessor::forceBatchingMountItemsOnAndroid() {
560
542
  // be accessing the provider multiple times but the end state of this
561
543
  // instance and the returned flag value would be the same.
562
544
 
563
- markFlagAsAccessed(29, "forceBatchingMountItemsOnAndroid");
545
+ markFlagAsAccessed(28, "forceBatchingMountItemsOnAndroid");
564
546
 
565
547
  flagValue = currentProvider_->forceBatchingMountItemsOnAndroid();
566
548
  forceBatchingMountItemsOnAndroid_ = flagValue;
@@ -578,7 +560,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledDebug() {
578
560
  // be accessing the provider multiple times but the end state of this
579
561
  // instance and the returned flag value would be the same.
580
562
 
581
- markFlagAsAccessed(30, "fuseboxEnabledDebug");
563
+ markFlagAsAccessed(29, "fuseboxEnabledDebug");
582
564
 
583
565
  flagValue = currentProvider_->fuseboxEnabledDebug();
584
566
  fuseboxEnabledDebug_ = flagValue;
@@ -596,7 +578,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledRelease() {
596
578
  // be accessing the provider multiple times but the end state of this
597
579
  // instance and the returned flag value would be the same.
598
580
 
599
- markFlagAsAccessed(31, "fuseboxEnabledRelease");
581
+ markFlagAsAccessed(30, "fuseboxEnabledRelease");
600
582
 
601
583
  flagValue = currentProvider_->fuseboxEnabledRelease();
602
584
  fuseboxEnabledRelease_ = flagValue;
@@ -614,7 +596,7 @@ bool ReactNativeFeatureFlagsAccessor::initEagerTurboModulesOnNativeModulesQueueA
614
596
  // be accessing the provider multiple times but the end state of this
615
597
  // instance and the returned flag value would be the same.
616
598
 
617
- markFlagAsAccessed(32, "initEagerTurboModulesOnNativeModulesQueueAndroid");
599
+ markFlagAsAccessed(31, "initEagerTurboModulesOnNativeModulesQueueAndroid");
618
600
 
619
601
  flagValue = currentProvider_->initEagerTurboModulesOnNativeModulesQueueAndroid();
620
602
  initEagerTurboModulesOnNativeModulesQueueAndroid_ = flagValue;
@@ -632,7 +614,7 @@ bool ReactNativeFeatureFlagsAccessor::lazyAnimationCallbacks() {
632
614
  // be accessing the provider multiple times but the end state of this
633
615
  // instance and the returned flag value would be the same.
634
616
 
635
- markFlagAsAccessed(33, "lazyAnimationCallbacks");
617
+ markFlagAsAccessed(32, "lazyAnimationCallbacks");
636
618
 
637
619
  flagValue = currentProvider_->lazyAnimationCallbacks();
638
620
  lazyAnimationCallbacks_ = flagValue;
@@ -650,7 +632,7 @@ bool ReactNativeFeatureFlagsAccessor::loadVectorDrawablesOnImages() {
650
632
  // be accessing the provider multiple times but the end state of this
651
633
  // instance and the returned flag value would be the same.
652
634
 
653
- markFlagAsAccessed(34, "loadVectorDrawablesOnImages");
635
+ markFlagAsAccessed(33, "loadVectorDrawablesOnImages");
654
636
 
655
637
  flagValue = currentProvider_->loadVectorDrawablesOnImages();
656
638
  loadVectorDrawablesOnImages_ = flagValue;
@@ -668,7 +650,7 @@ bool ReactNativeFeatureFlagsAccessor::setAndroidLayoutDirection() {
668
650
  // be accessing the provider multiple times but the end state of this
669
651
  // instance and the returned flag value would be the same.
670
652
 
671
- markFlagAsAccessed(35, "setAndroidLayoutDirection");
653
+ markFlagAsAccessed(34, "setAndroidLayoutDirection");
672
654
 
673
655
  flagValue = currentProvider_->setAndroidLayoutDirection();
674
656
  setAndroidLayoutDirection_ = flagValue;
@@ -686,7 +668,7 @@ bool ReactNativeFeatureFlagsAccessor::traceTurboModulePromiseRejectionsOnAndroid
686
668
  // be accessing the provider multiple times but the end state of this
687
669
  // instance and the returned flag value would be the same.
688
670
 
689
- markFlagAsAccessed(36, "traceTurboModulePromiseRejectionsOnAndroid");
671
+ markFlagAsAccessed(35, "traceTurboModulePromiseRejectionsOnAndroid");
690
672
 
691
673
  flagValue = currentProvider_->traceTurboModulePromiseRejectionsOnAndroid();
692
674
  traceTurboModulePromiseRejectionsOnAndroid_ = flagValue;
@@ -704,7 +686,7 @@ bool ReactNativeFeatureFlagsAccessor::useFabricInterop() {
704
686
  // be accessing the provider multiple times but the end state of this
705
687
  // instance and the returned flag value would be the same.
706
688
 
707
- markFlagAsAccessed(37, "useFabricInterop");
689
+ markFlagAsAccessed(36, "useFabricInterop");
708
690
 
709
691
  flagValue = currentProvider_->useFabricInterop();
710
692
  useFabricInterop_ = flagValue;
@@ -722,7 +704,7 @@ bool ReactNativeFeatureFlagsAccessor::useImmediateExecutorInAndroidBridgeless()
722
704
  // be accessing the provider multiple times but the end state of this
723
705
  // instance and the returned flag value would be the same.
724
706
 
725
- markFlagAsAccessed(38, "useImmediateExecutorInAndroidBridgeless");
707
+ markFlagAsAccessed(37, "useImmediateExecutorInAndroidBridgeless");
726
708
 
727
709
  flagValue = currentProvider_->useImmediateExecutorInAndroidBridgeless();
728
710
  useImmediateExecutorInAndroidBridgeless_ = flagValue;
@@ -740,7 +722,7 @@ bool ReactNativeFeatureFlagsAccessor::useModernRuntimeScheduler() {
740
722
  // be accessing the provider multiple times but the end state of this
741
723
  // instance and the returned flag value would be the same.
742
724
 
743
- markFlagAsAccessed(39, "useModernRuntimeScheduler");
725
+ markFlagAsAccessed(38, "useModernRuntimeScheduler");
744
726
 
745
727
  flagValue = currentProvider_->useModernRuntimeScheduler();
746
728
  useModernRuntimeScheduler_ = flagValue;
@@ -758,7 +740,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
758
740
  // be accessing the provider multiple times but the end state of this
759
741
  // instance and the returned flag value would be the same.
760
742
 
761
- markFlagAsAccessed(40, "useNativeViewConfigsInBridgelessMode");
743
+ markFlagAsAccessed(39, "useNativeViewConfigsInBridgelessMode");
762
744
 
763
745
  flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
764
746
  useNativeViewConfigsInBridgelessMode_ = flagValue;
@@ -776,7 +758,7 @@ bool ReactNativeFeatureFlagsAccessor::useNewReactImageViewBackgroundDrawing() {
776
758
  // be accessing the provider multiple times but the end state of this
777
759
  // instance and the returned flag value would be the same.
778
760
 
779
- markFlagAsAccessed(41, "useNewReactImageViewBackgroundDrawing");
761
+ markFlagAsAccessed(40, "useNewReactImageViewBackgroundDrawing");
780
762
 
781
763
  flagValue = currentProvider_->useNewReactImageViewBackgroundDrawing();
782
764
  useNewReactImageViewBackgroundDrawing_ = flagValue;
@@ -794,7 +776,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimisedViewPreallocationOnAndroid() {
794
776
  // be accessing the provider multiple times but the end state of this
795
777
  // instance and the returned flag value would be the same.
796
778
 
797
- markFlagAsAccessed(42, "useOptimisedViewPreallocationOnAndroid");
779
+ markFlagAsAccessed(41, "useOptimisedViewPreallocationOnAndroid");
798
780
 
799
781
  flagValue = currentProvider_->useOptimisedViewPreallocationOnAndroid();
800
782
  useOptimisedViewPreallocationOnAndroid_ = flagValue;
@@ -812,7 +794,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimizedEventBatchingOnAndroid() {
812
794
  // be accessing the provider multiple times but the end state of this
813
795
  // instance and the returned flag value would be the same.
814
796
 
815
- markFlagAsAccessed(43, "useOptimizedEventBatchingOnAndroid");
797
+ markFlagAsAccessed(42, "useOptimizedEventBatchingOnAndroid");
816
798
 
817
799
  flagValue = currentProvider_->useOptimizedEventBatchingOnAndroid();
818
800
  useOptimizedEventBatchingOnAndroid_ = flagValue;
@@ -830,7 +812,7 @@ bool ReactNativeFeatureFlagsAccessor::useRuntimeShadowNodeReferenceUpdate() {
830
812
  // be accessing the provider multiple times but the end state of this
831
813
  // instance and the returned flag value would be the same.
832
814
 
833
- markFlagAsAccessed(44, "useRuntimeShadowNodeReferenceUpdate");
815
+ markFlagAsAccessed(43, "useRuntimeShadowNodeReferenceUpdate");
834
816
 
835
817
  flagValue = currentProvider_->useRuntimeShadowNodeReferenceUpdate();
836
818
  useRuntimeShadowNodeReferenceUpdate_ = flagValue;
@@ -848,7 +830,7 @@ bool ReactNativeFeatureFlagsAccessor::useRuntimeShadowNodeReferenceUpdateOnLayou
848
830
  // be accessing the provider multiple times but the end state of this
849
831
  // instance and the returned flag value would be the same.
850
832
 
851
- markFlagAsAccessed(45, "useRuntimeShadowNodeReferenceUpdateOnLayout");
833
+ markFlagAsAccessed(44, "useRuntimeShadowNodeReferenceUpdateOnLayout");
852
834
 
853
835
  flagValue = currentProvider_->useRuntimeShadowNodeReferenceUpdateOnLayout();
854
836
  useRuntimeShadowNodeReferenceUpdateOnLayout_ = flagValue;
@@ -866,7 +848,7 @@ bool ReactNativeFeatureFlagsAccessor::useStateAlignmentMechanism() {
866
848
  // be accessing the provider multiple times but the end state of this
867
849
  // instance and the returned flag value would be the same.
868
850
 
869
- markFlagAsAccessed(46, "useStateAlignmentMechanism");
851
+ markFlagAsAccessed(45, "useStateAlignmentMechanism");
870
852
 
871
853
  flagValue = currentProvider_->useStateAlignmentMechanism();
872
854
  useStateAlignmentMechanism_ = flagValue;
@@ -884,7 +866,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModuleInterop() {
884
866
  // be accessing the provider multiple times but the end state of this
885
867
  // instance and the returned flag value would be the same.
886
868
 
887
- markFlagAsAccessed(47, "useTurboModuleInterop");
869
+ markFlagAsAccessed(46, "useTurboModuleInterop");
888
870
 
889
871
  flagValue = currentProvider_->useTurboModuleInterop();
890
872
  useTurboModuleInterop_ = 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<<ef12745c7462250933c3198115418393>>
7
+ * @generated SignedSource<<816cbee0a21bc7e03d3d645df4d80556>>
8
8
  */
9
9
 
10
10
  /**
@@ -32,7 +32,6 @@ class ReactNativeFeatureFlagsAccessor {
32
32
  ReactNativeFeatureFlagsAccessor();
33
33
 
34
34
  bool commonTestFlag();
35
- bool allowRecursiveCommitsWithSynchronousMountOnAndroid();
36
35
  bool batchRenderingUpdatesInEventLoop();
37
36
  bool completeReactInstanceCreationOnBgThreadOnAndroid();
38
37
  bool destroyFabricSurfacesInReactInstanceManager();
@@ -89,10 +88,9 @@ class ReactNativeFeatureFlagsAccessor {
89
88
  std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
90
89
  bool wasOverridden_;
91
90
 
92
- std::array<std::atomic<const char*>, 48> accessedFeatureFlags_;
91
+ std::array<std::atomic<const char*>, 47> accessedFeatureFlags_;
93
92
 
94
93
  std::atomic<std::optional<bool>> commonTestFlag_;
95
- std::atomic<std::optional<bool>> allowRecursiveCommitsWithSynchronousMountOnAndroid_;
96
94
  std::atomic<std::optional<bool>> batchRenderingUpdatesInEventLoop_;
97
95
  std::atomic<std::optional<bool>> completeReactInstanceCreationOnBgThreadOnAndroid_;
98
96
  std::atomic<std::optional<bool>> destroyFabricSurfacesInReactInstanceManager_;
@@ -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<<2a078848517574213e02b42dff1af8e8>>
7
+ * @generated SignedSource<<62afdf0b4dfbdafe08aec3e74ebd6fd4>>
8
8
  */
9
9
 
10
10
  /**
@@ -31,10 +31,6 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
31
31
  return false;
32
32
  }
33
33
 
34
- bool allowRecursiveCommitsWithSynchronousMountOnAndroid() override {
35
- return false;
36
- }
37
-
38
34
  bool batchRenderingUpdatesInEventLoop() override {
39
35
  return false;
40
36
  }
@@ -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<<4adf3f21c8c7e370aa59bc79937e91a2>>
7
+ * @generated SignedSource<<5e7551f6a29374319a2914c4aa22294e>>
8
8
  */
9
9
 
10
10
  /**
@@ -26,7 +26,6 @@ class ReactNativeFeatureFlagsProvider {
26
26
  virtual ~ReactNativeFeatureFlagsProvider() = default;
27
27
 
28
28
  virtual bool commonTestFlag() = 0;
29
- virtual bool allowRecursiveCommitsWithSynchronousMountOnAndroid() = 0;
30
29
  virtual bool batchRenderingUpdatesInEventLoop() = 0;
31
30
  virtual bool completeReactInstanceCreationOnBgThreadOnAndroid() = 0;
32
31
  virtual bool destroyFabricSurfacesInReactInstanceManager() = 0;
@@ -123,6 +123,15 @@ std::vector<ExportedMethod> parseExportedMethods(std::string moduleName, Class m
123
123
  NSArray<RCTMethodArgument *> *arguments;
124
124
  SEL objCMethodSelector = NSSelectorFromString(RCTParseMethodSignature(methodInfo->objcName, &arguments));
125
125
  NSMethodSignature *objCMethodSignature = [moduleClass instanceMethodSignatureForSelector:objCMethodSelector];
126
+ if (objCMethodSignature == nullptr) {
127
+ RCTLogWarn(
128
+ @"The objective-c `%s` method signature for the JS method `%@` can not be found in the ObjecitveC definition of the %s module.\nThe `%@` JS method will not be available.",
129
+ methodInfo->objcName,
130
+ jsMethodName,
131
+ moduleName.c_str(),
132
+ jsMethodName);
133
+ continue;
134
+ }
126
135
  std::string objCMethodReturnType = [objCMethodSignature methodReturnType];
127
136
 
128
137
  if (objCMethodSignature.numberOfArguments - 2 != [arguments count]) {
@@ -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<<1307630df6aff0acdb4f587465785a09>>
7
+ * @generated SignedSource<<d53862215473a927ef36df654af8f74e>>
8
8
  */
9
9
 
10
10
  /**
@@ -42,11 +42,6 @@ bool NativeReactNativeFeatureFlags::commonTestFlag(
42
42
  return ReactNativeFeatureFlags::commonTestFlag();
43
43
  }
44
44
 
45
- bool NativeReactNativeFeatureFlags::allowRecursiveCommitsWithSynchronousMountOnAndroid(
46
- jsi::Runtime& /*runtime*/) {
47
- return ReactNativeFeatureFlags::allowRecursiveCommitsWithSynchronousMountOnAndroid();
48
- }
49
-
50
45
  bool NativeReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop(
51
46
  jsi::Runtime& /*runtime*/) {
52
47
  return ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop();
@@ -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<<7e65025b9bdd8b515b31f02d2a1489b1>>
7
+ * @generated SignedSource<<6da9173f6eac23ebe891e12b85e6afc0>>
8
8
  */
9
9
 
10
10
  /**
@@ -37,8 +37,6 @@ class NativeReactNativeFeatureFlags
37
37
 
38
38
  bool commonTestFlag(jsi::Runtime& runtime);
39
39
 
40
- bool allowRecursiveCommitsWithSynchronousMountOnAndroid(jsi::Runtime& runtime);
41
-
42
40
  bool batchRenderingUpdatesInEventLoop(jsi::Runtime& runtime);
43
41
 
44
42
  bool completeReactInstanceCreationOnBgThreadOnAndroid(jsi::Runtime& runtime);
@@ -46,6 +46,9 @@ void TextAttributes::apply(TextAttributes textAttributes) {
46
46
  allowFontScaling = textAttributes.allowFontScaling.has_value()
47
47
  ? textAttributes.allowFontScaling
48
48
  : allowFontScaling;
49
+ maxFontSizeMultiplier = !std::isnan(textAttributes.maxFontSizeMultiplier)
50
+ ? textAttributes.maxFontSizeMultiplier
51
+ : maxFontSizeMultiplier;
49
52
  dynamicTypeRamp = textAttributes.dynamicTypeRamp.has_value()
50
53
  ? textAttributes.dynamicTypeRamp
51
54
  : dynamicTypeRamp;
@@ -168,6 +171,7 @@ bool TextAttributes::operator==(const TextAttributes& rhs) const {
168
171
  rhs.accessibilityRole,
169
172
  rhs.role,
170
173
  rhs.textTransform) &&
174
+ floatEquality(maxFontSizeMultiplier, rhs.maxFontSizeMultiplier) &&
171
175
  floatEquality(opacity, rhs.opacity) &&
172
176
  floatEquality(fontSize, rhs.fontSize) &&
173
177
  floatEquality(fontSizeMultiplier, rhs.fontSizeMultiplier) &&
@@ -213,6 +217,7 @@ SharedDebugStringConvertibleList TextAttributes::getDebugProps() const {
213
217
  debugStringConvertibleItem("allowFontScaling", allowFontScaling),
214
218
  debugStringConvertibleItem("dynamicTypeRamp", dynamicTypeRamp),
215
219
  debugStringConvertibleItem("letterSpacing", letterSpacing),
220
+ debugStringConvertibleItem("maxFontSizeMultiplier", maxFontSizeMultiplier),
216
221
 
217
222
  // Paragraph Styles
218
223
  debugStringConvertibleItem("lineHeight", lineHeight),
@@ -51,6 +51,7 @@ class TextAttributes : public DebugStringConvertible {
51
51
  std::optional<FontStyle> fontStyle{};
52
52
  std::optional<FontVariant> fontVariant{};
53
53
  std::optional<bool> allowFontScaling{};
54
+ Float maxFontSizeMultiplier{std::numeric_limits<Float>::quiet_NaN()};
54
55
  std::optional<DynamicTypeRamp> dynamicTypeRamp{};
55
56
  Float letterSpacing{std::numeric_limits<Float>::quiet_NaN()};
56
57
  std::optional<TextTransform> textTransform{};
@@ -117,6 +118,7 @@ struct hash<facebook::react::TextAttributes> {
117
118
  textAttributes.opacity,
118
119
  textAttributes.fontFamily,
119
120
  textAttributes.fontSize,
121
+ textAttributes.maxFontSizeMultiplier,
120
122
  textAttributes.fontSizeMultiplier,
121
123
  textAttributes.fontWeight,
122
124
  textAttributes.fontStyle,
@@ -909,6 +909,7 @@ constexpr static MapBuffer::Key TA_KEY_LINE_BREAK_STRATEGY = 25;
909
909
  constexpr static MapBuffer::Key TA_KEY_ROLE = 26;
910
910
  constexpr static MapBuffer::Key TA_KEY_TEXT_TRANSFORM = 27;
911
911
  constexpr static MapBuffer::Key TA_KEY_ALIGNMENT_VERTICAL = 28;
912
+ constexpr static MapBuffer::Key TA_KEY_MAX_FONT_SIZE_MULTIPLIER = 29;
912
913
 
913
914
  // constants for ParagraphAttributes serialization
914
915
  constexpr static MapBuffer::Key PA_KEY_MAX_NUMBER_OF_LINES = 0;
@@ -1003,6 +1004,10 @@ inline MapBuffer toMapBuffer(const TextAttributes& textAttributes) {
1003
1004
  builder.putBool(
1004
1005
  TA_KEY_ALLOW_FONT_SCALING, *textAttributes.allowFontScaling);
1005
1006
  }
1007
+ if (!std::isnan(textAttributes.maxFontSizeMultiplier)) {
1008
+ builder.putDouble(
1009
+ TA_KEY_MAX_FONT_SIZE_MULTIPLIER, textAttributes.maxFontSizeMultiplier);
1010
+ }
1006
1011
  if (!std::isnan(textAttributes.letterSpacing)) {
1007
1012
  builder.putDouble(TA_KEY_LETTER_SPACING, textAttributes.letterSpacing);
1008
1013
  }
@@ -73,6 +73,12 @@ static TextAttributes convertRawProp(
73
73
  "allowFontScaling",
74
74
  sourceTextAttributes.allowFontScaling,
75
75
  defaultTextAttributes.allowFontScaling);
76
+ textAttributes.maxFontSizeMultiplier = convertRawProp(
77
+ context,
78
+ rawProps,
79
+ "maxFontSizeMultiplier",
80
+ sourceTextAttributes.maxFontSizeMultiplier,
81
+ defaultTextAttributes.maxFontSizeMultiplier);
76
82
  textAttributes.dynamicTypeRamp = convertRawProp(
77
83
  context,
78
84
  rawProps,
@@ -266,6 +272,12 @@ void BaseTextProps::setProp(
266
272
  defaults, value, textAttributes, fontVariant, "fontVariant");
267
273
  REBUILD_FIELD_SWITCH_CASE(
268
274
  defaults, value, textAttributes, allowFontScaling, "allowFontScaling");
275
+ REBUILD_FIELD_SWITCH_CASE(
276
+ defaults,
277
+ value,
278
+ textAttributes,
279
+ maxFontSizeMultiplier,
280
+ "maxFontSizeMultiplier");
269
281
  REBUILD_FIELD_SWITCH_CASE(
270
282
  defaults, value, textAttributes, letterSpacing, "letterSpacing");
271
283
  REBUILD_FIELD_SWITCH_CASE(