react-native-tvos 0.77.1-0 → 0.78.0-0

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 (636) hide show
  1. package/Libraries/Animated/animations/Animation.js +22 -1
  2. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  3. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  4. package/Libraries/Animated/animations/TimingAnimation.js +1 -0
  5. package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
  6. package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
  7. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
  8. package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
  9. package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
  10. package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
  11. package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
  12. package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
  13. package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
  14. package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
  15. package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
  16. package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
  17. package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
  18. package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
  19. package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
  20. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  21. package/Libraries/Animated/useAnimatedProps.js +14 -56
  22. package/Libraries/AppDelegate/RCTAppDelegate.h +6 -48
  23. package/Libraries/AppDelegate/RCTAppDelegate.mm +5 -230
  24. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +21 -0
  25. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +123 -0
  26. package/Libraries/AppDelegate/RCTReactNativeFactory.h +98 -0
  27. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +266 -0
  28. package/Libraries/AppDelegate/RCTRootViewFactory.mm +1 -1
  29. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +0 -1
  30. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
  31. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  32. package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
  33. package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
  34. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
  35. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  36. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  37. package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
  38. package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
  39. package/Libraries/Components/TextInput/TextInput.js +6 -0
  40. package/Libraries/Components/View/ViewPropTypes.d.ts +4 -5
  41. package/Libraries/Components/View/ViewPropTypes.js +0 -9
  42. package/Libraries/Core/ReactNativeVersion.js +2 -2
  43. package/Libraries/Core/setUpBatchedBridge.js +1 -16
  44. package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
  45. package/Libraries/Image/AssetSourceResolver.js +11 -0
  46. package/Libraries/Image/RCTImageView.mm +3 -3
  47. package/Libraries/Inspector/BorderBox.js +26 -14
  48. package/Libraries/Inspector/BoxInspector.js +60 -42
  49. package/Libraries/Inspector/ElementBox.js +55 -48
  50. package/Libraries/Inspector/StyleInspector.js +36 -30
  51. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  52. package/Libraries/Lists/FlatList.d.ts +1 -1
  53. package/Libraries/Modal/Modal.js +2 -0
  54. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
  55. package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
  56. package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
  57. package/Libraries/Network/RCTNetworking.android.js +24 -16
  58. package/Libraries/Network/RCTNetworking.ios.js +1 -46
  59. package/Libraries/Network/RCTNetworking.js.flow +1 -46
  60. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  61. package/Libraries/ReactNative/UIManagerProperties.js +3 -1
  62. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
  63. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
  64. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
  65. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
  66. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
  67. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
  68. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
  69. package/Libraries/StyleSheet/processTransform.js +6 -0
  70. package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
  71. package/Libraries/Text/Text.d.ts +6 -1
  72. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
  73. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
  74. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
  75. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +25 -0
  76. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
  77. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
  78. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
  79. package/Libraries/Text/TextProps.js +2 -2
  80. package/Libraries/Utilities/BackHandler.android.js +5 -4
  81. package/Libraries/Utilities/BackHandler.ios.js +3 -4
  82. package/README-core.md +2 -2
  83. package/React/Base/RCTVersion.m +2 -2
  84. package/React/CoreModules/RCTDevSettings.h +0 -1
  85. package/React/CoreModules/RCTDeviceInfo.mm +4 -0
  86. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
  87. package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
  88. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
  89. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
  90. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
  91. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
  92. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
  93. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
  94. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
  95. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
  96. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +22 -3
  97. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
  98. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
  99. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +7 -2
  100. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
  101. package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
  102. package/React/Fabric/RCTScheduler.mm +1 -1
  103. package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
  104. package/React/Modules/RCTUIManager.mm +1 -2
  105. package/React/React-RCTFBReactNativeSpec.podspec +1 -0
  106. package/React/React-RCTFabric.podspec +3 -2
  107. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
  108. package/React/Views/RCTComponentData.mm +1 -5
  109. package/React/Views/RCTLayout.m +3 -0
  110. package/React/Views/RCTShadowView.h +3 -3
  111. package/React/Views/RCTShadowView.m +52 -20
  112. package/React/Views/RCTView.m +6 -2
  113. package/React/Views/RCTViewManager.m +0 -7
  114. package/React/Views/ScrollView/RCTScrollView.m +46 -19
  115. package/React-Core.podspec +1 -1
  116. package/ReactAndroid/api/ReactAndroid.api +120 -227
  117. package/ReactAndroid/build.gradle.kts +8 -13
  118. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
  119. package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
  120. package/ReactAndroid/gradle.properties +1 -1
  121. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
  122. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
  123. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
  125. package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
  126. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
  127. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
  128. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
  130. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
  131. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
  132. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
  133. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
  134. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
  135. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
  136. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
  137. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
  138. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
  140. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
  141. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
  142. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
  143. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
  144. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
  145. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +24 -0
  146. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
  147. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
  148. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
  149. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
  150. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
  151. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
  152. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
  153. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
  154. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
  155. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
  156. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
  157. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
  158. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
  159. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
  160. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
  161. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
  162. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
  163. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
  164. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
  165. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
  169. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
  170. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
  171. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
  172. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
  173. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
  174. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
  175. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
  176. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
  177. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
  178. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
  179. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
  180. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
  181. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
  182. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
  187. package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +8 -9
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
  195. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
  197. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
  198. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
  200. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
  201. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
  205. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
  208. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +34 -1
  210. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
  211. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
  212. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
  213. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
  214. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
  215. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
  216. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
  218. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
  219. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
  220. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
  222. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
  223. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +90 -20
  225. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +2 -2
  226. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
  227. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
  228. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
  229. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
  230. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
  231. package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
  232. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
  233. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
  234. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
  235. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
  236. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
  237. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  238. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
  239. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
  240. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
  241. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
  242. package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
  243. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
  244. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
  245. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
  246. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
  247. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
  248. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
  249. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
  250. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
  251. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  252. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
  253. package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
  254. package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
  255. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
  256. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
  257. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
  258. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
  259. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
  260. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
  261. package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
  262. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
  263. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
  264. package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
  265. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
  266. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
  267. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
  268. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
  269. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
  270. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
  271. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
  272. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
  273. package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
  274. package/ReactCommon/React-Fabric.podspec +8 -0
  275. package/ReactCommon/React-FabricComponents.podspec +2 -2
  276. package/ReactCommon/React-FabricImage.podspec +4 -1
  277. package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
  278. package/ReactCommon/cxxreact/Instance.cpp +6 -6
  279. package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
  280. package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
  281. package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
  282. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
  283. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  284. package/ReactCommon/cxxreact/SystraceSection.h +8 -141
  285. package/ReactCommon/cxxreact/TraceSection.h +181 -0
  286. package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
  287. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
  288. package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
  289. package/ReactCommon/jsc/React-jsc.podspec +1 -1
  290. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
  291. package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
  292. package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
  293. package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
  294. package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
  295. package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
  296. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
  297. package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
  298. package/ReactCommon/jsi/jsi/decorator.h +61 -0
  299. package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
  300. package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
  301. package/ReactCommon/jsi/jsi/jsi.h +81 -0
  302. package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
  303. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
  304. package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
  305. package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
  306. package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
  307. package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
  308. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
  309. package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
  310. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
  311. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
  312. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
  313. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
  314. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
  315. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
  316. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
  317. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
  318. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
  319. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
  320. package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
  321. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
  322. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
  323. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
  324. package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
  325. package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
  326. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
  327. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
  328. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
  329. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
  330. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
  331. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
  332. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
  333. package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
  334. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
  335. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
  336. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -5
  337. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +13 -23
  338. package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
  339. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
  340. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
  341. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
  342. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
  343. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  344. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
  345. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
  346. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
  347. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
  348. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  349. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
  350. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
  351. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  352. package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
  353. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
  354. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
  355. package/ReactCommon/react/renderer/animations/primitives.h +1 -1
  356. package/ReactCommon/react/renderer/animations/utils.h +3 -4
  357. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
  358. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +81 -31
  359. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
  360. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
  361. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
  362. package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
  363. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
  364. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  365. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
  366. package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
  367. package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
  368. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
  369. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
  370. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
  371. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
  372. package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
  373. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
  374. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
  375. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
  376. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
  377. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
  378. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
  379. package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
  380. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
  381. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
  382. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
  383. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
  384. package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
  385. package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
  386. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
  387. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
  388. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
  389. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
  390. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
  391. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
  392. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
  393. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
  394. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
  395. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
  396. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
  397. package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
  398. package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
  399. package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
  400. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
  401. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
  402. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
  403. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  404. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
  405. package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
  406. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
  407. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
  408. package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
  409. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
  410. package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
  411. package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
  412. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
  413. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
  414. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
  415. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
  416. package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
  417. package/ReactCommon/react/renderer/core/Props.cpp +16 -5
  418. package/ReactCommon/react/renderer/core/Props.h +11 -4
  419. package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
  420. package/ReactCommon/react/renderer/core/RawProps.h +10 -1
  421. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
  422. package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
  423. package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
  424. package/ReactCommon/react/renderer/core/RawValue.h +315 -22
  425. package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
  426. package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
  427. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
  428. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
  429. package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
  430. package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
  431. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
  432. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
  433. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
  434. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
  435. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
  436. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
  437. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
  438. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
  439. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  440. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
  441. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  442. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
  443. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
  444. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
  445. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
  446. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
  447. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
  448. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
  449. package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
  450. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
  451. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
  452. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
  453. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
  454. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
  455. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
  456. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
  457. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
  458. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
  459. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
  460. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
  461. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
  462. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
  463. package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
  464. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
  465. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
  466. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
  467. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
  468. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  469. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
  470. package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
  471. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
  472. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
  473. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +6 -2
  474. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
  475. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
  476. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
  477. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
  478. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
  479. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
  480. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
  481. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
  482. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
  483. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
  484. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
  485. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
  486. package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
  487. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
  488. package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
  489. package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
  490. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
  491. package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
  492. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
  493. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
  494. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
  495. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
  496. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
  497. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
  498. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
  499. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
  500. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
  501. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
  502. package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
  503. package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
  504. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
  505. package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
  506. package/ReactCommon/yoga/yoga/YGValue.h +3 -0
  507. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
  508. package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
  509. package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
  510. package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
  511. package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
  512. package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
  513. package/ReactCommon/yoga/yoga/node/Node.h +5 -5
  514. package/ReactCommon/yoga/yoga/style/Style.h +14 -12
  515. package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
  516. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
  517. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  518. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
  519. package/gradle/libs.versions.toml +6 -2
  520. package/index.js +5 -0
  521. package/package.json +12 -13
  522. package/react-native.config.js +6 -0
  523. package/scripts/cocoapods/codegen_utils.rb +4 -4
  524. package/scripts/cocoapods/new_architecture.rb +3 -3
  525. package/scripts/cocoapods/utils.rb +4 -3
  526. package/scripts/codegen/generate-artifacts-executor.js +8 -4
  527. package/scripts/generate-codegen-artifacts.js +6 -1
  528. package/scripts/react-native-xcode.sh +1 -1
  529. package/scripts/react_native_pods.rb +3 -3
  530. package/scripts/xcode/ccache-clang++.sh +1 -1
  531. package/scripts/xcode/ccache-clang.sh +1 -1
  532. package/sdks/.hermesversion +1 -1
  533. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
  534. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  535. package/sdks/hermesc/osx-bin/hermes +0 -0
  536. package/sdks/hermesc/osx-bin/hermesc +0 -0
  537. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  538. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  539. package/src/private/featureflags/README.md +5 -0
  540. package/src/private/featureflags/ReactNativeFeatureFlags.js +33 -27
  541. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
  542. package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
  543. package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
  544. package/src/private/specs/modules/NativeFantom.js +37 -0
  545. package/src/private/utilities/ensureInstance.js +21 -0
  546. package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
  547. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
  548. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
  549. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  550. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
  551. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  552. package/src/private/webapis/performance/Performance.js +0 -12
  553. package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
  554. package/types/index.d.ts +1 -0
  555. package/types/public/ReactNativeTVTypes.d.ts +49 -51
  556. package/Libraries/HeapCapture/HeapCapture.js +0 -29
  557. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
  558. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
  559. package/Libraries/Performance/SamplingProfiler.js +0 -39
  560. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
  561. package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
  562. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
  563. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
  564. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
  565. package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
  566. package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
  567. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
  568. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
  569. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
  570. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
  571. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
  572. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
  573. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
  574. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
  575. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
  576. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
  577. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
  578. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
  579. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
  580. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
  581. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
  582. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
  583. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
  584. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
  585. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
  586. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
  587. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
  588. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
  589. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
  590. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
  591. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
  592. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
  593. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
  594. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
  595. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
  596. package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
  597. package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
  598. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
  599. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
  600. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
  601. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
  602. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
  603. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
  604. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
  605. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
  606. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
  607. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
  608. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
  609. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
  610. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
  611. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
  612. package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
  613. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
  614. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
  615. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
  616. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
  617. package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
  618. package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
  619. package/ReactCommon/React-nativeconfig.podspec +0 -36
  620. package/ReactCommon/cxxreact/tests/main.cpp +0 -15
  621. package/ReactCommon/react/config/CMakeLists.txt +0 -20
  622. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
  623. package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
  624. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
  625. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
  626. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
  627. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
  628. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
  629. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
  630. package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
  631. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
  632. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
  633. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
  634. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
  635. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
  636. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
@@ -11,7 +11,9 @@
11
11
 
12
12
  #include <folly/Conv.h>
13
13
  #include <jsinspector-modern/ReactCdp.h>
14
- #include <reactperflogger/ReactPerfLogger.h>
14
+ #include <react/timing/primitives.h>
15
+
16
+ #include <chrono>
15
17
 
16
18
  namespace facebook::react {
17
19
 
@@ -25,7 +27,7 @@ std::string JSExecutor::getSyntheticBundlePath(
25
27
  }
26
28
 
27
29
  double JSExecutor::performanceNow() {
28
- return ReactPerfLogger::performanceNow();
30
+ return chronoToDOMHighResTimeStamp(std::chrono::steady_clock::now());
29
31
  }
30
32
 
31
33
  jsinspector_modern::RuntimeTargetDelegate&
@@ -11,7 +11,7 @@
11
11
  #include <reactperflogger/BridgeNativeModulePerfLogger.h>
12
12
 
13
13
  #include "NativeModule.h"
14
- #include "SystraceSection.h"
14
+ #include "TraceSection.h"
15
15
 
16
16
  namespace facebook::react {
17
17
 
@@ -46,7 +46,7 @@ void ModuleRegistry::updateModuleNamesFromIndex(size_t index) {
46
46
 
47
47
  void ModuleRegistry::registerModules(
48
48
  std::vector<std::unique_ptr<NativeModule>> modules) {
49
- SystraceSection s_("ModuleRegistry::registerModules");
49
+ TraceSection s_("ModuleRegistry::registerModules");
50
50
  // Noop if there are no NativeModules to add
51
51
  if (modules.empty()) {
52
52
  return;
@@ -81,7 +81,7 @@ void ModuleRegistry::registerModules(
81
81
  }
82
82
 
83
83
  std::vector<std::string> ModuleRegistry::moduleNames() {
84
- SystraceSection s_("ModuleRegistry::moduleNames");
84
+ TraceSection s_("ModuleRegistry::moduleNames");
85
85
  std::vector<std::string> names;
86
86
  for (size_t i = 0; i < modules_.size(); i++) {
87
87
  std::string name = normalizeName(modules_[i]->getName());
@@ -92,7 +92,7 @@ std::vector<std::string> ModuleRegistry::moduleNames() {
92
92
  }
93
93
 
94
94
  std::optional<ModuleConfig> ModuleRegistry::getConfig(const std::string& name) {
95
- SystraceSection s("ModuleRegistry::getConfig", "module", name);
95
+ TraceSection s("ModuleRegistry::getConfig", "module", name);
96
96
 
97
97
  // Initialize modulesByName_
98
98
  if (modulesByName_.empty() && !modules_.empty()) {
@@ -144,7 +144,7 @@ std::optional<ModuleConfig> ModuleRegistry::getConfig(const std::string& name) {
144
144
  folly::dynamic config = folly::dynamic::array(name);
145
145
 
146
146
  {
147
- SystraceSection s_("ModuleRegistry::getConstants", "module", name);
147
+ TraceSection s_("ModuleRegistry::getConstants", "module", name);
148
148
  /**
149
149
  * In the case that there are constants, we'll initialize the NativeModule,
150
150
  * and signal moduleJSRequireEndingStart. Otherwise, we'll simply signal the
@@ -155,7 +155,7 @@ std::optional<ModuleConfig> ModuleRegistry::getConfig(const std::string& name) {
155
155
  }
156
156
 
157
157
  {
158
- SystraceSection s_("ModuleRegistry::getMethods", "module", name);
158
+ TraceSection s_("ModuleRegistry::getMethods", "module", name);
159
159
  std::vector<MethodDescriptor> methods = module->getMethods();
160
160
 
161
161
  folly::dynamic methodNames = folly::dynamic::array;
@@ -21,7 +21,7 @@
21
21
  #include "ModuleRegistry.h"
22
22
  #include "MoveWrapper.h"
23
23
  #include "RAMBundleRegistry.h"
24
- #include "SystraceSection.h"
24
+ #include "TraceSection.h"
25
25
 
26
26
  #include <memory>
27
27
 
@@ -194,7 +194,7 @@ void NativeToJsBridge::callFunction(
194
194
  #ifdef WITH_FBSYSTRACE
195
195
  FbSystraceAsyncFlow::end(
196
196
  TRACE_TAG_REACT_CXX_BRIDGE, "JSCall", systraceCookie);
197
- SystraceSection s(
197
+ TraceSection s(
198
198
  "NativeToJsBridge::callFunction", "module", module, "method", method);
199
199
  #else
200
200
  (void)(systraceCookie);
@@ -229,7 +229,7 @@ void NativeToJsBridge::invokeCallback(
229
229
  #ifdef WITH_FBSYSTRACE
230
230
  FbSystraceAsyncFlow::end(
231
231
  TRACE_TAG_REACT_CXX_BRIDGE, "<callback>", systraceCookie);
232
- SystraceSection s("NativeToJsBridge::invokeCallback");
232
+ TraceSection s("NativeToJsBridge::invokeCallback");
233
233
  #else
234
234
  (void)(systraceCookie);
235
235
  #endif
@@ -16,8 +16,8 @@ namespace facebook::react {
16
16
 
17
17
  constexpr struct {
18
18
  int32_t Major = 0;
19
- int32_t Minor = 77;
20
- int32_t Patch = 1;
19
+ int32_t Minor = 78;
20
+ int32_t Patch = 0;
21
21
  std::string_view Prerelease = "0";
22
22
  } ReactNativeVersion;
23
23
 
@@ -7,155 +7,22 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #ifdef WITH_FBSYSTRACE
11
- #include <fbsystrace.h>
12
- #endif
13
-
14
- #if defined(__APPLE__)
15
- // This is required so that OS_LOG_TARGET_HAS_10_15_FEATURES will be set.
16
- #include <os/trace_base.h>
17
-
18
- #if OS_LOG_TARGET_HAS_10_15_FEATURES && !defined(WITH_LOOM_TRACE)
19
- #include <os/log.h>
20
- #include <os/signpost.h>
21
- #include <sstream>
22
- #endif
23
-
24
- #endif
10
+ #include "TraceSection.h"
25
11
 
12
+ // NOTE: This is here for a backwards compatibility and should be removed once
13
+ // all of the external references to `facebook::react::SystraceSection` are
14
+ // gone.
26
15
  namespace facebook::react {
27
16
 
28
- /**
29
- * Allow providing an fbsystrace implementation that can short-circuit out
30
- * quickly and can throttle too frequent events so we can get useful traces even
31
- * if rendering etc. is spinning. For throttling we'll need file/line info so we
32
- * use a macro.
33
- */
34
17
  #if defined(WITH_LOOM_TRACE)
35
- #define SystraceSectionUnwrapped \
36
- static constexpr const char systraceSectionFile[] = __FILE__; \
37
- fbsystrace::FbSystraceSection<systraceSectionFile, __LINE__>
38
- /**
39
- * This is a convenience class to avoid lots of verbose profiling
40
- * #ifdefs. If WITH_FBSYSTRACE is not defined, the optimizer will
41
- * remove this completely. If it is defined, it will behave as
42
- * FbSystraceSection, with the right tag provided. Use two separate classes to
43
- * to ensure that the ODR rule isn't violated, that is, if WITH_FBSYSTRACE has
44
- * different values in different files, there is no inconsistency in the sizes
45
- * of defined symbols.
46
- */
47
- #elif defined(WITH_FBSYSTRACE)
48
- struct ConcreteSystraceSection {
49
- public:
50
- template <typename... ConvertsToStringPiece>
51
- explicit ConcreteSystraceSection(
52
- const char* name,
53
- ConvertsToStringPiece&&... args)
54
- : m_section(TRACE_TAG_REACT_CXX_BRIDGE, name, args...) {}
55
-
56
- private:
57
- fbsystrace::FbSystraceSection m_section;
58
- };
59
- using SystraceSectionUnwrapped = ConcreteSystraceSection;
18
+ #define SystraceSection TraceSection
60
19
  #else
61
- struct DummySystraceSection {
62
- public:
63
- template <typename... ConvertsToStringPiece>
64
- explicit DummySystraceSection(
65
- const __unused char* name,
66
- __unused ConvertsToStringPiece&&... args) {}
67
- };
68
- using SystraceSectionUnwrapped = DummySystraceSection;
69
- #endif
70
-
71
- /**
72
- * On recent Apple platforms we want to leverage the Instruments signposts APIs.
73
- * To not break the other SystraceSection implementations above we wrap them.
74
- * In the case of WITH_LOOM_TRACE we don't use the signposts APIs because of the
75
- * templated type for SystraceSection.
76
- */
77
- #if defined(__APPLE__) && OS_LOG_TARGET_HAS_10_15_FEATURES && \
78
- !defined(WITH_LOOM_TRACE)
79
-
80
- namespace systrace {
81
-
82
- template <typename T, typename = void>
83
- struct renderer {
84
- static std::string render(const T& t) {
85
- std::ostringstream oss;
86
- oss << t;
87
- return oss.str();
88
- }
89
- };
90
-
91
- template <typename T>
92
- static auto render(const T& t)
93
- -> decltype(renderer<T>::render(std::declval<const T&>())) {
94
- return renderer<T>::render(t);
95
- }
96
-
97
- inline os_log_t instrumentsLogHandle = nullptr;
98
-
99
- static inline os_log_t getOrCreateInstrumentsLogHandle() {
100
- if (!instrumentsLogHandle) {
101
- instrumentsLogHandle = os_log_create(
102
- "dev.reactnative.instruments", OS_LOG_CATEGORY_DYNAMIC_TRACING);
103
- }
104
- return instrumentsLogHandle;
105
- }
106
-
107
- } // namespace systrace
108
-
109
- struct SystraceSection {
110
- public:
20
+ struct [[deprecated("Use TraceSection")]] SystraceSection
21
+ : public TraceSection {
111
22
  template <typename... ConvertsToStringPiece>
112
23
  explicit SystraceSection(const char* name, ConvertsToStringPiece&&... args)
113
- : systraceSectionUnwrapped_(name, args...) {
114
- os_log_t instrumentsLogHandle = systrace::getOrCreateInstrumentsLogHandle();
115
-
116
- // If the log isn't enabled, we don't want the performance overhead of the
117
- // rest of the code below.
118
- if (!os_signpost_enabled(instrumentsLogHandle)) {
119
- return;
120
- }
121
-
122
- name_ = name;
123
-
124
- const auto argsVector = std::vector<std::string>{systrace::render(args)...};
125
- std::string argsString = "";
126
- for (size_t i = 0; i < argsVector.size(); i += 2) {
127
- argsString += argsVector[i] + "=" + argsVector[i + 1] + ";";
128
- }
129
-
130
- signpostID_ = os_signpost_id_make_with_pointer(instrumentsLogHandle, this);
131
-
132
- os_signpost_interval_begin(
133
- instrumentsLogHandle,
134
- signpostID_,
135
- "Systrace",
136
- "%s begin: %s",
137
- name,
138
- argsString.c_str());
139
- }
140
-
141
- ~SystraceSection() {
142
- // We don't need to gate on os_signpost_enabled here because it's already
143
- // checked in os_signpost_interval_end.
144
- os_signpost_interval_end(
145
- systrace::instrumentsLogHandle,
146
- signpostID_,
147
- "Systrace",
148
- "%s end",
149
- name_.data());
150
- }
151
-
152
- private:
153
- os_signpost_id_t signpostID_ = OS_SIGNPOST_ID_INVALID;
154
- std::string_view name_;
155
- SystraceSectionUnwrapped systraceSectionUnwrapped_;
24
+ : TraceSection(name, args...) {}
156
25
  };
157
- #else
158
- #define SystraceSection SystraceSectionUnwrapped
159
26
  #endif
160
27
 
161
28
  } // namespace facebook::react
@@ -0,0 +1,181 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #ifdef WITH_FBSYSTRACE
11
+ #include <fbsystrace.h>
12
+ #endif
13
+
14
+ #ifdef WITH_PERFETTO
15
+ #include <perfetto.h>
16
+ #include <reactperflogger/ReactPerfettoCategories.h>
17
+ #endif
18
+
19
+ #if defined(__APPLE__)
20
+ // This is required so that OS_LOG_TARGET_HAS_10_15_FEATURES will be set.
21
+ #include <os/trace_base.h>
22
+
23
+ #if OS_LOG_TARGET_HAS_10_15_FEATURES && !defined(WITH_LOOM_TRACE)
24
+ #include <os/log.h>
25
+ #include <os/signpost.h>
26
+ #include <sstream>
27
+ #endif
28
+
29
+ #endif
30
+
31
+ namespace facebook::react {
32
+
33
+ /**
34
+ * Allow providing an fbsystrace implementation that can short-circuit out
35
+ * quickly and can throttle too frequent events so we can get useful traces even
36
+ * if rendering etc. is spinning. For throttling we'll need file/line info so we
37
+ * use a macro.
38
+ */
39
+ #if defined(WITH_LOOM_TRACE)
40
+ #define TraceSectionUnwrapped \
41
+ static constexpr const char systraceSectionFile[] = __FILE__; \
42
+ fbsystrace::FbSystraceSection<systraceSectionFile, __LINE__>
43
+ /**
44
+ * This is a convenience class to avoid lots of verbose profiling
45
+ * #ifdefs. If WITH_FBSYSTRACE is not defined, the optimizer will
46
+ * remove this completely. If it is defined, it will behave as
47
+ * FbSystraceSection, with the right tag provided. Use two separate classes to
48
+ * to ensure that the ODR rule isn't violated, that is, if WITH_FBSYSTRACE has
49
+ * different values in different files, there is no inconsistency in the sizes
50
+ * of defined symbols.
51
+ */
52
+ #elif defined(WITH_PERFETTO)
53
+ struct TraceSection {
54
+ public:
55
+ template <typename... ConvertsToStringPiece>
56
+ explicit TraceSection(
57
+ const __unused char* name,
58
+ __unused ConvertsToStringPiece&&... args) {
59
+ TRACE_EVENT_BEGIN("react-native", perfetto::DynamicString{name}, args...);
60
+ }
61
+
62
+ ~TraceSection() {
63
+ TRACE_EVENT_END("react-native");
64
+ }
65
+ };
66
+ using TraceSectionUnwrapped = TraceSection;
67
+ #elif defined(WITH_FBSYSTRACE)
68
+ struct ConcreteTraceSection {
69
+ public:
70
+ template <typename... ConvertsToStringPiece>
71
+ explicit ConcreteTraceSection(
72
+ const char* name,
73
+ ConvertsToStringPiece&&... args)
74
+ : m_section(TRACE_TAG_REACT_CXX_BRIDGE, name, args...) {}
75
+
76
+ private:
77
+ fbsystrace::FbSystraceSection m_section;
78
+ };
79
+ using TraceSectionUnwrapped = ConcreteTraceSection;
80
+ #else
81
+ struct DummyTraceSection {
82
+ public:
83
+ template <typename... ConvertsToStringPiece>
84
+ explicit DummyTraceSection(
85
+ const __unused char* name,
86
+ __unused ConvertsToStringPiece&&... args) {}
87
+ };
88
+ using TraceSectionUnwrapped = DummyTraceSection;
89
+ #endif
90
+
91
+ /**
92
+ * On recent Apple platforms we want to leverage the Instruments signposts APIs.
93
+ * To not break the other TraceSection implementations above we wrap them.
94
+ * In the case of WITH_LOOM_TRACE we don't use the signposts APIs because of the
95
+ * templated type for TraceSection.
96
+ */
97
+ #if defined(__APPLE__) && OS_LOG_TARGET_HAS_10_15_FEATURES && \
98
+ !defined(WITH_LOOM_TRACE)
99
+
100
+ namespace systrace {
101
+
102
+ template <typename T, typename = void>
103
+ struct renderer {
104
+ static std::string render(const T& t) {
105
+ std::ostringstream oss;
106
+ oss << t;
107
+ return oss.str();
108
+ }
109
+ };
110
+
111
+ template <typename T>
112
+ static auto render(const T& t)
113
+ -> decltype(renderer<T>::render(std::declval<const T&>())) {
114
+ return renderer<T>::render(t);
115
+ }
116
+
117
+ inline os_log_t instrumentsLogHandle = nullptr;
118
+
119
+ static inline os_log_t getOrCreateInstrumentsLogHandle() {
120
+ if (!instrumentsLogHandle) {
121
+ instrumentsLogHandle = os_log_create(
122
+ "dev.reactnative.instruments", OS_LOG_CATEGORY_DYNAMIC_TRACING);
123
+ }
124
+ return instrumentsLogHandle;
125
+ }
126
+
127
+ } // namespace systrace
128
+
129
+ struct TraceSection {
130
+ public:
131
+ template <typename... ConvertsToStringPiece>
132
+ explicit TraceSection(const char* name, ConvertsToStringPiece&&... args)
133
+ : systraceSectionUnwrapped_(name, args...) {
134
+ os_log_t instrumentsLogHandle = systrace::getOrCreateInstrumentsLogHandle();
135
+
136
+ // If the log isn't enabled, we don't want the performance overhead of the
137
+ // rest of the code below.
138
+ if (!os_signpost_enabled(instrumentsLogHandle)) {
139
+ return;
140
+ }
141
+
142
+ name_ = name;
143
+
144
+ const auto argsVector = std::vector<std::string>{systrace::render(args)...};
145
+ std::string argsString = "";
146
+ for (size_t i = 0; i < argsVector.size(); i += 2) {
147
+ argsString += argsVector[i] + "=" + argsVector[i + 1] + ";";
148
+ }
149
+
150
+ signpostID_ = os_signpost_id_make_with_pointer(instrumentsLogHandle, this);
151
+
152
+ os_signpost_interval_begin(
153
+ instrumentsLogHandle,
154
+ signpostID_,
155
+ "Systrace",
156
+ "%s begin: %s",
157
+ name,
158
+ argsString.c_str());
159
+ }
160
+
161
+ ~TraceSection() {
162
+ // We don't need to gate on os_signpost_enabled here because it's already
163
+ // checked in os_signpost_interval_end.
164
+ os_signpost_interval_end(
165
+ systrace::instrumentsLogHandle,
166
+ signpostID_,
167
+ "Systrace",
168
+ "%s end",
169
+ name_.data());
170
+ }
171
+
172
+ private:
173
+ os_signpost_id_t signpostID_ = OS_SIGNPOST_ID_INVALID;
174
+ std::string_view name_;
175
+ TraceSectionUnwrapped systraceSectionUnwrapped_;
176
+ };
177
+ #else
178
+ #define TraceSection TraceSectionUnwrapped
179
+ #endif
180
+
181
+ } // namespace facebook::react
@@ -60,3 +60,22 @@ TEST(JSBigFileString, MapPartTest) {
60
60
  EXPECT_EQ(needle[i], bigStr.c_str()[i]);
61
61
  }
62
62
  }
63
+
64
+ TEST(JSBigFileString, MapPartAtLargeOffsetTest) {
65
+ std::string data(8 * 4096, 'X');
66
+ data += "Hello World!";
67
+
68
+ // Sub-string to actually map
69
+ std::string needle{"or"};
70
+ off_t offset = data.find(needle);
71
+
72
+ // Initialise Big String
73
+ int fd = tempFileFromString(data);
74
+ JSBigFileString bigStr{fd, needle.size(), offset};
75
+
76
+ // Test
77
+ EXPECT_EQ(needle.length(), bigStr.size());
78
+ for (unsigned int i = 0; i < needle.length(); ++i) {
79
+ EXPECT_EQ(needle[i], bigStr.c_str()[i]);
80
+ }
81
+ }
@@ -8,7 +8,7 @@
8
8
  #include "HermesExecutorFactory.h"
9
9
 
10
10
  #include <cxxreact/MessageQueueThread.h>
11
- #include <cxxreact/SystraceSection.h>
11
+ #include <cxxreact/TraceSection.h>
12
12
  #include <hermes/hermes.h>
13
13
  #include <jsi/decorator.h>
14
14
  #include <jsinspector-modern/InspectorFlags.h>
@@ -197,7 +197,7 @@ std::unique_ptr<JSExecutor> HermesExecutorFactory::createJSExecutor(
197
197
  std::shared_ptr<MessageQueueThread> jsQueue) {
198
198
  std::unique_ptr<HermesRuntime> hermesRuntime;
199
199
  {
200
- SystraceSection s("makeHermesRuntime");
200
+ TraceSection s("makeHermesRuntime");
201
201
  hermesRuntime = hermes::makeHermesRuntime(runtimeConfig_);
202
202
  }
203
203
 
@@ -382,13 +382,11 @@ JSCRuntime::JSCRuntime(JSGlobalContextRef ctx)
382
382
  {
383
383
  #ifndef NDEBUG
384
384
  #ifdef _JSC_HAS_INSPECTABLE
385
- #if (__OSX_AVAILABLE_STARTING(MAC_NA, IPHONE_16_4))
386
385
  if (__builtin_available(macOS 13.3, iOS 16.4, tvOS 16.4, *)) {
387
386
  JSGlobalContextSetInspectable(ctx_, true);
388
387
  }
389
388
  #endif
390
389
  #endif
391
- #endif
392
390
  }
393
391
 
394
392
  JSCRuntime::~JSCRuntime() {
@@ -27,7 +27,7 @@ Pod::Spec.new do |s|
27
27
  s.source = source
28
28
  s.source_files = "JSCRuntime.{cpp,h}"
29
29
  s.exclude_files = "**/test/*"
30
- s.framework = "JavaScriptCore"
30
+ s.weak_framework = "JavaScriptCore"
31
31
 
32
32
  s.dependency "React-jsi", version
33
33
 
@@ -29,9 +29,12 @@ bool isLooselyNull(const jsi::Value& value) {
29
29
  return value.isNull() || value.isUndefined();
30
30
  }
31
31
 
32
- bool isEmptyString(jsi::Runtime& runtime, const jsi::Value& value) {
32
+ bool isEqualTo(
33
+ jsi::Runtime& runtime,
34
+ const jsi::Value& value,
35
+ const std::string& str) {
33
36
  return jsi::Value::strictEquals(
34
- runtime, value, jsi::String::createFromUtf8(runtime, ""));
37
+ runtime, value, jsi::String::createFromUtf8(runtime, str));
35
38
  }
36
39
 
37
40
  std::string stringifyToCpp(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -121,10 +124,10 @@ jsi::Value getBundleMetadata(jsi::Runtime& runtime, jsi::JSError& error) {
121
124
  namespace facebook::react {
122
125
 
123
126
  template <>
124
- struct Bridging<JsErrorHandler::ParsedError::StackFrame> {
127
+ struct Bridging<JsErrorHandler::ProcessedError::StackFrame> {
125
128
  static jsi::Value toJs(
126
129
  jsi::Runtime& runtime,
127
- const JsErrorHandler::ParsedError::StackFrame& frame) {
130
+ const JsErrorHandler::ProcessedError::StackFrame& frame) {
128
131
  auto stackFrame = jsi::Object(runtime);
129
132
  auto file = bridging::toJs(runtime, frame.file, nullptr);
130
133
  auto lineNumber = bridging::toJs(runtime, frame.lineNumber, nullptr);
@@ -139,10 +142,10 @@ struct Bridging<JsErrorHandler::ParsedError::StackFrame> {
139
142
  };
140
143
 
141
144
  template <>
142
- struct Bridging<JsErrorHandler::ParsedError> {
145
+ struct Bridging<JsErrorHandler::ProcessedError> {
143
146
  static jsi::Value toJs(
144
147
  jsi::Runtime& runtime,
145
- const JsErrorHandler::ParsedError& error) {
148
+ const JsErrorHandler::ProcessedError& error) {
146
149
  auto data = jsi::Object(runtime);
147
150
  data.setProperty(runtime, "message", error.message);
148
151
  data.setProperty(
@@ -172,7 +175,7 @@ struct Bridging<JsErrorHandler::ParsedError> {
172
175
 
173
176
  std::ostream& operator<<(
174
177
  std::ostream& os,
175
- const JsErrorHandler::ParsedError::StackFrame& frame) {
178
+ const JsErrorHandler::ProcessedError::StackFrame& frame) {
176
179
  auto file = frame.file ? quote(*frame.file) : "nil";
177
180
  auto methodName = quote(frame.methodName);
178
181
  auto lineNumber =
@@ -185,7 +188,7 @@ std::ostream& operator<<(
185
188
  }
186
189
  std::ostream& operator<<(
187
190
  std::ostream& os,
188
- const JsErrorHandler::ParsedError& error) {
191
+ const JsErrorHandler::ProcessedError& error) {
189
192
  auto message = quote(error.message);
190
193
  auto originalMessage =
191
194
  error.originalMessage ? quote(*error.originalMessage) : "nil";
@@ -196,7 +199,7 @@ std::ostream& operator<<(
196
199
  auto isFatal = std::to_string(static_cast<int>(error.isFatal));
197
200
  auto extraData = "jsi::Object{ <omitted> } ";
198
201
 
199
- os << "ParsedError {\n"
202
+ os << "ProcessedError {\n"
200
203
  << " .message = " << message << "\n"
201
204
  << " .originalMessage = " << originalMessage << "\n"
202
205
  << " .name = " << name << "\n"
@@ -265,7 +268,7 @@ void JsErrorHandler::handleErrorWithCppPipeline(
265
268
  }
266
269
 
267
270
  auto nameValue = errorObj.getProperty(runtime, "name");
268
- auto name = (isLooselyNull(nameValue) || isEmptyString(runtime, nameValue))
271
+ auto name = (isLooselyNull(nameValue) || isEqualTo(runtime, nameValue, ""))
269
272
  ? std::nullopt
270
273
  : std::optional(stringifyToCpp(runtime, nameValue));
271
274
 
@@ -326,7 +329,7 @@ void JsErrorHandler::handleErrorWithCppPipeline(
326
329
 
327
330
  auto id = nextExceptionId();
328
331
 
329
- ParsedError parsedError = {
332
+ ProcessedError processedError = {
330
333
  .message =
331
334
  _isRuntimeReady ? message : ("[runtime not ready]: " + message),
332
335
  .originalMessage = originalMessage,
@@ -338,7 +341,7 @@ void JsErrorHandler::handleErrorWithCppPipeline(
338
341
  .extraData = std::move(extraData),
339
342
  };
340
343
 
341
- auto data = bridging::toJs(runtime, parsedError).asObject(runtime);
344
+ auto data = bridging::toJs(runtime, processedError).asObject(runtime);
342
345
 
343
346
  auto isComponentError =
344
347
  isTruthy(runtime, errorObj.getProperty(runtime, "isComponentError"));
@@ -348,7 +351,7 @@ void JsErrorHandler::handleErrorWithCppPipeline(
348
351
  auto console = runtime.global().getPropertyAsObject(runtime, "console");
349
352
  auto errorFn = console.getPropertyAsFunction(runtime, "error");
350
353
  auto finalMessage =
351
- jsi::String::createFromUtf8(runtime, parsedError.message);
354
+ jsi::String::createFromUtf8(runtime, processedError.message);
352
355
  errorFn.callWithThis(runtime, console, finalMessage);
353
356
  }
354
357
 
@@ -383,14 +386,19 @@ void JsErrorHandler::handleErrorWithCppPipeline(
383
386
  return;
384
387
  }
385
388
 
386
- if (isFatal) {
387
- if (_hasHandledFatalError) {
388
- return;
389
+ auto errorType = errorObj.getProperty(runtime, "type");
390
+ auto isWarn = isEqualTo(runtime, errorType, "warn");
391
+
392
+ if (isFatal || !isWarn) {
393
+ if (isFatal) {
394
+ if (_hasHandledFatalError) {
395
+ return;
396
+ }
397
+ _hasHandledFatalError = true;
389
398
  }
390
- _hasHandledFatalError = true;
391
- }
392
399
 
393
- _onJsError(runtime, parsedError);
400
+ _onJsError(runtime, processedError);
401
+ }
394
402
  }
395
403
 
396
404
  void JsErrorHandler::registerErrorListener(
@@ -15,7 +15,7 @@ namespace facebook::react {
15
15
 
16
16
  class JsErrorHandler {
17
17
  public:
18
- struct ParsedError {
18
+ struct ProcessedError {
19
19
  struct StackFrame {
20
20
  std::optional<std::string> file;
21
21
  std::string methodName;
@@ -34,11 +34,13 @@ class JsErrorHandler {
34
34
  int id;
35
35
  bool isFatal;
36
36
  jsi::Object extraData;
37
- friend std::ostream& operator<<(std::ostream& os, const ParsedError& error);
37
+ friend std::ostream& operator<<(
38
+ std::ostream& os,
39
+ const ProcessedError& error);
38
40
  };
39
41
 
40
42
  using OnJsError =
41
- std::function<void(jsi::Runtime& runtime, const ParsedError& error)>;
43
+ std::function<void(jsi::Runtime& runtime, const ProcessedError& error)>;
42
44
 
43
45
  explicit JsErrorHandler(OnJsError onJsError);
44
46
  ~JsErrorHandler();