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
@@ -7,7 +7,7 @@
7
7
 
8
8
  #include "Differentiator.h"
9
9
 
10
- #include <cxxreact/SystraceSection.h>
10
+ #include <cxxreact/TraceSection.h>
11
11
  #include <react/debug/react_native_assert.h>
12
12
  #include <react/featureflags/ReactNativeFeatureFlags.h>
13
13
  #include <react/renderer/core/LayoutableShadowNode.h>
@@ -50,6 +50,33 @@ bool ShadowViewNodePair::operator!=(const ShadowViewNodePair& rhs) const {
50
50
  return !(*this == rhs);
51
51
  }
52
52
 
53
+ #ifdef DEBUG_LOGS_DIFFER
54
+ static std::ostream& operator<<(
55
+ std::ostream& out,
56
+ const ShadowViewNodePair& pair) {
57
+ out << pair.shadowView.tag;
58
+ if (!pair.isConcreteView) {
59
+ out << '\'';
60
+ }
61
+ if (pair.flattened) {
62
+ out << '*';
63
+ }
64
+ return out;
65
+ }
66
+
67
+ static std::ostream& operator<<(
68
+ std::ostream& out,
69
+ std::vector<ShadowViewNodePair*> vec) {
70
+ for (int i = 0; i < vec.size(); i++) {
71
+ if (i > 0) {
72
+ out << ", ";
73
+ }
74
+ out << *vec[i];
75
+ }
76
+ return out;
77
+ }
78
+ #endif
79
+
53
80
  /*
54
81
  * Extremely simple and naive implementation of a map.
55
82
  * The map is simple but it's optimized for particular constraints that we have
@@ -182,6 +209,21 @@ class TinyMap final {
182
209
  size_t erasedAtFront_{0};
183
210
  };
184
211
 
212
+ #ifdef DEBUG_LOGS_DIFFER
213
+ template <typename KeyT, typename ValueT>
214
+ static std::ostream& operator<<(std::ostream& out, TinyMap<KeyT, ValueT>& map) {
215
+ auto it = map.begin();
216
+ if (it != map.end()) {
217
+ out << *it->second;
218
+ ++it;
219
+ }
220
+ for (; it != map.end(); ++it) {
221
+ out << ", " << *it->second;
222
+ }
223
+ return out;
224
+ }
225
+ #endif
226
+
185
227
  /*
186
228
  * Sorting comparator for `reorderInPlaceIfNeeded`.
187
229
  */
@@ -365,7 +407,7 @@ static_assert(
365
407
  static void calculateShadowViewMutations(
366
408
  ViewNodePairScope& scope,
367
409
  ShadowViewMutation::List& mutations,
368
- const ShadowView& parentShadowView,
410
+ Tag parentTag,
369
411
  std::vector<ShadowViewNodePair*>&& oldChildPairs,
370
412
  std::vector<ShadowViewNodePair*>&& newChildPairs);
371
413
 
@@ -384,7 +426,7 @@ static void updateMatchedPairSubtrees(
384
426
  OrderedMutationInstructionContainer& mutationContainer,
385
427
  TinyMap<Tag, ShadowViewNodePair*>& newRemainingPairs,
386
428
  std::vector<ShadowViewNodePair*>& oldChildPairs,
387
- const ShadowView& parentShadowView,
429
+ Tag parentTag,
388
430
  const ShadowViewNodePair& oldPair,
389
431
  const ShadowViewNodePair& newPair);
390
432
 
@@ -392,7 +434,7 @@ static void updateMatchedPair(
392
434
  OrderedMutationInstructionContainer& mutationContainer,
393
435
  bool oldNodeFoundInOrder,
394
436
  bool newNodeFoundInOrder,
395
- const ShadowView& parentShadowView,
437
+ Tag parentTag,
396
438
  const ShadowViewNodePair& oldPair,
397
439
  const ShadowViewNodePair& newPair);
398
440
 
@@ -400,9 +442,10 @@ static void calculateShadowViewMutationsFlattener(
400
442
  ViewNodePairScope& scope,
401
443
  ReparentMode reparentMode,
402
444
  OrderedMutationInstructionContainer& mutationContainer,
403
- const ShadowView& parentShadowView,
445
+ Tag parentTag,
404
446
  TinyMap<Tag, ShadowViewNodePair*>& unvisitedOtherNodes,
405
447
  const ShadowViewNodePair& node,
448
+ Tag parentTagForUpdate,
406
449
  TinyMap<Tag, ShadowViewNodePair*>* parentSubVisitedOtherNewNodes = nullptr,
407
450
  TinyMap<Tag, ShadowViewNodePair*>* parentSubVisitedOtherOldNodes = nullptr);
408
451
 
@@ -419,7 +462,7 @@ static void updateMatchedPairSubtrees(
419
462
  OrderedMutationInstructionContainer& mutationContainer,
420
463
  TinyMap<Tag, ShadowViewNodePair*>& newRemainingPairs,
421
464
  std::vector<ShadowViewNodePair*>& oldChildPairs,
422
- const ShadowView& parentShadowView,
465
+ Tag parentTag,
423
466
  const ShadowViewNodePair& oldPair,
424
467
  const ShadowViewNodePair& newPair) {
425
468
  // Are we flattening or unflattening either one? If node was
@@ -431,11 +474,10 @@ static void updateMatchedPairSubtrees(
431
474
  // We are either flattening or unflattening this node.
432
475
  if (oldPair.flattened != newPair.flattened) {
433
476
  DEBUG_LOGS({
434
- LOG(ERROR)
435
- << "Differ: flattening or unflattening in updateMatchedPairSubtrees: ["
436
- << oldPair.shadowView.tag << "] [" << newPair.shadowView.tag << "] "
437
- << oldPair.flattened << " " << newPair.flattened << " with parent: ["
438
- << parentShadowView.tag << "]";
477
+ LOG(ERROR) << "Differ: "
478
+ << (newPair.flattened ? "flattening" : "unflattening")
479
+ << " in updateMatchedPairSubtrees: " << oldPair << " and "
480
+ << newPair << " with parent [" << parentTag << "]";
439
481
  });
440
482
 
441
483
  // Flattening
@@ -448,9 +490,10 @@ static void updateMatchedPairSubtrees(
448
490
  scope,
449
491
  ReparentMode::Flatten,
450
492
  mutationContainer,
451
- parentShadowView,
493
+ parentTag,
452
494
  newRemainingPairs,
453
- oldPair);
495
+ oldPair,
496
+ oldPair.shadowView.tag);
454
497
  }
455
498
  // Unflattening
456
499
  else {
@@ -478,9 +521,10 @@ static void updateMatchedPairSubtrees(
478
521
  scope,
479
522
  ReparentMode::Unflatten,
480
523
  mutationContainer,
481
- parentShadowView,
524
+ parentTag,
482
525
  unvisitedOldChildPairs,
483
- newPair);
526
+ newPair,
527
+ parentTag);
484
528
 
485
529
  // If old nodes were not visited, we know that we can delete
486
530
  // them now. They will be removed from the hierarchy by the
@@ -519,7 +563,7 @@ static void updateMatchedPairSubtrees(
519
563
  *(newGrandChildPairsSize != 0u
520
564
  ? &mutationContainer.downwardMutations
521
565
  : &mutationContainer.destructiveDownwardMutations),
522
- oldPair.shadowView,
566
+ oldPair.shadowView.tag,
523
567
  std::move(oldGrandChildPairs),
524
568
  std::move(newGrandChildPairs));
525
569
  }
@@ -537,7 +581,7 @@ static void updateMatchedPair(
537
581
  OrderedMutationInstructionContainer& mutationContainer,
538
582
  bool oldNodeFoundInOrder,
539
583
  bool newNodeFoundInOrder,
540
- const ShadowView& parentShadowView,
584
+ Tag parentTag,
541
585
  const ShadowViewNodePair& oldPair,
542
586
  const ShadowViewNodePair& newPair) {
543
587
  oldPair.otherTreePair = &newPair;
@@ -550,7 +594,7 @@ static void updateMatchedPair(
550
594
  if (newNodeFoundInOrder) {
551
595
  mutationContainer.insertMutations.push_back(
552
596
  ShadowViewMutation::InsertMutation(
553
- parentShadowView,
597
+ parentTag,
554
598
  newPair.shadowView,
555
599
  static_cast<int>(newPair.mountIndex)));
556
600
  }
@@ -560,7 +604,7 @@ static void updateMatchedPair(
560
604
  if (oldNodeFoundInOrder) {
561
605
  mutationContainer.removeMutations.push_back(
562
606
  ShadowViewMutation::RemoveMutation(
563
- parentShadowView,
607
+ parentTag,
564
608
  oldPair.shadowView,
565
609
  static_cast<int>(oldPair.mountIndex)));
566
610
  }
@@ -573,7 +617,7 @@ static void updateMatchedPair(
573
617
  if (oldNodeFoundInOrder && !newNodeFoundInOrder) {
574
618
  mutationContainer.removeMutations.push_back(
575
619
  ShadowViewMutation::RemoveMutation(
576
- parentShadowView,
620
+ parentTag,
577
621
  newPair.shadowView,
578
622
  static_cast<int>(oldPair.mountIndex)));
579
623
  }
@@ -584,7 +628,7 @@ static void updateMatchedPair(
584
628
  if (oldPair.shadowView != newPair.shadowView) {
585
629
  mutationContainer.updateMutations.push_back(
586
630
  ShadowViewMutation::UpdateMutation(
587
- oldPair.shadowView, newPair.shadowView, parentShadowView));
631
+ oldPair.shadowView, newPair.shadowView, parentTag));
588
632
  }
589
633
  }
590
634
  }
@@ -621,52 +665,32 @@ static void updateMatchedPair(
621
665
  * performed in the subtree. If it *is* in the map, it means the node is not
622
666
  * in the Tree, and should be Deleted/Created **after this function is
623
667
  * called**, by the caller.
668
+ *
669
+ * @param parentTag parent under which nodes should be mounted/unmounted
670
+ * @param parentTagForUpdate current parent in which node is mounted,
671
+ * used for update mutations
624
672
  */
625
673
  static void calculateShadowViewMutationsFlattener(
626
674
  ViewNodePairScope& scope,
627
675
  ReparentMode reparentMode,
628
676
  OrderedMutationInstructionContainer& mutationContainer,
629
- const ShadowView& parentShadowView,
677
+ Tag parentTag,
630
678
  TinyMap<Tag, ShadowViewNodePair*>& unvisitedOtherNodes,
631
679
  const ShadowViewNodePair& node,
680
+ Tag parentTagForUpdate,
632
681
  TinyMap<Tag, ShadowViewNodePair*>* parentSubVisitedOtherNewNodes,
633
682
  TinyMap<Tag, ShadowViewNodePair*>* parentSubVisitedOtherOldNodes) {
634
- DEBUG_LOGS({
635
- LOG(ERROR) << "Differ Flattener 1: "
636
- << (reparentMode == ReparentMode::Unflatten ? "Unflattening"
637
- : "Flattening")
638
- << " [" << node.shadowView.tag << "]";
639
- });
640
-
641
683
  // Step 1: iterate through entire tree
642
684
  std::vector<ShadowViewNodePair*> treeChildren =
643
685
  sliceChildShadowNodeViewPairsFromViewNodePair(node, scope);
644
686
 
645
687
  DEBUG_LOGS({
646
- LOG(ERROR) << "Differ Flattener 1.4: "
688
+ LOG(ERROR) << "Differ Flattener: "
647
689
  << (reparentMode == ReparentMode::Unflatten ? "Unflattening"
648
690
  : "Flattening")
649
691
  << " [" << node.shadowView.tag << "]";
650
- LOG(ERROR) << "Differ Flattener Entry: Child Pairs: ";
651
- std::string strTreeChildPairs;
652
- for (size_t k = 0; k < treeChildren.size(); k++) {
653
- strTreeChildPairs.append(std::to_string(treeChildren[k]->shadowView.tag));
654
- strTreeChildPairs.append(treeChildren[k]->isConcreteView ? "" : "'");
655
- strTreeChildPairs.append(treeChildren[k]->flattened ? "*" : "");
656
- strTreeChildPairs.append(", ");
657
- }
658
- std::string strListChildPairs;
659
- for (auto& unvisitedNode : unvisitedOtherNodes) {
660
- strListChildPairs.append(
661
- std::to_string(unvisitedNode.second->shadowView.tag));
662
- strListChildPairs.append(unvisitedNode.second->isConcreteView ? "" : "'");
663
- strListChildPairs.append(unvisitedNode.second->flattened ? "*" : "");
664
- strListChildPairs.append(", ");
665
- }
666
- LOG(ERROR) << "Differ Flattener Entry: Tree Child Pairs: "
667
- << strTreeChildPairs;
668
- LOG(ERROR) << "Differ Flattener Entry: List Child Pairs: "
669
- << strListChildPairs;
692
+ LOG(ERROR) << "> Tree Child Pairs: " << treeChildren;
693
+ LOG(ERROR) << "> List Child Pairs: " << unvisitedOtherNodes;
670
694
  });
671
695
 
672
696
  // Views in other tree that are visited by sub-flattening or
@@ -777,13 +801,13 @@ static void calculateShadowViewMutationsFlattener(
777
801
  treeChildPair.otherTreePair->isConcreteView) {
778
802
  mutationContainer.removeMutations.push_back(
779
803
  ShadowViewMutation::RemoveMutation(
780
- node.shadowView,
804
+ node.shadowView.tag,
781
805
  treeChildPair.otherTreePair->shadowView,
782
806
  static_cast<int>(treeChildPair.mountIndex)));
783
807
  } else {
784
808
  mutationContainer.removeMutations.push_back(
785
809
  ShadowViewMutation::RemoveMutation(
786
- node.shadowView,
810
+ node.shadowView.tag,
787
811
  treeChildPair.shadowView,
788
812
  static_cast<int>(treeChildPair.mountIndex)));
789
813
  }
@@ -792,7 +816,7 @@ static void calculateShadowViewMutationsFlattener(
792
816
  // we can safely insert it without checking in the other tree
793
817
  mutationContainer.insertMutations.push_back(
794
818
  ShadowViewMutation::InsertMutation(
795
- node.shadowView,
819
+ node.shadowView.tag,
796
820
  treeChildPair.shadowView,
797
821
  static_cast<int>(treeChildPair.mountIndex)));
798
822
  }
@@ -838,11 +862,18 @@ static void calculateShadowViewMutationsFlattener(
838
862
  // ShadowNode.
839
863
  if (newTreeNodePair.shadowView != oldTreeNodePair.shadowView &&
840
864
  newTreeNodePair.isConcreteView && oldTreeNodePair.isConcreteView) {
865
+ // We execute updates before creates, so pass the current parent in when
866
+ // unflattening.
867
+ // TODO: whenever we insert, we already update the relevant properties,
868
+ // so this update is redundant. We should remove this.
841
869
  mutationContainer.updateMutations.push_back(
842
870
  ShadowViewMutation::UpdateMutation(
843
871
  oldTreeNodePair.shadowView,
844
872
  newTreeNodePair.shadowView,
845
- node.shadowView));
873
+ ReactNativeFeatureFlags::
874
+ fixDifferentiatorEmittingUpdatesWithWrongParentTag()
875
+ ? parentTagForUpdate
876
+ : node.shadowView.tag));
846
877
  }
847
878
 
848
879
  // Update children if appropriate.
@@ -852,7 +883,7 @@ static void calculateShadowViewMutationsFlattener(
852
883
  calculateShadowViewMutations(
853
884
  innerScope,
854
885
  mutationContainer.downwardMutations,
855
- newTreeNodePair.shadowView,
886
+ newTreeNodePair.shadowView.tag,
856
887
  sliceChildShadowNodeViewPairsFromViewNodePair(
857
888
  oldTreeNodePair, innerScope),
858
889
  sliceChildShadowNodeViewPairsFromViewNodePair(
@@ -873,10 +904,13 @@ static void calculateShadowViewMutationsFlattener(
873
904
  childReparentMode,
874
905
  mutationContainer,
875
906
  (reparentMode == ReparentMode::Flatten
876
- ? parentShadowView
877
- : newTreeNodePair.shadowView),
907
+ ? parentTag
908
+ : newTreeNodePair.shadowView.tag),
878
909
  unvisitedOtherNodes,
879
910
  treeChildPair,
911
+ (reparentMode == ReparentMode::Flatten
912
+ ? oldTreeNodePair.shadowView.tag
913
+ : parentTag),
880
914
  subVisitedNewMap,
881
915
  subVisitedOldMap);
882
916
  } else {
@@ -914,10 +948,13 @@ static void calculateShadowViewMutationsFlattener(
914
948
  ReparentMode::Flatten,
915
949
  mutationContainer,
916
950
  (reparentMode == ReparentMode::Flatten
917
- ? parentShadowView
918
- : newTreeNodePair.shadowView),
951
+ ? parentTag
952
+ : newTreeNodePair.shadowView.tag),
919
953
  unvisitedRecursiveChildPairs,
920
954
  oldTreeNodePair,
955
+ (reparentMode == ReparentMode::Flatten
956
+ ? oldTreeNodePair.shadowView.tag
957
+ : parentTag),
921
958
  subVisitedNewMap,
922
959
  subVisitedOldMap);
923
960
  }
@@ -929,10 +966,13 @@ static void calculateShadowViewMutationsFlattener(
929
966
  ReparentMode::Unflatten,
930
967
  mutationContainer,
931
968
  (reparentMode == ReparentMode::Flatten
932
- ? parentShadowView
933
- : newTreeNodePair.shadowView),
969
+ ? parentTag
970
+ : newTreeNodePair.shadowView.tag),
934
971
  unvisitedRecursiveChildPairs,
935
972
  newTreeNodePair,
973
+ (reparentMode == ReparentMode::Flatten
974
+ ? oldTreeNodePair.shadowView.tag
975
+ : parentTag),
936
976
  subVisitedNewMap,
937
977
  subVisitedOldMap);
938
978
 
@@ -1028,7 +1068,7 @@ static void calculateShadowViewMutationsFlattener(
1028
1068
  calculateShadowViewMutations(
1029
1069
  innerScope,
1030
1070
  mutationContainer.destructiveDownwardMutations,
1031
- treeChildPair.shadowView,
1071
+ treeChildPair.shadowView.tag,
1032
1072
  sliceChildShadowNodeViewPairsFromViewNodePair(
1033
1073
  treeChildPair, innerScope),
1034
1074
  {});
@@ -1042,7 +1082,7 @@ static void calculateShadowViewMutationsFlattener(
1042
1082
  calculateShadowViewMutations(
1043
1083
  innerScope,
1044
1084
  mutationContainer.downwardMutations,
1045
- treeChildPair.shadowView,
1085
+ treeChildPair.shadowView.tag,
1046
1086
  {},
1047
1087
  sliceChildShadowNodeViewPairsFromViewNodePair(
1048
1088
  treeChildPair, innerScope));
@@ -1054,7 +1094,7 @@ static void calculateShadowViewMutationsFlattener(
1054
1094
  static void calculateShadowViewMutations(
1055
1095
  ViewNodePairScope& scope,
1056
1096
  ShadowViewMutation::List& mutations,
1057
- const ShadowView& parentShadowView,
1097
+ Tag parentTag,
1058
1098
  std::vector<ShadowViewNodePair*>&& oldChildPairs,
1059
1099
  std::vector<ShadowViewNodePair*>&& newChildPairs) {
1060
1100
  if (oldChildPairs.empty() && newChildPairs.empty()) {
@@ -1067,28 +1107,9 @@ static void calculateShadowViewMutations(
1067
1107
  auto mutationContainer = OrderedMutationInstructionContainer{};
1068
1108
 
1069
1109
  DEBUG_LOGS({
1070
- LOG(ERROR) << "Differ Entry: Child Pairs of node: [" << parentShadowView.tag
1071
- << "]";
1072
- std::string strOldChildPairs;
1073
- for (size_t oldIndex = 0; oldIndex < oldChildPairs.size(); oldIndex++) {
1074
- strOldChildPairs.append(
1075
- std::to_string(oldChildPairs[oldIndex]->shadowView.tag));
1076
- strOldChildPairs.append(
1077
- oldChildPairs[oldIndex]->isConcreteView ? "" : "'");
1078
- strOldChildPairs.append(oldChildPairs[oldIndex]->flattened ? "*" : "");
1079
- strOldChildPairs.append(", ");
1080
- }
1081
- std::string strNewChildPairs;
1082
- for (size_t newIndex = 0; newIndex < newChildPairs.size(); newIndex++) {
1083
- strNewChildPairs.append(
1084
- std::to_string(newChildPairs[newIndex]->shadowView.tag));
1085
- strNewChildPairs.append(
1086
- newChildPairs[newIndex]->isConcreteView ? "" : "'");
1087
- strNewChildPairs.append(newChildPairs[newIndex]->flattened ? "*" : "");
1088
- strNewChildPairs.append(", ");
1089
- }
1090
- LOG(ERROR) << "Differ Entry: Old Child Pairs: " << strOldChildPairs;
1091
- LOG(ERROR) << "Differ Entry: New Child Pairs: " << strNewChildPairs;
1110
+ LOG(ERROR) << "Differ Entry: Child Pairs of node: [" << parentTag << "]";
1111
+ LOG(ERROR) << "> Old Child Pairs: " << oldChildPairs;
1112
+ LOG(ERROR) << "> New Child Pairs: " << newChildPairs;
1092
1113
  });
1093
1114
 
1094
1115
  // Stage 1: Collecting `Update` mutations
@@ -1102,7 +1123,7 @@ static void calculateShadowViewMutations(
1102
1123
  LOG(ERROR) << "Differ Branch 1.1: Tags Different: ["
1103
1124
  << oldChildPair.shadowView.tag << "] ["
1104
1125
  << newChildPair.shadowView.tag << "]" << " with parent: ["
1105
- << parentShadowView.tag << "]";
1126
+ << parentTag << "]";
1106
1127
  });
1107
1128
 
1108
1129
  // Totally different nodes, updating is impossible.
@@ -1117,23 +1138,16 @@ static void calculateShadowViewMutations(
1117
1138
  }
1118
1139
 
1119
1140
  DEBUG_LOGS({
1120
- LOG(ERROR) << "Differ Branch 1.2: Same tags, update and recurse: ["
1121
- << oldChildPair.shadowView.tag << "]"
1122
- << (oldChildPair.flattened ? " (flattened)" : "")
1123
- << (oldChildPair.isConcreteView ? " (concrete)" : "") << "["
1124
- << newChildPair.shadowView.tag << "]"
1125
- << (newChildPair.flattened ? " (flattened)" : "")
1126
- << (newChildPair.isConcreteView ? " (concrete)" : "")
1127
- << " with parent: [" << parentShadowView.tag << "]";
1141
+ LOG(ERROR) << "Differ Branch 1.2: Same tags, update and recurse: "
1142
+ << oldChildPair << " and " << newChildPair << " with parent: ["
1143
+ << parentTag << "]";
1128
1144
  });
1129
1145
 
1130
1146
  if (newChildPair.isConcreteView &&
1131
1147
  oldChildPair.shadowView != newChildPair.shadowView) {
1132
1148
  mutationContainer.updateMutations.push_back(
1133
1149
  ShadowViewMutation::UpdateMutation(
1134
- oldChildPair.shadowView,
1135
- newChildPair.shadowView,
1136
- parentShadowView));
1150
+ oldChildPair.shadowView, newChildPair.shadowView, parentTag));
1137
1151
  }
1138
1152
 
1139
1153
  // Recursively update tree if ShadowNode pointers are not equal
@@ -1150,7 +1164,7 @@ static void calculateShadowViewMutations(
1150
1164
  *(newGrandChildPairsSize != 0u
1151
1165
  ? &mutationContainer.downwardMutations
1152
1166
  : &mutationContainer.destructiveDownwardMutations),
1153
- oldChildPair.shadowView,
1167
+ oldChildPair.shadowView.tag,
1154
1168
  std::move(oldGrandChildPairs),
1155
1169
  std::move(newGrandChildPairs));
1156
1170
  }
@@ -1165,9 +1179,8 @@ static void calculateShadowViewMutations(
1165
1179
  const auto& oldChildPair = *oldChildPairs[index];
1166
1180
 
1167
1181
  DEBUG_LOGS({
1168
- LOG(ERROR) << "Differ Branch 2: Deleting Tag/Tree: ["
1169
- << oldChildPair.shadowView.tag << "]" << " with parent: ["
1170
- << parentShadowView.tag << "]";
1182
+ LOG(ERROR) << "Differ Branch 2: Deleting Tag/Tree: " << oldChildPair
1183
+ << " with parent: [" << parentTag << "]";
1171
1184
  });
1172
1185
 
1173
1186
  if (!oldChildPair.isConcreteView) {
@@ -1178,7 +1191,7 @@ static void calculateShadowViewMutations(
1178
1191
  ShadowViewMutation::DeleteMutation(oldChildPair.shadowView));
1179
1192
  mutationContainer.removeMutations.push_back(
1180
1193
  ShadowViewMutation::RemoveMutation(
1181
- parentShadowView,
1194
+ parentTag,
1182
1195
  oldChildPair.shadowView,
1183
1196
  static_cast<int>(oldChildPair.mountIndex)));
1184
1197
 
@@ -1188,7 +1201,7 @@ static void calculateShadowViewMutations(
1188
1201
  calculateShadowViewMutations(
1189
1202
  innerScope,
1190
1203
  mutationContainer.destructiveDownwardMutations,
1191
- oldChildPair.shadowView,
1204
+ oldChildPair.shadowView.tag,
1192
1205
  sliceChildShadowNodeViewPairsFromViewNodePair(
1193
1206
  oldChildPair, innerScope),
1194
1207
  {});
@@ -1200,9 +1213,8 @@ static void calculateShadowViewMutations(
1200
1213
  const auto& newChildPair = *newChildPairs[index];
1201
1214
 
1202
1215
  DEBUG_LOGS({
1203
- LOG(ERROR) << "Differ Branch 3: Creating Tag/Tree: ["
1204
- << newChildPair.shadowView.tag << "]" << " with parent: ["
1205
- << parentShadowView.tag << "]";
1216
+ LOG(ERROR) << "Differ Branch 3: Creating Tag/Tree: " << newChildPair
1217
+ << " with parent: [" << parentTag << "]";
1206
1218
  });
1207
1219
 
1208
1220
  if (!newChildPair.isConcreteView) {
@@ -1211,7 +1223,7 @@ static void calculateShadowViewMutations(
1211
1223
 
1212
1224
  mutationContainer.insertMutations.push_back(
1213
1225
  ShadowViewMutation::InsertMutation(
1214
- parentShadowView,
1226
+ parentTag,
1215
1227
  newChildPair.shadowView,
1216
1228
  static_cast<int>(newChildPair.mountIndex)));
1217
1229
  mutationContainer.createMutations.push_back(
@@ -1221,7 +1233,7 @@ static void calculateShadowViewMutations(
1221
1233
  calculateShadowViewMutations(
1222
1234
  innerScope,
1223
1235
  mutationContainer.downwardMutations,
1224
- newChildPair.shadowView,
1236
+ newChildPair.shadowView.tag,
1225
1237
  {},
1226
1238
  sliceChildShadowNodeViewPairsFromViewNodePair(
1227
1239
  newChildPair, innerScope));
@@ -1257,22 +1269,17 @@ static void calculateShadowViewMutations(
1257
1269
 
1258
1270
  if (newTag == oldTag) {
1259
1271
  DEBUG_LOGS({
1260
- LOG(ERROR) << "Differ Branch 5: Matched Tags at indices: "
1261
- << oldIndex << " " << newIndex << ": ["
1262
- << oldChildPair.shadowView.tag << "]"
1263
- << (oldChildPair.flattened ? "(flattened)" : "")
1264
- << (oldChildPair.isConcreteView ? "(concrete)" : "")
1265
- << " [" << newChildPair.shadowView.tag << "]"
1266
- << (newChildPair.flattened ? "(flattened)" : "")
1267
- << (newChildPair.isConcreteView ? "(concrete)" : "")
1268
- << " with parent: [" << parentShadowView.tag << "]";
1272
+ LOG(ERROR) << "Differ Branch 4: Matched Tags at indices: "
1273
+ << oldIndex << " and " << newIndex << ": "
1274
+ << oldChildPair << " and " << newChildPair
1275
+ << " with parent: [" << parentTag << "]";
1269
1276
  });
1270
1277
 
1271
1278
  updateMatchedPair(
1272
1279
  mutationContainer,
1273
1280
  true,
1274
1281
  true,
1275
- parentShadowView,
1282
+ parentTag,
1276
1283
  oldChildPair,
1277
1284
  newChildPair);
1278
1285
 
@@ -1281,7 +1288,7 @@ static void calculateShadowViewMutations(
1281
1288
  mutationContainer,
1282
1289
  newRemainingPairs,
1283
1290
  oldChildPairs,
1284
- parentShadowView,
1291
+ parentTag,
1285
1292
  oldChildPair,
1286
1293
  newChildPair);
1287
1294
 
@@ -1306,11 +1313,17 @@ static void calculateShadowViewMutations(
1306
1313
  if (insertedIt != newInsertedPairs.end()) {
1307
1314
  const auto& newChildPair = *insertedIt->second;
1308
1315
 
1316
+ DEBUG_LOGS({
1317
+ LOG(ERROR) << "Differ Branch 5: Founded reordered tags at indices: "
1318
+ << oldIndex << ": " << oldChildPair << " and "
1319
+ << newChildPair << " with parent: [" << parentTag << "]";
1320
+ });
1321
+
1309
1322
  updateMatchedPair(
1310
1323
  mutationContainer,
1311
1324
  true,
1312
1325
  false,
1313
- parentShadowView,
1326
+ parentTag,
1314
1327
  oldChildPair,
1315
1328
  newChildPair);
1316
1329
 
@@ -1319,7 +1332,7 @@ static void calculateShadowViewMutations(
1319
1332
  mutationContainer,
1320
1333
  newRemainingPairs,
1321
1334
  oldChildPairs,
1322
- parentShadowView,
1335
+ parentTag,
1323
1336
  oldChildPair,
1324
1337
  newChildPair);
1325
1338
 
@@ -1345,13 +1358,10 @@ static void calculateShadowViewMutations(
1345
1358
 
1346
1359
  DEBUG_LOGS({
1347
1360
  LOG(ERROR)
1348
- << "Differ Branch 9: Removing tag that was not reinserted: "
1349
- << oldIndex << ": [" << oldChildPair.shadowView.tag << "]"
1350
- << (oldChildPair.flattened ? " (flattened)" : "")
1351
- << (oldChildPair.isConcreteView ? " (concrete)" : "")
1352
- << " with parent: [" << parentShadowView.tag << "] "
1353
- << "node is in other tree? "
1354
- << (oldChildPair.inOtherTree() ? "yes" : "no");
1361
+ << "Differ Branch 6: Removing tag that was not re-inserted: "
1362
+ << oldChildPair << " with parent: [" << parentTag
1363
+ << "], which is " << (oldChildPair.inOtherTree() ? "" : "not ")
1364
+ << "in other tree";
1355
1365
  });
1356
1366
 
1357
1367
  // Edge case: node is not found in `newRemainingPairs`, due to
@@ -1373,7 +1383,7 @@ static void calculateShadowViewMutations(
1373
1383
  // hierarchy.
1374
1384
  mutationContainer.removeMutations.push_back(
1375
1385
  ShadowViewMutation::RemoveMutation(
1376
- parentShadowView,
1386
+ parentTag,
1377
1387
  otherTreeView,
1378
1388
  static_cast<int>(oldChildPair.mountIndex)));
1379
1389
  continue;
@@ -1381,7 +1391,7 @@ static void calculateShadowViewMutations(
1381
1391
 
1382
1392
  mutationContainer.removeMutations.push_back(
1383
1393
  ShadowViewMutation::RemoveMutation(
1384
- parentShadowView,
1394
+ parentTag,
1385
1395
  oldChildPair.shadowView,
1386
1396
  static_cast<int>(oldChildPair.mountIndex)));
1387
1397
 
@@ -1398,17 +1408,14 @@ static void calculateShadowViewMutations(
1398
1408
  auto& newChildPair = *newChildPairs[newIndex];
1399
1409
  DEBUG_LOGS({
1400
1410
  LOG(ERROR)
1401
- << "Differ Branch 10: Inserting tag/tree that was not (yet?) removed from hierarchy: "
1402
- << newIndex << "/" << newSize << ": ["
1403
- << newChildPair.shadowView.tag << "]"
1404
- << (newChildPair.flattened ? " (flattened)" : "")
1405
- << (newChildPair.isConcreteView ? " (concrete)" : "")
1406
- << " with parent: [" << parentShadowView.tag << "]";
1411
+ << "Differ Branch 7: Inserting tag/tree that was not (yet?) removed from hierarchy: "
1412
+ << newChildPair << " @ " << newIndex << "/" << newSize
1413
+ << " with parent: [" << parentTag << "]";
1407
1414
  });
1408
1415
  if (newChildPair.isConcreteView) {
1409
1416
  mutationContainer.insertMutations.push_back(
1410
1417
  ShadowViewMutation::InsertMutation(
1411
- parentShadowView,
1418
+ parentTag,
1412
1419
  newChildPair.shadowView,
1413
1420
  static_cast<int>(newChildPair.mountIndex)));
1414
1421
  }
@@ -1438,12 +1445,10 @@ static void calculateShadowViewMutations(
1438
1445
 
1439
1446
  DEBUG_LOGS({
1440
1447
  LOG(ERROR)
1441
- << "Differ Branch 11: Deleting tag/tree that was not in new hierarchy: "
1442
- << "[" << oldChildPair.shadowView.tag << "]"
1443
- << (oldChildPair.flattened ? "(flattened)" : "")
1444
- << (oldChildPair.isConcreteView ? "(concrete)" : "")
1448
+ << "Differ Branch 8: Deleting tag/tree that was not in new hierarchy: "
1449
+ << oldChildPair
1445
1450
  << (oldChildPair.inOtherTree() ? "(in other tree)" : "")
1446
- << " with parent: [" << parentShadowView.tag << "] ##"
1451
+ << " with parent: [" << parentTag << "] ##"
1447
1452
  << std::hash<ShadowView>{}(oldChildPair.shadowView);
1448
1453
  });
1449
1454
 
@@ -1458,7 +1463,7 @@ static void calculateShadowViewMutations(
1458
1463
  calculateShadowViewMutations(
1459
1464
  innerScope,
1460
1465
  mutationContainer.destructiveDownwardMutations,
1461
- oldChildPair.shadowView,
1466
+ oldChildPair.shadowView.tag,
1462
1467
  sliceChildShadowNodeViewPairsFromViewNodePair(
1463
1468
  oldChildPair, innerScope),
1464
1469
  {});
@@ -1480,12 +1485,10 @@ static void calculateShadowViewMutations(
1480
1485
 
1481
1486
  DEBUG_LOGS({
1482
1487
  LOG(ERROR)
1483
- << "Differ Branch 12: Inserting tag/tree that was not in old hierarchy: "
1484
- << "[" << newChildPair.shadowView.tag << "]"
1485
- << (newChildPair.flattened ? "(flattened)" : "")
1486
- << (newChildPair.isConcreteView ? "(concrete)" : "")
1488
+ << "Differ Branch 9: Inserting tag/tree that was not in old hierarchy: "
1489
+ << newChildPair
1487
1490
  << (newChildPair.inOtherTree() ? "(in other tree)" : "")
1488
- << " with parent: [" << parentShadowView.tag << "]";
1491
+ << " with parent: [" << parentTag << "]";
1489
1492
  });
1490
1493
 
1491
1494
  if (!newChildPair.isConcreteView) {
@@ -1502,7 +1505,7 @@ static void calculateShadowViewMutations(
1502
1505
  calculateShadowViewMutations(
1503
1506
  innerScope,
1504
1507
  mutationContainer.downwardMutations,
1505
- newChildPair.shadowView,
1508
+ newChildPair.shadowView.tag,
1506
1509
  {},
1507
1510
  sliceChildShadowNodeViewPairsFromViewNodePair(
1508
1511
  newChildPair, innerScope));
@@ -1543,7 +1546,7 @@ static void calculateShadowViewMutations(
1543
1546
  ShadowViewMutation::List calculateShadowViewMutations(
1544
1547
  const ShadowNode& oldRootShadowNode,
1545
1548
  const ShadowNode& newRootShadowNode) {
1546
- SystraceSection s("calculateShadowViewMutations");
1549
+ TraceSection s("calculateShadowViewMutations");
1547
1550
 
1548
1551
  // Root shadow nodes must be belong the same family.
1549
1552
  react_native_assert(
@@ -1567,7 +1570,7 @@ ShadowViewMutation::List calculateShadowViewMutations(
1567
1570
  calculateShadowViewMutations(
1568
1571
  innerViewNodePairScope,
1569
1572
  mutations,
1570
- ShadowView(oldRootShadowNode),
1573
+ oldRootShadowNode.getTag(),
1571
1574
  sliceChildShadowNodeViewPairs(
1572
1575
  ShadowViewNodePair{.shadowNode = &oldRootShadowNode},
1573
1576
  viewNodePairScope),
@@ -1575,6 +1578,38 @@ ShadowViewMutation::List calculateShadowViewMutations(
1575
1578
  ShadowViewNodePair{.shadowNode = &newRootShadowNode},
1576
1579
  viewNodePairScope));
1577
1580
 
1581
+ DEBUG_LOGS({
1582
+ LOG(ERROR) << "Differ Completed: " << mutations.size() << " mutations";
1583
+ for (size_t i = 0; i < mutations.size(); i++) {
1584
+ auto& mutation = mutations[i];
1585
+ switch (mutation.type) {
1586
+ case ShadowViewMutation::Type::Create:
1587
+ LOG(ERROR) << "[" << i << "] CREATE "
1588
+ << mutation.newChildShadowView.tag;
1589
+ break;
1590
+ case ShadowViewMutation::Type::Delete:
1591
+ LOG(ERROR) << "[" << i << "] DELETE "
1592
+ << mutation.oldChildShadowView.tag;
1593
+ break;
1594
+ case ShadowViewMutation::Type::Insert:
1595
+ LOG(ERROR) << "[" << i << "] INSERT "
1596
+ << mutation.newChildShadowView.tag << " INTO "
1597
+ << mutation.parentTag << " @ " << mutation.index;
1598
+ break;
1599
+ case ShadowViewMutation::Type::Remove:
1600
+ LOG(ERROR) << "[" << i << "] REMOVE "
1601
+ << mutation.oldChildShadowView.tag << " FROM "
1602
+ << mutation.parentTag << " @ " << mutation.index;
1603
+ break;
1604
+ case ShadowViewMutation::Type::Update:
1605
+ LOG(ERROR) << "[" << i << "] UPDATE "
1606
+ << mutation.newChildShadowView.tag << " IN "
1607
+ << mutation.parentTag;
1608
+ break;
1609
+ }
1610
+ }
1611
+ });
1612
+
1578
1613
  return mutations;
1579
1614
  }
1580
1615