react-native-tvos 0.77.0-0rc5 → 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 (655) 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/TV/TVFocusGuideView.js +0 -1
  37. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  38. package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
  39. package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
  40. package/Libraries/Components/TextInput/TextInput.js +6 -0
  41. package/Libraries/Components/View/ViewPropTypes.d.ts +8 -7
  42. package/Libraries/Components/View/ViewPropTypes.js +0 -9
  43. package/Libraries/Core/ReactNativeVersion.js +2 -2
  44. package/Libraries/Core/setUpBatchedBridge.js +1 -16
  45. package/Libraries/Core/setUpDeveloperTools.js +2 -3
  46. package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
  47. package/Libraries/Image/AssetSourceResolver.js +11 -0
  48. package/Libraries/Image/RCTImageLoader.mm +9 -1
  49. package/Libraries/Image/RCTImageView.mm +3 -3
  50. package/Libraries/Inspector/BorderBox.js +26 -14
  51. package/Libraries/Inspector/BoxInspector.js +60 -42
  52. package/Libraries/Inspector/ElementBox.js +55 -48
  53. package/Libraries/Inspector/StyleInspector.js +36 -30
  54. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  55. package/Libraries/Lists/FlatList.d.ts +1 -1
  56. package/Libraries/Modal/Modal.js +2 -0
  57. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
  58. package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
  59. package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
  60. package/Libraries/Network/RCTNetworking.android.js +24 -16
  61. package/Libraries/Network/RCTNetworking.ios.js +1 -46
  62. package/Libraries/Network/RCTNetworking.js.flow +1 -46
  63. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  64. package/Libraries/Pressability/Pressability.js +2 -2
  65. package/Libraries/ReactNative/UIManagerProperties.js +3 -1
  66. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
  67. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
  68. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
  69. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
  70. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
  71. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
  72. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
  73. package/Libraries/StyleSheet/processTransform.js +6 -0
  74. package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
  75. package/Libraries/Text/Text.d.ts +6 -1
  76. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
  77. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
  78. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
  79. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +26 -1
  80. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
  81. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
  82. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
  83. package/Libraries/Text/TextProps.js +2 -2
  84. package/Libraries/Utilities/BackHandler.android.js +5 -4
  85. package/Libraries/Utilities/BackHandler.ios.js +3 -4
  86. package/Libraries/Utilities/HMRClient.js +0 -28
  87. package/Libraries/Utilities/HMRClientProdShim.js +0 -1
  88. package/README-core.md +2 -2
  89. package/React/Base/RCTConvert.mm +3 -1
  90. package/React/Base/RCTVersion.m +2 -2
  91. package/React/CoreModules/RCTDevSettings.h +0 -1
  92. package/React/CoreModules/RCTDeviceInfo.mm +4 -0
  93. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
  94. package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
  95. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
  96. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
  97. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
  98. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
  99. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
  100. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
  101. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
  102. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
  103. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +107 -34
  104. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
  105. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
  106. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -4
  107. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
  108. package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
  109. package/React/Fabric/RCTScheduler.mm +1 -1
  110. package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
  111. package/React/Modules/RCTUIManager.mm +1 -2
  112. package/React/React-RCTFBReactNativeSpec.podspec +1 -0
  113. package/React/React-RCTFabric.podspec +3 -2
  114. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
  115. package/React/Views/RCTComponentData.mm +1 -5
  116. package/React/Views/RCTLayout.m +3 -0
  117. package/React/Views/RCTShadowView.h +3 -3
  118. package/React/Views/RCTShadowView.m +52 -20
  119. package/React/Views/RCTTVView.m +5 -2
  120. package/React/Views/RCTView.m +6 -2
  121. package/React/Views/RCTViewManager.m +0 -7
  122. package/React/Views/ScrollView/RCTScrollView.m +109 -45
  123. package/React-Core.podspec +1 -1
  124. package/ReactAndroid/api/ReactAndroid.api +123 -227
  125. package/ReactAndroid/build.gradle.kts +8 -13
  126. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +13 -3
  127. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
  128. package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
  129. package/ReactAndroid/gradle.properties +3 -3
  130. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
  131. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
  132. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
  133. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +8 -0
  134. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +8 -0
  135. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +37 -0
  136. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
  137. package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
  138. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
  139. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +1 -1
  140. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
  141. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
  142. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
  143. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
  144. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
  145. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
  146. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
  147. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
  148. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
  149. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
  150. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
  151. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
  152. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +39 -8
  159. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
  160. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
  161. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
  162. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
  163. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
  164. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
  165. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
  166. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
  167. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
  168. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
  169. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
  170. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
  171. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
  172. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
  175. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
  176. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
  177. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
  178. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
  179. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
  180. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  181. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
  182. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
  183. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
  184. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
  185. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
  195. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
  196. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
  197. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
  198. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
  200. package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
  201. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
  202. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
  203. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
  204. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
  205. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
  206. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
  209. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
  211. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
  213. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
  214. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
  215. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
  216. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
  217. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
  218. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
  219. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
  220. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +56 -3
  222. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
  223. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
  224. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
  225. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
  226. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
  227. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
  228. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
  229. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
  230. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
  231. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +16 -2
  232. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
  233. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
  234. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
  235. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
  236. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
  237. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +91 -20
  238. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +14 -2
  239. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
  240. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
  241. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
  242. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
  243. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
  244. package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
  245. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
  246. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
  247. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
  248. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
  249. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
  250. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  251. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
  252. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
  253. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
  254. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
  255. package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
  256. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
  257. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
  258. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
  259. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
  260. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
  261. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
  262. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
  263. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
  264. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  265. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
  266. package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
  267. package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
  268. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
  269. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
  270. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
  271. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
  272. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
  273. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
  274. package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
  275. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
  276. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
  277. package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
  278. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
  279. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
  280. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
  281. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
  282. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
  283. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
  284. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
  285. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
  286. package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
  287. package/ReactCommon/React-Fabric.podspec +8 -0
  288. package/ReactCommon/React-FabricComponents.podspec +2 -2
  289. package/ReactCommon/React-FabricImage.podspec +4 -1
  290. package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
  291. package/ReactCommon/cxxreact/Instance.cpp +6 -6
  292. package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
  293. package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
  294. package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
  295. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
  296. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  297. package/ReactCommon/cxxreact/SystraceSection.h +8 -141
  298. package/ReactCommon/cxxreact/TraceSection.h +181 -0
  299. package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
  300. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
  301. package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
  302. package/ReactCommon/jsc/React-jsc.podspec +1 -1
  303. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
  304. package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
  305. package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
  306. package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
  307. package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
  308. package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
  309. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
  310. package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
  311. package/ReactCommon/jsi/jsi/decorator.h +61 -0
  312. package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
  313. package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
  314. package/ReactCommon/jsi/jsi/jsi.h +81 -0
  315. package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
  316. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
  317. package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
  318. package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
  319. package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
  320. package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
  321. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
  322. package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
  323. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
  324. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
  325. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
  326. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
  327. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
  328. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
  329. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
  330. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
  331. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
  332. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
  333. package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
  334. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
  335. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
  336. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
  337. package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
  338. package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
  339. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
  340. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
  341. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
  342. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
  343. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
  344. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
  345. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
  346. package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
  347. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
  348. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
  349. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +13 -4
  350. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -0
  351. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +19 -11
  352. package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
  353. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
  354. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
  355. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
  356. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
  357. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  358. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
  359. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
  360. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
  361. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
  362. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  363. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
  364. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
  365. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  366. package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
  367. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
  368. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
  369. package/ReactCommon/react/renderer/animations/primitives.h +1 -1
  370. package/ReactCommon/react/renderer/animations/utils.h +3 -4
  371. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
  372. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +85 -29
  373. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  374. package/ReactCommon/react/renderer/attributedstring/conversions.h +5 -0
  375. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
  376. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
  377. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
  378. package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
  379. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
  380. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  381. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
  382. package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
  383. package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
  384. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
  385. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
  386. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
  387. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
  388. package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
  389. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
  390. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
  391. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
  392. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
  393. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
  394. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
  395. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +12 -0
  396. package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
  397. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
  398. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
  399. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
  400. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
  401. package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
  402. package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
  403. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
  404. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
  405. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
  406. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
  407. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
  408. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
  409. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
  410. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
  411. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
  412. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
  413. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
  414. package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
  415. package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
  416. package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
  417. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
  418. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
  419. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
  420. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  421. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
  422. package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
  423. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
  424. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
  425. package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
  426. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
  427. package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
  428. package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
  429. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
  430. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
  431. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
  432. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
  433. package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
  434. package/ReactCommon/react/renderer/core/Props.cpp +16 -5
  435. package/ReactCommon/react/renderer/core/Props.h +11 -4
  436. package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
  437. package/ReactCommon/react/renderer/core/RawProps.h +10 -1
  438. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
  439. package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
  440. package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
  441. package/ReactCommon/react/renderer/core/RawValue.h +315 -22
  442. package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
  443. package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
  444. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
  445. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
  446. package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
  447. package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
  448. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
  449. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
  450. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
  451. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
  452. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
  453. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
  454. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
  455. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
  456. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  457. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
  458. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  459. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
  460. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
  461. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
  462. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
  463. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
  464. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
  465. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
  466. package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
  467. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
  468. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
  469. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
  470. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
  471. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
  472. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
  473. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
  474. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
  475. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
  476. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
  477. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
  478. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
  479. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
  480. package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
  481. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
  482. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
  483. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
  484. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
  485. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  486. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
  487. package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
  488. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
  489. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
  490. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
  491. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +11 -5
  492. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
  493. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
  494. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
  495. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
  496. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
  497. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
  498. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
  499. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
  500. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
  501. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
  502. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
  503. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
  504. package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
  505. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
  506. package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
  507. package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
  508. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
  509. package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
  510. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
  511. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
  512. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
  513. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
  514. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
  515. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
  516. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
  517. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
  518. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
  519. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
  520. package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
  521. package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
  522. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
  523. package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
  524. package/ReactCommon/yoga/yoga/YGValue.h +3 -0
  525. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
  526. package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
  527. package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
  528. package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
  529. package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
  530. package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
  531. package/ReactCommon/yoga/yoga/node/Node.h +5 -5
  532. package/ReactCommon/yoga/yoga/style/Style.h +14 -12
  533. package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
  534. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
  535. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  536. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
  537. package/gradle/libs.versions.toml +6 -2
  538. package/index.js +5 -0
  539. package/package.json +17 -15
  540. package/react-native.config.js +6 -0
  541. package/scripts/cocoapods/codegen_utils.rb +4 -4
  542. package/scripts/cocoapods/new_architecture.rb +3 -3
  543. package/scripts/cocoapods/utils.rb +4 -3
  544. package/scripts/codegen/generate-artifacts-executor.js +8 -4
  545. package/scripts/generate-codegen-artifacts.js +6 -1
  546. package/scripts/react-native-xcode.sh +1 -1
  547. package/scripts/react_native_pods.rb +3 -3
  548. package/scripts/xcode/ccache-clang++.sh +1 -1
  549. package/scripts/xcode/ccache-clang.sh +1 -1
  550. package/sdks/.hermesversion +1 -1
  551. package/sdks/hermes-engine/hermes-utils.rb +2 -2
  552. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
  553. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  554. package/sdks/hermesc/osx-bin/hermes +0 -0
  555. package/sdks/hermesc/osx-bin/hermesc +0 -0
  556. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  557. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  558. package/src/private/featureflags/README.md +5 -0
  559. package/src/private/featureflags/ReactNativeFeatureFlags.js +32 -26
  560. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
  561. package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
  562. package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
  563. package/src/private/specs/modules/NativeFantom.js +37 -0
  564. package/src/private/utilities/ensureInstance.js +21 -0
  565. package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
  566. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
  567. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
  568. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  569. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
  570. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  571. package/src/private/webapis/performance/Performance.js +0 -12
  572. package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
  573. package/types/index.d.ts +1 -0
  574. package/types/public/ReactNativeTVTypes.d.ts +49 -51
  575. package/Libraries/HeapCapture/HeapCapture.js +0 -29
  576. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
  577. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
  578. package/Libraries/Performance/SamplingProfiler.js +0 -39
  579. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
  580. package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
  581. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
  582. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
  583. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
  584. package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
  585. package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
  586. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
  587. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
  588. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
  589. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
  590. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
  595. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
  596. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
  597. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
  598. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
  599. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
  600. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
  601. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
  602. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
  603. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
  604. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
  605. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
  606. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
  607. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
  608. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
  609. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
  610. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
  611. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
  612. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
  613. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
  614. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
  615. package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
  616. package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
  617. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
  618. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
  619. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
  620. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
  621. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
  622. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
  623. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
  624. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
  625. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
  626. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
  627. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
  628. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
  629. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
  630. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
  631. package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
  632. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
  633. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
  634. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
  635. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
  636. package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
  637. package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
  638. package/ReactCommon/React-nativeconfig.podspec +0 -36
  639. package/ReactCommon/cxxreact/tests/main.cpp +0 -15
  640. package/ReactCommon/react/config/CMakeLists.txt +0 -20
  641. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
  642. package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
  643. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
  644. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
  645. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
  646. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
  647. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
  648. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
  649. package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
  650. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
  651. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
  652. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
  653. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
  654. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
  655. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
@@ -25,8 +25,7 @@ public:
25
25
  virtual bool completeReactInstanceCreationOnBgThreadOnAndroid(jsi::Runtime &rt) = 0;
26
26
  virtual bool disableEventLoopOnBridgeless(jsi::Runtime &rt) = 0;
27
27
  virtual bool disableMountItemReorderingAndroid(jsi::Runtime &rt) = 0;
28
- virtual bool enableAlignItemsBaselineOnFabricIOS(jsi::Runtime &rt) = 0;
29
- virtual bool enableAndroidLineHeightCentering(jsi::Runtime &rt) = 0;
28
+ virtual bool enableAccumulatedUpdatesInRawPropsAndroid(jsi::Runtime &rt) = 0;
30
29
  virtual bool enableBridgelessArchitecture(jsi::Runtime &rt) = 0;
31
30
  virtual bool enableCppPropsIteratorSetter(jsi::Runtime &rt) = 0;
32
31
  virtual bool enableDeletionOfUnmountedViews(jsi::Runtime &rt) = 0;
@@ -34,10 +33,10 @@ public:
34
33
  virtual bool enableEventEmitterRetentionDuringGesturesOnAndroid(jsi::Runtime &rt) = 0;
35
34
  virtual bool enableFabricLogs(jsi::Runtime &rt) = 0;
36
35
  virtual bool enableFabricRenderer(jsi::Runtime &rt) = 0;
37
- virtual bool enableFabricRendererExclusively(jsi::Runtime &rt) = 0;
38
36
  virtual bool enableFixForViewCommandRace(jsi::Runtime &rt) = 0;
39
37
  virtual bool enableGranularShadowTreeStateReconciliation(jsi::Runtime &rt) = 0;
40
38
  virtual bool enableIOSViewClipToPaddingBox(jsi::Runtime &rt) = 0;
39
+ virtual bool enableImagePrefetchingAndroid(jsi::Runtime &rt) = 0;
41
40
  virtual bool enableLayoutAnimationsOnAndroid(jsi::Runtime &rt) = 0;
42
41
  virtual bool enableLayoutAnimationsOnIOS(jsi::Runtime &rt) = 0;
43
42
  virtual bool enableLongTaskAPI(jsi::Runtime &rt) = 0;
@@ -49,9 +48,9 @@ public:
49
48
  virtual bool enableUIConsistency(jsi::Runtime &rt) = 0;
50
49
  virtual bool enableViewRecycling(jsi::Runtime &rt) = 0;
51
50
  virtual bool excludeYogaFromRawProps(jsi::Runtime &rt) = 0;
51
+ virtual bool fixDifferentiatorEmittingUpdatesWithWrongParentTag(jsi::Runtime &rt) = 0;
52
52
  virtual bool fixMappingOfEventPrioritiesBetweenFabricAndReact(jsi::Runtime &rt) = 0;
53
53
  virtual bool fixMountingCoordinatorReportedPendingTransactionsOnAndroid(jsi::Runtime &rt) = 0;
54
- virtual bool fuseboxEnabledDebug(jsi::Runtime &rt) = 0;
55
54
  virtual bool fuseboxEnabledRelease(jsi::Runtime &rt) = 0;
56
55
  virtual bool initEagerTurboModulesOnNativeModulesQueueAndroid(jsi::Runtime &rt) = 0;
57
56
  virtual bool lazyAnimationCallbacks(jsi::Runtime &rt) = 0;
@@ -63,6 +62,7 @@ public:
63
62
  virtual bool useNativeViewConfigsInBridgelessMode(jsi::Runtime &rt) = 0;
64
63
  virtual bool useOptimisedViewPreallocationOnAndroid(jsi::Runtime &rt) = 0;
65
64
  virtual bool useOptimizedEventBatchingOnAndroid(jsi::Runtime &rt) = 0;
65
+ virtual bool useRawPropsJsiValue(jsi::Runtime &rt) = 0;
66
66
  virtual bool useRuntimeShadowNodeReferenceUpdate(jsi::Runtime &rt) = 0;
67
67
  virtual bool useTurboModuleInterop(jsi::Runtime &rt) = 0;
68
68
  virtual bool useTurboModules(jsi::Runtime &rt) = 0;
@@ -136,21 +136,13 @@ private:
136
136
  return bridging::callFromJs<bool>(
137
137
  rt, &T::disableMountItemReorderingAndroid, jsInvoker_, instance_);
138
138
  }
139
- bool enableAlignItemsBaselineOnFabricIOS(jsi::Runtime &rt) override {
139
+ bool enableAccumulatedUpdatesInRawPropsAndroid(jsi::Runtime &rt) override {
140
140
  static_assert(
141
- bridging::getParameterCount(&T::enableAlignItemsBaselineOnFabricIOS) == 1,
142
- "Expected enableAlignItemsBaselineOnFabricIOS(...) to have 1 parameters");
141
+ bridging::getParameterCount(&T::enableAccumulatedUpdatesInRawPropsAndroid) == 1,
142
+ "Expected enableAccumulatedUpdatesInRawPropsAndroid(...) to have 1 parameters");
143
143
 
144
144
  return bridging::callFromJs<bool>(
145
- rt, &T::enableAlignItemsBaselineOnFabricIOS, jsInvoker_, instance_);
146
- }
147
- bool enableAndroidLineHeightCentering(jsi::Runtime &rt) override {
148
- static_assert(
149
- bridging::getParameterCount(&T::enableAndroidLineHeightCentering) == 1,
150
- "Expected enableAndroidLineHeightCentering(...) to have 1 parameters");
151
-
152
- return bridging::callFromJs<bool>(
153
- rt, &T::enableAndroidLineHeightCentering, jsInvoker_, instance_);
145
+ rt, &T::enableAccumulatedUpdatesInRawPropsAndroid, jsInvoker_, instance_);
154
146
  }
155
147
  bool enableBridgelessArchitecture(jsi::Runtime &rt) override {
156
148
  static_assert(
@@ -208,14 +200,6 @@ private:
208
200
  return bridging::callFromJs<bool>(
209
201
  rt, &T::enableFabricRenderer, jsInvoker_, instance_);
210
202
  }
211
- bool enableFabricRendererExclusively(jsi::Runtime &rt) override {
212
- static_assert(
213
- bridging::getParameterCount(&T::enableFabricRendererExclusively) == 1,
214
- "Expected enableFabricRendererExclusively(...) to have 1 parameters");
215
-
216
- return bridging::callFromJs<bool>(
217
- rt, &T::enableFabricRendererExclusively, jsInvoker_, instance_);
218
- }
219
203
  bool enableFixForViewCommandRace(jsi::Runtime &rt) override {
220
204
  static_assert(
221
205
  bridging::getParameterCount(&T::enableFixForViewCommandRace) == 1,
@@ -240,6 +224,14 @@ private:
240
224
  return bridging::callFromJs<bool>(
241
225
  rt, &T::enableIOSViewClipToPaddingBox, jsInvoker_, instance_);
242
226
  }
227
+ bool enableImagePrefetchingAndroid(jsi::Runtime &rt) override {
228
+ static_assert(
229
+ bridging::getParameterCount(&T::enableImagePrefetchingAndroid) == 1,
230
+ "Expected enableImagePrefetchingAndroid(...) to have 1 parameters");
231
+
232
+ return bridging::callFromJs<bool>(
233
+ rt, &T::enableImagePrefetchingAndroid, jsInvoker_, instance_);
234
+ }
243
235
  bool enableLayoutAnimationsOnAndroid(jsi::Runtime &rt) override {
244
236
  static_assert(
245
237
  bridging::getParameterCount(&T::enableLayoutAnimationsOnAndroid) == 1,
@@ -328,6 +320,14 @@ private:
328
320
  return bridging::callFromJs<bool>(
329
321
  rt, &T::excludeYogaFromRawProps, jsInvoker_, instance_);
330
322
  }
323
+ bool fixDifferentiatorEmittingUpdatesWithWrongParentTag(jsi::Runtime &rt) override {
324
+ static_assert(
325
+ bridging::getParameterCount(&T::fixDifferentiatorEmittingUpdatesWithWrongParentTag) == 1,
326
+ "Expected fixDifferentiatorEmittingUpdatesWithWrongParentTag(...) to have 1 parameters");
327
+
328
+ return bridging::callFromJs<bool>(
329
+ rt, &T::fixDifferentiatorEmittingUpdatesWithWrongParentTag, jsInvoker_, instance_);
330
+ }
331
331
  bool fixMappingOfEventPrioritiesBetweenFabricAndReact(jsi::Runtime &rt) override {
332
332
  static_assert(
333
333
  bridging::getParameterCount(&T::fixMappingOfEventPrioritiesBetweenFabricAndReact) == 1,
@@ -344,14 +344,6 @@ private:
344
344
  return bridging::callFromJs<bool>(
345
345
  rt, &T::fixMountingCoordinatorReportedPendingTransactionsOnAndroid, jsInvoker_, instance_);
346
346
  }
347
- bool fuseboxEnabledDebug(jsi::Runtime &rt) override {
348
- static_assert(
349
- bridging::getParameterCount(&T::fuseboxEnabledDebug) == 1,
350
- "Expected fuseboxEnabledDebug(...) to have 1 parameters");
351
-
352
- return bridging::callFromJs<bool>(
353
- rt, &T::fuseboxEnabledDebug, jsInvoker_, instance_);
354
- }
355
347
  bool fuseboxEnabledRelease(jsi::Runtime &rt) override {
356
348
  static_assert(
357
349
  bridging::getParameterCount(&T::fuseboxEnabledRelease) == 1,
@@ -440,6 +432,14 @@ private:
440
432
  return bridging::callFromJs<bool>(
441
433
  rt, &T::useOptimizedEventBatchingOnAndroid, jsInvoker_, instance_);
442
434
  }
435
+ bool useRawPropsJsiValue(jsi::Runtime &rt) override {
436
+ static_assert(
437
+ bridging::getParameterCount(&T::useRawPropsJsiValue) == 1,
438
+ "Expected useRawPropsJsiValue(...) to have 1 parameters");
439
+
440
+ return bridging::callFromJs<bool>(
441
+ rt, &T::useRawPropsJsiValue, jsInvoker_, instance_);
442
+ }
443
443
  bool useRuntimeShadowNodeReferenceUpdate(jsi::Runtime &rt) override {
444
444
  static_assert(
445
445
  bridging::getParameterCount(&T::useRuntimeShadowNodeReferenceUpdate) == 1,
@@ -2422,6 +2422,69 @@ private:
2422
2422
  };
2423
2423
 
2424
2424
 
2425
+ class JSI_EXPORT NativeCPUTimeCxxSpecJSI : public TurboModule {
2426
+ protected:
2427
+ NativeCPUTimeCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
2428
+
2429
+ public:
2430
+ virtual double getCPUTimeNanos(jsi::Runtime &rt) = 0;
2431
+ virtual bool hasAccurateCPUTimeNanosForBenchmarks(jsi::Runtime &rt) = 0;
2432
+
2433
+ };
2434
+
2435
+ template <typename T>
2436
+ class JSI_EXPORT NativeCPUTimeCxxSpec : public TurboModule {
2437
+ public:
2438
+ jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
2439
+ return delegate_.create(rt, propName);
2440
+ }
2441
+
2442
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
2443
+ return delegate_.getPropertyNames(runtime);
2444
+ }
2445
+
2446
+ static constexpr std::string_view kModuleName = "CPUTimeCxx";
2447
+
2448
+ protected:
2449
+ NativeCPUTimeCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
2450
+ : TurboModule(std::string{NativeCPUTimeCxxSpec::kModuleName}, jsInvoker),
2451
+ delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
2452
+
2453
+
2454
+ private:
2455
+ class Delegate : public NativeCPUTimeCxxSpecJSI {
2456
+ public:
2457
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
2458
+ NativeCPUTimeCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
2459
+
2460
+ }
2461
+
2462
+ double getCPUTimeNanos(jsi::Runtime &rt) override {
2463
+ static_assert(
2464
+ bridging::getParameterCount(&T::getCPUTimeNanos) == 1,
2465
+ "Expected getCPUTimeNanos(...) to have 1 parameters");
2466
+
2467
+ return bridging::callFromJs<double>(
2468
+ rt, &T::getCPUTimeNanos, jsInvoker_, instance_);
2469
+ }
2470
+ bool hasAccurateCPUTimeNanosForBenchmarks(jsi::Runtime &rt) override {
2471
+ static_assert(
2472
+ bridging::getParameterCount(&T::hasAccurateCPUTimeNanosForBenchmarks) == 1,
2473
+ "Expected hasAccurateCPUTimeNanosForBenchmarks(...) to have 1 parameters");
2474
+
2475
+ return bridging::callFromJs<bool>(
2476
+ rt, &T::hasAccurateCPUTimeNanosForBenchmarks, jsInvoker_, instance_);
2477
+ }
2478
+
2479
+ private:
2480
+ friend class NativeCPUTimeCxxSpec;
2481
+ T *instance_;
2482
+ };
2483
+
2484
+ Delegate delegate_;
2485
+ };
2486
+
2487
+
2425
2488
  class JSI_EXPORT NativeDeviceEventManagerCxxSpecJSI : public TurboModule {
2426
2489
  protected:
2427
2490
  NativeDeviceEventManagerCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
@@ -3488,6 +3551,152 @@ private:
3488
3551
  };
3489
3552
 
3490
3553
 
3554
+
3555
+ #pragma mark - NativeFantomRenderFormatOptions
3556
+
3557
+ template <typename P0, typename P1>
3558
+ struct NativeFantomRenderFormatOptions {
3559
+ P0 includeRoot;
3560
+ P1 includeLayoutMetrics;
3561
+ bool operator==(const NativeFantomRenderFormatOptions &other) const {
3562
+ return includeRoot == other.includeRoot && includeLayoutMetrics == other.includeLayoutMetrics;
3563
+ }
3564
+ };
3565
+
3566
+ template <typename T>
3567
+ struct NativeFantomRenderFormatOptionsBridging {
3568
+ static T types;
3569
+
3570
+ static T fromJs(
3571
+ jsi::Runtime &rt,
3572
+ const jsi::Object &value,
3573
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
3574
+ T result{
3575
+ bridging::fromJs<decltype(types.includeRoot)>(rt, value.getProperty(rt, "includeRoot"), jsInvoker),
3576
+ bridging::fromJs<decltype(types.includeLayoutMetrics)>(rt, value.getProperty(rt, "includeLayoutMetrics"), jsInvoker)};
3577
+ return result;
3578
+ }
3579
+
3580
+ #ifdef DEBUG
3581
+ static bool includeRootToJs(jsi::Runtime &rt, decltype(types.includeRoot) value) {
3582
+ return bridging::toJs(rt, value);
3583
+ }
3584
+
3585
+ static bool includeLayoutMetricsToJs(jsi::Runtime &rt, decltype(types.includeLayoutMetrics) value) {
3586
+ return bridging::toJs(rt, value);
3587
+ }
3588
+ #endif
3589
+
3590
+ static jsi::Object toJs(
3591
+ jsi::Runtime &rt,
3592
+ const T &value,
3593
+ const std::shared_ptr<CallInvoker> &jsInvoker) {
3594
+ auto result = facebook::jsi::Object(rt);
3595
+ result.setProperty(rt, "includeRoot", bridging::toJs(rt, value.includeRoot, jsInvoker));
3596
+ result.setProperty(rt, "includeLayoutMetrics", bridging::toJs(rt, value.includeLayoutMetrics, jsInvoker));
3597
+ return result;
3598
+ }
3599
+ };
3600
+
3601
+ class JSI_EXPORT NativeFantomCxxSpecJSI : public TurboModule {
3602
+ protected:
3603
+ NativeFantomCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
3604
+
3605
+ public:
3606
+ virtual void startSurface(jsi::Runtime &rt, double surfaceId, double viewportWidth, double viewportHeight, double devicePixelRatio) = 0;
3607
+ virtual void stopSurface(jsi::Runtime &rt, double surfaceId) = 0;
3608
+ virtual jsi::Array getMountingManagerLogs(jsi::Runtime &rt, double surfaceId) = 0;
3609
+ virtual void flushMessageQueue(jsi::Runtime &rt) = 0;
3610
+ virtual jsi::String getRenderedOutput(jsi::Runtime &rt, double surfaceId, jsi::Object config) = 0;
3611
+ virtual void reportTestSuiteResultsJSON(jsi::Runtime &rt, jsi::String results) = 0;
3612
+
3613
+ };
3614
+
3615
+ template <typename T>
3616
+ class JSI_EXPORT NativeFantomCxxSpec : public TurboModule {
3617
+ public:
3618
+ jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
3619
+ return delegate_.create(rt, propName);
3620
+ }
3621
+
3622
+ std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
3623
+ return delegate_.getPropertyNames(runtime);
3624
+ }
3625
+
3626
+ static constexpr std::string_view kModuleName = "NativeFantomCxx";
3627
+
3628
+ protected:
3629
+ NativeFantomCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
3630
+ : TurboModule(std::string{NativeFantomCxxSpec::kModuleName}, jsInvoker),
3631
+ delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
3632
+
3633
+
3634
+ private:
3635
+ class Delegate : public NativeFantomCxxSpecJSI {
3636
+ public:
3637
+ Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
3638
+ NativeFantomCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
3639
+
3640
+ }
3641
+
3642
+ void startSurface(jsi::Runtime &rt, double surfaceId, double viewportWidth, double viewportHeight, double devicePixelRatio) override {
3643
+ static_assert(
3644
+ bridging::getParameterCount(&T::startSurface) == 5,
3645
+ "Expected startSurface(...) to have 5 parameters");
3646
+
3647
+ return bridging::callFromJs<void>(
3648
+ rt, &T::startSurface, jsInvoker_, instance_, std::move(surfaceId), std::move(viewportWidth), std::move(viewportHeight), std::move(devicePixelRatio));
3649
+ }
3650
+ void stopSurface(jsi::Runtime &rt, double surfaceId) override {
3651
+ static_assert(
3652
+ bridging::getParameterCount(&T::stopSurface) == 2,
3653
+ "Expected stopSurface(...) to have 2 parameters");
3654
+
3655
+ return bridging::callFromJs<void>(
3656
+ rt, &T::stopSurface, jsInvoker_, instance_, std::move(surfaceId));
3657
+ }
3658
+ jsi::Array getMountingManagerLogs(jsi::Runtime &rt, double surfaceId) override {
3659
+ static_assert(
3660
+ bridging::getParameterCount(&T::getMountingManagerLogs) == 2,
3661
+ "Expected getMountingManagerLogs(...) to have 2 parameters");
3662
+
3663
+ return bridging::callFromJs<jsi::Array>(
3664
+ rt, &T::getMountingManagerLogs, jsInvoker_, instance_, std::move(surfaceId));
3665
+ }
3666
+ void flushMessageQueue(jsi::Runtime &rt) override {
3667
+ static_assert(
3668
+ bridging::getParameterCount(&T::flushMessageQueue) == 1,
3669
+ "Expected flushMessageQueue(...) to have 1 parameters");
3670
+
3671
+ return bridging::callFromJs<void>(
3672
+ rt, &T::flushMessageQueue, jsInvoker_, instance_);
3673
+ }
3674
+ jsi::String getRenderedOutput(jsi::Runtime &rt, double surfaceId, jsi::Object config) override {
3675
+ static_assert(
3676
+ bridging::getParameterCount(&T::getRenderedOutput) == 3,
3677
+ "Expected getRenderedOutput(...) to have 3 parameters");
3678
+
3679
+ return bridging::callFromJs<jsi::String>(
3680
+ rt, &T::getRenderedOutput, jsInvoker_, instance_, std::move(surfaceId), std::move(config));
3681
+ }
3682
+ void reportTestSuiteResultsJSON(jsi::Runtime &rt, jsi::String results) override {
3683
+ static_assert(
3684
+ bridging::getParameterCount(&T::reportTestSuiteResultsJSON) == 2,
3685
+ "Expected reportTestSuiteResultsJSON(...) to have 2 parameters");
3686
+
3687
+ return bridging::callFromJs<void>(
3688
+ rt, &T::reportTestSuiteResultsJSON, jsInvoker_, instance_, std::move(results));
3689
+ }
3690
+
3691
+ private:
3692
+ friend class NativeFantomCxxSpec;
3693
+ T *instance_;
3694
+ };
3695
+
3696
+ Delegate delegate_;
3697
+ };
3698
+
3699
+
3491
3700
  class JSI_EXPORT NativeFileReaderModuleCxxSpecJSI : public TurboModule {
3492
3701
  protected:
3493
3702
  NativeFileReaderModuleCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
@@ -4511,60 +4720,6 @@ private:
4511
4720
  };
4512
4721
 
4513
4722
 
4514
- class JSI_EXPORT NativeJSCSamplingProfilerCxxSpecJSI : public TurboModule {
4515
- protected:
4516
- NativeJSCSamplingProfilerCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
4517
-
4518
- public:
4519
- virtual void operationComplete(jsi::Runtime &rt, double token, std::optional<jsi::String> result, std::optional<jsi::String> error) = 0;
4520
-
4521
- };
4522
-
4523
- template <typename T>
4524
- class JSI_EXPORT NativeJSCSamplingProfilerCxxSpec : public TurboModule {
4525
- public:
4526
- jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
4527
- return delegate_.create(rt, propName);
4528
- }
4529
-
4530
- std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
4531
- return delegate_.getPropertyNames(runtime);
4532
- }
4533
-
4534
- static constexpr std::string_view kModuleName = "JSCSamplingProfiler";
4535
-
4536
- protected:
4537
- NativeJSCSamplingProfilerCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
4538
- : TurboModule(std::string{NativeJSCSamplingProfilerCxxSpec::kModuleName}, jsInvoker),
4539
- delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
4540
-
4541
-
4542
- private:
4543
- class Delegate : public NativeJSCSamplingProfilerCxxSpecJSI {
4544
- public:
4545
- Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
4546
- NativeJSCSamplingProfilerCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
4547
-
4548
- }
4549
-
4550
- void operationComplete(jsi::Runtime &rt, double token, std::optional<jsi::String> result, std::optional<jsi::String> error) override {
4551
- static_assert(
4552
- bridging::getParameterCount(&T::operationComplete) == 4,
4553
- "Expected operationComplete(...) to have 4 parameters");
4554
-
4555
- return bridging::callFromJs<void>(
4556
- rt, &T::operationComplete, jsInvoker_, instance_, std::move(token), std::move(result), std::move(error));
4557
- }
4558
-
4559
- private:
4560
- friend class NativeJSCSamplingProfilerCxxSpec;
4561
- T *instance_;
4562
- };
4563
-
4564
- Delegate delegate_;
4565
- };
4566
-
4567
-
4568
4723
  class JSI_EXPORT NativeKeyboardObserverCxxSpecJSI : public TurboModule {
4569
4724
  protected:
4570
4725
  NativeKeyboardObserverCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
@@ -7989,8 +8144,6 @@ protected:
7989
8144
 
7990
8145
  public:
7991
8146
  virtual double now(jsi::Runtime &rt) = 0;
7992
- virtual void mark(jsi::Runtime &rt, jsi::String name, double startTime) = 0;
7993
- virtual void measure(jsi::Runtime &rt, jsi::String name, double startTime, double endTime, std::optional<double> duration, std::optional<jsi::String> startMark, std::optional<jsi::String> endMark) = 0;
7994
8147
  virtual double markWithResult(jsi::Runtime &rt, jsi::String name, std::optional<double> startTime) = 0;
7995
8148
  virtual jsi::Array measureWithResult(jsi::Runtime &rt, jsi::String name, double startTime, double endTime, std::optional<double> duration, std::optional<jsi::String> startMark, std::optional<jsi::String> endMark) = 0;
7996
8149
  virtual void clearMarks(jsi::Runtime &rt, std::optional<jsi::String> entryName) = 0;
@@ -8045,22 +8198,6 @@ private:
8045
8198
  return bridging::callFromJs<double>(
8046
8199
  rt, &T::now, jsInvoker_, instance_);
8047
8200
  }
8048
- void mark(jsi::Runtime &rt, jsi::String name, double startTime) override {
8049
- static_assert(
8050
- bridging::getParameterCount(&T::mark) == 3,
8051
- "Expected mark(...) to have 3 parameters");
8052
-
8053
- return bridging::callFromJs<void>(
8054
- rt, &T::mark, jsInvoker_, instance_, std::move(name), std::move(startTime));
8055
- }
8056
- void measure(jsi::Runtime &rt, jsi::String name, double startTime, double endTime, std::optional<double> duration, std::optional<jsi::String> startMark, std::optional<jsi::String> endMark) override {
8057
- static_assert(
8058
- bridging::getParameterCount(&T::measure) == 7,
8059
- "Expected measure(...) to have 7 parameters");
8060
-
8061
- return bridging::callFromJs<void>(
8062
- rt, &T::measure, jsInvoker_, instance_, std::move(name), std::move(startTime), std::move(endTime), std::move(duration), std::move(startMark), std::move(endMark));
8063
- }
8064
8201
  double markWithResult(jsi::Runtime &rt, jsi::String name, std::optional<double> startTime) override {
8065
8202
  static_assert(
8066
8203
  bridging::getParameterCount(&T::markWithResult) == 3,
@@ -53,9 +53,4 @@
53
53
  [self layoutIfNeeded];
54
54
  }
55
55
 
56
- - (BOOL)canBecomeFirstResponder
57
- {
58
- return true;
59
- }
60
-
61
56
  @end
@@ -67,28 +67,52 @@
67
67
  * ScrollView, we force it to be centered, but when you zoom or the content otherwise
68
68
  * becomes larger than the ScrollView, there is no padding around the content but it
69
69
  * can still fill the whole view.
70
+ * This implementation is based on https://petersteinberger.com/blog/2013/how-to-center-uiscrollview/.
70
71
  */
71
- - (void)setContentOffset:(CGPoint)contentOffset
72
+ - (void)centerContentIfNeeded
72
73
  {
73
- if (_isSetContentOffsetDisabled) {
74
+ if (!_centerContent) {
74
75
  return;
75
76
  }
76
77
 
77
- if (_centerContent && !CGSizeEqualToSize(self.contentSize, CGSizeZero)) {
78
- CGSize scrollViewSize = self.bounds.size;
79
- if (self.contentSize.width <= scrollViewSize.width) {
80
- contentOffset.x = -(scrollViewSize.width - self.contentSize.width) / 2.0;
81
- }
82
- if (self.contentSize.height <= scrollViewSize.height) {
83
- contentOffset.y = -(scrollViewSize.height - self.contentSize.height) / 2.0;
84
- }
78
+ CGSize contentSize = self.contentSize;
79
+ CGSize boundsSize = self.bounds.size;
80
+ if (CGSizeEqualToSize(contentSize, CGSizeZero) || CGSizeEqualToSize(boundsSize, CGSizeZero)) {
81
+ return;
82
+ }
83
+
84
+ CGFloat top = 0, left = 0;
85
+ if (contentSize.width < boundsSize.width) {
86
+ left = (boundsSize.width - contentSize.width) * 0.5f;
87
+ }
88
+ if (contentSize.height < boundsSize.height) {
89
+ top = (boundsSize.height - contentSize.height) * 0.5f;
85
90
  }
91
+ self.contentInset = UIEdgeInsetsMake(top, left, top, left);
92
+ }
86
93
 
94
+ - (void)setContentOffset:(CGPoint)contentOffset
95
+ {
96
+ if (_isSetContentOffsetDisabled) {
97
+ return;
98
+ }
87
99
  super.contentOffset = CGPointMake(
88
100
  RCTSanitizeNaNValue(contentOffset.x, @"scrollView.contentOffset.x"),
89
101
  RCTSanitizeNaNValue(contentOffset.y, @"scrollView.contentOffset.y"));
90
102
  }
91
103
 
104
+ - (void)setFrame:(CGRect)frame
105
+ {
106
+ [super setFrame:frame];
107
+ [self centerContentIfNeeded];
108
+ }
109
+
110
+ - (void)didAddSubview:(UIView *)subview
111
+ {
112
+ [super didAddSubview:subview];
113
+ [self centerContentIfNeeded];
114
+ }
115
+
92
116
  - (BOOL)touchesShouldCancelInContentView:(UIView *)view
93
117
  {
94
118
  if ([_overridingDelegate respondsToSelector:@selector(touchesShouldCancelInContentView:)]) {
@@ -258,6 +282,11 @@
258
282
  }
259
283
  }
260
284
 
285
+ - (void)scrollViewDidZoom:(__unused UIScrollView *)scrollView
286
+ {
287
+ [self centerContentIfNeeded];
288
+ }
289
+
261
290
  #pragma mark -
262
291
 
263
292
  - (BOOL)isHorizontal:(UIScrollView *)scrollView
@@ -155,10 +155,10 @@ using namespace facebook::react;
155
155
 
156
156
  #pragma mark - Attaching & Detaching
157
157
 
158
- - (void)didMoveToWindow
158
+ - (void)didMoveToSuperview
159
159
  {
160
- [super didMoveToWindow];
161
- if (self.window) {
160
+ [super didMoveToSuperview];
161
+ if (self.superview) {
162
162
  [self _attach];
163
163
  } else {
164
164
  [self _detach];