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
@@ -21,9 +21,6 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
21
21
  # when they go out of scope due to exceptions.
22
22
  list(APPEND jsi_compile_flags "/EHsc")
23
23
  endif()
24
- if (HERMES_ENABLE_BITCODE)
25
- list(APPEND jsi_compile_flags "-fembed-bitcode")
26
- endif ()
27
24
  target_compile_options(jsi PRIVATE ${jsi_compile_flags})
28
25
 
29
26
  install(DIRECTORY "${PROJECT_SOURCE_DIR}/API/jsi/" DESTINATION include
@@ -153,7 +153,7 @@ void dynamicFromValueShallow(
153
153
  folly::dynamic dynamicFromValue(
154
154
  Runtime& runtime,
155
155
  const Value& valueInput,
156
- std::function<bool(const std::string&)> filterObjectKeys) {
156
+ const std::function<bool(const std::string&)>& filterObjectKeys) {
157
157
  std::vector<FromValue> stack;
158
158
  folly::dynamic ret;
159
159
 
@@ -20,7 +20,7 @@ facebook::jsi::Value valueFromDynamic(
20
20
  folly::dynamic dynamicFromValue(
21
21
  facebook::jsi::Runtime& runtime,
22
22
  const facebook::jsi::Value& value,
23
- std::function<bool(const std::string&)> filterObjectKeys = nullptr);
23
+ const std::function<bool(const std::string&)>& filterObjectKeys = nullptr);
24
24
 
25
25
  } // namespace jsi
26
26
  } // namespace facebook
@@ -232,6 +232,26 @@ class RuntimeDecorator : public Base, private jsi::Instrumentation {
232
232
  return plain_.utf16(sym);
233
233
  }
234
234
 
235
+ void getStringData(
236
+ const jsi::String& str,
237
+ void* ctx,
238
+ void (
239
+ *cb)(void* ctx, bool ascii, const void* data, size_t num)) override {
240
+ plain_.getStringData(str, ctx, cb);
241
+ }
242
+
243
+ void getPropNameIdData(
244
+ const jsi::PropNameID& sym,
245
+ void* ctx,
246
+ void (
247
+ *cb)(void* ctx, bool ascii, const void* data, size_t num)) override {
248
+ plain_.getPropNameIdData(sym, ctx, cb);
249
+ }
250
+
251
+ Object createObjectWithPrototype(const Value& prototype) override {
252
+ return plain_.createObjectWithPrototype(prototype);
253
+ }
254
+
235
255
  Object createObject() override {
236
256
  return plain_.createObject();
237
257
  };
@@ -266,6 +286,14 @@ class RuntimeDecorator : public Base, private jsi::Instrumentation {
266
286
  plain_.setExternalMemoryPressure(obj, amt);
267
287
  }
268
288
 
289
+ void setPrototypeOf(const Object& object, const Value& prototype) override {
290
+ plain_.setPrototypeOf(object, prototype);
291
+ }
292
+
293
+ Value getPrototypeOf(const Object& object) override {
294
+ return plain_.getPrototypeOf(object);
295
+ }
296
+
269
297
  Value getProperty(const Object& o, const PropNameID& name) override {
270
298
  return plain_.getProperty(o, name);
271
299
  };
@@ -690,11 +718,34 @@ class WithRuntimeDecorator : public RuntimeDecorator<Plain, Base> {
690
718
  return RD::utf16(sym);
691
719
  }
692
720
 
721
+ void getStringData(
722
+ const jsi::String& str,
723
+ void* ctx,
724
+ void (
725
+ *cb)(void* ctx, bool ascii, const void* data, size_t num)) override {
726
+ Around around{with_};
727
+ RD::getStringData(str, ctx, cb);
728
+ }
729
+
730
+ void getPropNameIdData(
731
+ const jsi::PropNameID& sym,
732
+ void* ctx,
733
+ void (
734
+ *cb)(void* ctx, bool ascii, const void* data, size_t num)) override {
735
+ Around around{with_};
736
+ RD::getPropNameIdData(sym, ctx, cb);
737
+ }
738
+
693
739
  Value createValueFromJsonUtf8(const uint8_t* json, size_t length) override {
694
740
  Around around{with_};
695
741
  return RD::createValueFromJsonUtf8(json, length);
696
742
  };
697
743
 
744
+ Object createObjectWithPrototype(const Value& prototype) override {
745
+ Around around{with_};
746
+ return RD::createObjectWithPrototype(prototype);
747
+ }
748
+
698
749
  Object createObject() override {
699
750
  Around around{with_};
700
751
  return RD::createObject();
@@ -726,6 +777,16 @@ class WithRuntimeDecorator : public RuntimeDecorator<Plain, Base> {
726
777
  RD::setNativeState(o, state);
727
778
  };
728
779
 
780
+ void setPrototypeOf(const Object& object, const Value& prototype) override {
781
+ Around around{with_};
782
+ RD::setPrototypeOf(object, prototype);
783
+ }
784
+
785
+ Value getPrototypeOf(const Object& object) override {
786
+ Around around{with_};
787
+ return RD::getPrototypeOf(object);
788
+ }
789
+
729
790
  Value getProperty(const Object& o, const PropNameID& name) override {
730
791
  Around around{with_};
731
792
  return RD::getProperty(o, name);
@@ -84,6 +84,10 @@ inline const Runtime::PointerValue* Runtime::getPointerValue(
84
84
  return value.data_.pointer.ptr_;
85
85
  }
86
86
 
87
+ Value Object::getPrototype(Runtime& runtime) const {
88
+ return runtime.getPrototypeOf(*this);
89
+ }
90
+
87
91
  inline Value Object::getProperty(Runtime& runtime, const char* name) const {
88
92
  return getProperty(runtime, String::createFromAscii(runtime, name));
89
93
  }
@@ -258,6 +258,43 @@ std::u16string Runtime::utf16(const String& str) {
258
258
  return convertUTF8ToUTF16(utf8Str);
259
259
  }
260
260
 
261
+ void Runtime::getStringData(
262
+ const jsi::String& str,
263
+ void* ctx,
264
+ void (*cb)(void* ctx, bool ascii, const void* data, size_t num)) {
265
+ auto utf16Str = utf16(str);
266
+ cb(ctx, false, utf16Str.data(), utf16Str.size());
267
+ }
268
+
269
+ void Runtime::getPropNameIdData(
270
+ const jsi::PropNameID& sym,
271
+ void* ctx,
272
+ void (*cb)(void* ctx, bool ascii, const void* data, size_t num)) {
273
+ auto utf16Str = utf16(sym);
274
+ cb(ctx, false, utf16Str.data(), utf16Str.size());
275
+ }
276
+
277
+ void Runtime::setPrototypeOf(const Object& object, const Value& prototype) {
278
+ auto setPrototypeOfFn = global()
279
+ .getPropertyAsObject(*this, "Object")
280
+ .getPropertyAsFunction(*this, "setPrototypeOf");
281
+ setPrototypeOfFn.call(*this, object, prototype).asObject(*this);
282
+ }
283
+
284
+ Value Runtime::getPrototypeOf(const Object& object) {
285
+ auto setPrototypeOfFn = global()
286
+ .getPropertyAsObject(*this, "Object")
287
+ .getPropertyAsFunction(*this, "getPrototypeOf");
288
+ return setPrototypeOfFn.call(*this, object);
289
+ }
290
+
291
+ Object Runtime::createObjectWithPrototype(const Value& prototype) {
292
+ auto createFn = global()
293
+ .getPropertyAsObject(*this, "Object")
294
+ .getPropertyAsFunction(*this, "create");
295
+ return createFn.call(*this, prototype).asObject(*this);
296
+ }
297
+
261
298
  Pointer& Pointer::operator=(Pointer&& other) noexcept {
262
299
  if (ptr_) {
263
300
  ptr_->invalidate();
@@ -333,12 +333,18 @@ class JSI_EXPORT Runtime {
333
333
  virtual std::shared_ptr<HostObject> getHostObject(const jsi::Object&) = 0;
334
334
  virtual HostFunctionType& getHostFunction(const jsi::Function&) = 0;
335
335
 
336
+ // Creates a new Object with the custom prototype
337
+ virtual Object createObjectWithPrototype(const Value& prototype);
338
+
336
339
  virtual bool hasNativeState(const jsi::Object&) = 0;
337
340
  virtual std::shared_ptr<NativeState> getNativeState(const jsi::Object&) = 0;
338
341
  virtual void setNativeState(
339
342
  const jsi::Object&,
340
343
  std::shared_ptr<NativeState> state) = 0;
341
344
 
345
+ virtual void setPrototypeOf(const Object& object, const Value& prototype);
346
+ virtual Value getPrototypeOf(const Object& object);
347
+
342
348
  virtual Value getProperty(const Object&, const PropNameID& name) = 0;
343
349
  virtual Value getProperty(const Object&, const String& name) = 0;
344
350
  virtual bool hasProperty(const Object&, const PropNameID& name) = 0;
@@ -402,6 +408,34 @@ class JSI_EXPORT Runtime {
402
408
  virtual std::u16string utf16(const String& str);
403
409
  virtual std::u16string utf16(const PropNameID& sym);
404
410
 
411
+ /// Invokes the provided callback \p cb with the String content in \p str.
412
+ /// The callback must take in three arguments: bool ascii, const void* data,
413
+ /// and size_t num, respectively. \p ascii indicates whether the \p data
414
+ /// passed to the callback should be interpreted as a pointer to a sequence of
415
+ /// \p num ASCII characters or UTF16 characters. Depending on the internal
416
+ /// representation of the string, the function may invoke the callback
417
+ /// multiple times, with a different format on each invocation. The callback
418
+ /// must not access runtime functionality, as any operation on the runtime may
419
+ /// invalidate the data pointers.
420
+ virtual void getStringData(
421
+ const jsi::String& str,
422
+ void* ctx,
423
+ void (*cb)(void* ctx, bool ascii, const void* data, size_t num));
424
+
425
+ /// Invokes the provided callback \p cb with the PropNameID content in \p sym.
426
+ /// The callback must take in three arguments: bool ascii, const void* data,
427
+ /// and size_t num, respectively. \p ascii indicates whether the \p data
428
+ /// passed to the callback should be interpreted as a pointer to a sequence of
429
+ /// \p num ASCII characters or UTF16 characters. Depending on the internal
430
+ /// representation of the string, the function may invoke the callback
431
+ /// multiple times, with a different format on each invocation. The callback
432
+ /// must not access runtime functionality, as any operation on the runtime may
433
+ /// invalidate the data pointers.
434
+ virtual void getPropNameIdData(
435
+ const jsi::PropNameID& sym,
436
+ void* ctx,
437
+ void (*cb)(void* ctx, bool ascii, const void* data, size_t num));
438
+
405
439
  // These exist so derived classes can access the private parts of
406
440
  // Value, Symbol, String, and Object, which are all friends of Runtime.
407
441
  template <typename T>
@@ -509,6 +543,22 @@ class JSI_EXPORT PropNameID : public Pointer {
509
543
  return runtime.utf16(*this);
510
544
  }
511
545
 
546
+ /// Invokes the user provided callback to process the content in PropNameId.
547
+ /// The callback must take in three arguments: bool ascii, const void* data,
548
+ /// and size_t num, respectively. \p ascii indicates whether the \p data
549
+ /// passed to the callback should be interpreted as a pointer to a sequence of
550
+ /// \p num ASCII characters or UTF16 characters. The function may invoke the
551
+ /// callback multiple times, with a different format on each invocation. The
552
+ /// callback must not access runtime functionality, as any operation on the
553
+ /// runtime may invalidate the data pointers.
554
+ template <typename CB>
555
+ void getPropNameIdData(Runtime& runtime, CB& cb) const {
556
+ runtime.getPropNameIdData(
557
+ *this, &cb, [](void* ctx, bool ascii, const void* data, size_t num) {
558
+ (*((CB*)ctx))(ascii, data, num);
559
+ });
560
+ }
561
+
512
562
  static bool compare(
513
563
  Runtime& runtime,
514
564
  const jsi::PropNameID& a,
@@ -664,6 +714,22 @@ class JSI_EXPORT String : public Pointer {
664
714
  return runtime.utf16(*this);
665
715
  }
666
716
 
717
+ /// Invokes the user provided callback to process content in String. The
718
+ /// callback must take in three arguments: bool ascii, const void* data, and
719
+ /// size_t num, respectively. \p ascii indicates whether the \p data passed to
720
+ /// the callback should be interpreted as a pointer to a sequence of \p num
721
+ /// ASCII characters or UTF16 characters. The function may invoke the callback
722
+ /// multiple times, with a different format on each invocation. The callback
723
+ /// must not access runtime functionality, as any operation on the runtime may
724
+ /// invalidate the data pointers.
725
+ template <typename CB>
726
+ void getStringData(Runtime& runtime, CB& cb) const {
727
+ runtime.getStringData(
728
+ *this, &cb, [](void* ctx, bool ascii, const void* data, size_t num) {
729
+ (*((CB*)ctx))(ascii, data, num);
730
+ });
731
+ }
732
+
667
733
  friend class Runtime;
668
734
  friend class Value;
669
735
  };
@@ -688,6 +754,11 @@ class JSI_EXPORT Object : public Pointer {
688
754
  return runtime.createObject(ho);
689
755
  }
690
756
 
757
+ /// Creates a new Object with the custom prototype
758
+ static Object create(Runtime& runtime, const Value& prototype) {
759
+ return runtime.createObjectWithPrototype(prototype);
760
+ }
761
+
691
762
  /// \return whether this and \c obj are the same JSObject or not.
692
763
  static bool strictEquals(Runtime& runtime, const Object& a, const Object& b) {
693
764
  return runtime.strictEquals(a, b);
@@ -698,6 +769,16 @@ class JSI_EXPORT Object : public Pointer {
698
769
  return rt.instanceOf(*this, ctor);
699
770
  }
700
771
 
772
+ /// Sets \p prototype as the prototype of the object. The prototype must be
773
+ /// either an Object or null. If the prototype was not set successfully, this
774
+ /// method will throw.
775
+ void setPrototype(Runtime& runtime, const Value& prototype) const {
776
+ return runtime.setPrototypeOf(*this, prototype);
777
+ }
778
+
779
+ /// \return the prototype of the object
780
+ inline Value getPrototype(Runtime& runtime) const;
781
+
701
782
  /// \return the property of the object with the given ascii name.
702
783
  /// If the name isn't a property on the object, returns the
703
784
  /// undefined value.
@@ -1635,6 +1635,94 @@ TEST_P(JSITest, UTF16Test) {
1635
1635
  EXPECT_EQ(str.utf16(rd), u"\uFFFD\u007A");
1636
1636
  }
1637
1637
 
1638
+ TEST_P(JSITest, GetStringDataTest) {
1639
+ // This Runtime Decorator is used to test the default getStringData
1640
+ // implementation for VMs that do not provide their own implementation
1641
+ class RD : public RuntimeDecorator<Runtime, Runtime> {
1642
+ public:
1643
+ RD(Runtime& rt) : RuntimeDecorator(rt) {}
1644
+
1645
+ void getStringData(
1646
+ const String& str,
1647
+ void* ctx,
1648
+ void (*cb)(void* ctx, bool ascii, const void* data, size_t num))
1649
+ override {
1650
+ Runtime::getStringData(str, ctx, cb);
1651
+ }
1652
+ };
1653
+
1654
+ RD rd = RD(rt);
1655
+ String str = String::createFromUtf8(rd, "hello👋");
1656
+
1657
+ std::u16string buf;
1658
+ auto cb = [&buf](bool ascii, const void* data, size_t num) {
1659
+ assert(!ascii && "Default implementation is always utf16");
1660
+ buf.append((const char16_t*)data, num);
1661
+ };
1662
+
1663
+ str.getStringData(rd, cb);
1664
+ EXPECT_EQ(buf, str.utf16(rd));
1665
+ }
1666
+
1667
+ TEST_P(JSITest, ObjectSetPrototype) {
1668
+ // This Runtime Decorator is used to test the default implementation of
1669
+ // Object.setPrototypeOf
1670
+ class RD : public RuntimeDecorator<Runtime, Runtime> {
1671
+ public:
1672
+ explicit RD(Runtime& rt) : RuntimeDecorator(rt) {}
1673
+
1674
+ void setPrototypeOf(const Object& object, const Value& prototype) override {
1675
+ return Runtime::setPrototypeOf(object, prototype);
1676
+ }
1677
+
1678
+ Value getPrototypeOf(const Object& object) override {
1679
+ return Runtime::getPrototypeOf(object);
1680
+ }
1681
+ };
1682
+
1683
+ RD rd = RD(rt);
1684
+ Object child(rd);
1685
+
1686
+ // Tests null value as prototype
1687
+ child.setPrototype(rd, Value::null());
1688
+ EXPECT_TRUE(child.getPrototype(rd).isNull());
1689
+
1690
+ Object prototypeObj(rd);
1691
+ prototypeObj.setProperty(rd, "someProperty", 123);
1692
+ Value prototype(rd, prototypeObj);
1693
+
1694
+ child.setPrototype(rd, prototype);
1695
+ EXPECT_EQ(child.getProperty(rd, "someProperty").getNumber(), 123);
1696
+
1697
+ auto getPrototypeRes = child.getPrototype(rd).asObject(rd);
1698
+ EXPECT_EQ(getPrototypeRes.getProperty(rd, "someProperty").getNumber(), 123);
1699
+ }
1700
+
1701
+ TEST_P(JSITest, ObjectCreateWithPrototype) {
1702
+ // This Runtime Decorator is used to test the default implementation of
1703
+ // Object.create(prototype)
1704
+ class RD : public RuntimeDecorator<Runtime, Runtime> {
1705
+ public:
1706
+ RD(Runtime& rt) : RuntimeDecorator(rt) {}
1707
+
1708
+ Object createObjectWithPrototype(const Value& prototype) override {
1709
+ return Runtime::createObjectWithPrototype(prototype);
1710
+ }
1711
+ };
1712
+
1713
+ RD rd = RD(rt);
1714
+ Object prototypeObj(rd);
1715
+ prototypeObj.setProperty(rd, "someProperty", 123);
1716
+ Value prototype(rd, prototypeObj);
1717
+
1718
+ Object child = Object::create(rd, prototype);
1719
+ EXPECT_EQ(child.getProperty(rd, "someProperty").getNumber(), 123);
1720
+
1721
+ // Tests null value as prototype
1722
+ child = Object::create(rd, Value::null());
1723
+ EXPECT_TRUE(child.getPrototype(rd).isNull());
1724
+ }
1725
+
1638
1726
  INSTANTIATE_TEST_CASE_P(
1639
1727
  Runtimes,
1640
1728
  JSITest,
@@ -11,7 +11,7 @@
11
11
  #include <cxxreact/JSBigString.h>
12
12
  #include <cxxreact/ModuleRegistry.h>
13
13
  #include <cxxreact/ReactMarker.h>
14
- #include <cxxreact/SystraceSection.h>
14
+ #include <cxxreact/TraceSection.h>
15
15
  #include <folly/Conv.h>
16
16
  #include <folly/json.h>
17
17
  #include <glog/logging.h>
@@ -80,7 +80,7 @@ JSIExecutor::JSIExecutor(
80
80
  }
81
81
 
82
82
  void JSIExecutor::initializeRuntime() {
83
- SystraceSection s("JSIExecutor::initializeRuntime");
83
+ TraceSection s("JSIExecutor::initializeRuntime");
84
84
 
85
85
  bindNativePerformanceNow(*runtime_);
86
86
 
@@ -152,7 +152,7 @@ void JSIExecutor::initializeRuntime() {
152
152
  void JSIExecutor::loadBundle(
153
153
  std::unique_ptr<const JSBigString> script,
154
154
  std::string sourceURL) {
155
- SystraceSection s("JSIExecutor::loadBundle");
155
+ TraceSection s("JSIExecutor::loadBundle");
156
156
  bool hasLogger = false;
157
157
  {
158
158
  std::shared_lock lock(ReactMarker::logTaggedMarkerImplMutex);
@@ -218,7 +218,7 @@ void JSIExecutor::callFunction(
218
218
  const std::string& moduleId,
219
219
  const std::string& methodId,
220
220
  const folly::dynamic& arguments) {
221
- SystraceSection s(
221
+ TraceSection s(
222
222
  "JSIExecutor::callFunction", "moduleId", moduleId, "methodId", methodId);
223
223
  if (!callFunctionReturnFlushedQueue_) {
224
224
  bindBridge();
@@ -255,7 +255,7 @@ void JSIExecutor::callFunction(
255
255
  void JSIExecutor::invokeCallback(
256
256
  const double callbackId,
257
257
  const folly::dynamic& arguments) {
258
- SystraceSection s("JSIExecutor::invokeCallback", "callbackId", callbackId);
258
+ TraceSection s("JSIExecutor::invokeCallback", "callbackId", callbackId);
259
259
  if (!invokeCallbackAndReturnFlushedQueue_) {
260
260
  bindBridge();
261
261
  }
@@ -274,7 +274,7 @@ void JSIExecutor::invokeCallback(
274
274
  void JSIExecutor::setGlobalVariable(
275
275
  std::string propName,
276
276
  std::unique_ptr<const JSBigString> jsonValue) {
277
- SystraceSection s("JSIExecutor::setGlobalVariable", "propName", propName);
277
+ TraceSection s("JSIExecutor::setGlobalVariable", "propName", propName);
278
278
  runtime_->global().setProperty(
279
279
  *runtime_,
280
280
  propName.c_str(),
@@ -366,7 +366,7 @@ void JSIExecutor::handleMemoryPressure(int pressureLevel) {
366
366
 
367
367
  void JSIExecutor::bindBridge() {
368
368
  std::call_once(bindFlag_, [this] {
369
- SystraceSection s("JSIExecutor::bindBridge (once)");
369
+ TraceSection s("JSIExecutor::bindBridge (once)");
370
370
  Value batchedBridgeValue =
371
371
  runtime_->global().getProperty(*runtime_, "__fbBatchedBridge");
372
372
  if (batchedBridgeValue.isUndefined() || !batchedBridgeValue.isObject()) {
@@ -385,7 +385,7 @@ void JSIExecutor::bindBridge() {
385
385
  }
386
386
 
387
387
  void JSIExecutor::callNativeModules(const Value& queue, bool isEndOfBatch) {
388
- SystraceSection s("JSIExecutor::callNativeModules");
388
+ TraceSection s("JSIExecutor::callNativeModules");
389
389
  // If this fails, you need to pass a fully functional delegate with a
390
390
  // module registry to the factory/ctor.
391
391
  CHECK(delegate_) << "Attempting to use native modules without a delegate";
@@ -401,7 +401,7 @@ void JSIExecutor::callNativeModules(const Value& queue, bool isEndOfBatch) {
401
401
  }
402
402
 
403
403
  void JSIExecutor::flush() {
404
- SystraceSection s("JSIExecutor::flush");
404
+ TraceSection s("JSIExecutor::flush");
405
405
  if (flushedQueue_) {
406
406
  Value ret = flushedQueue_->call(*runtime_);
407
407
  callNativeModules(ret, true);
@@ -25,7 +25,7 @@ target_include_directories(jsinspector PUBLIC ${REACT_COMMON_DIR})
25
25
  target_link_libraries(jsinspector
26
26
  folly_runtime
27
27
  glog
28
+ jsinspector_tracing
28
29
  react_featureflags
29
30
  runtimeexecutor
30
- reactperflogger
31
31
  )
@@ -125,21 +125,17 @@ void HostAgent::handleRequest(const cdp::PreparsedRequest& req) {
125
125
 
126
126
  shouldSendOKResponse = true;
127
127
  isFinishedHandlingRequest = true;
128
- } else if (req.method == "FuseboxClient.setClientMetadata") {
128
+ } else if (req.method == "ReactNativeApplication.enable") {
129
+ sessionState_.isReactNativeApplicationDomainEnabled = true;
129
130
  fuseboxClientType_ = FuseboxClientType::Fusebox;
130
131
 
131
132
  if (sessionState_.isLogDomainEnabled) {
132
133
  sendFuseboxNotice();
133
134
  }
134
135
 
135
- shouldSendOKResponse = true;
136
- isFinishedHandlingRequest = true;
137
- } else if (req.method == "ReactNativeApplication.enable") {
138
- sessionState_.isReactNativeApplicationDomainEnabled = true;
139
-
140
136
  frontendChannel_(cdp::jsonNotification(
141
137
  "ReactNativeApplication.metadataUpdated",
142
- hostMetadataToDynamic(hostMetadata_)));
138
+ createHostMetadataPayload(hostMetadata_)));
143
139
 
144
140
  shouldSendOKResponse = true;
145
141
  isFinishedHandlingRequest = true;
@@ -13,6 +13,8 @@
13
13
  #include "InstanceTarget.h"
14
14
  #include "SessionState.h"
15
15
 
16
+ #include <jsinspector-modern/InspectorFlags.h>
17
+
16
18
  #include <folly/dynamic.h>
17
19
  #include <folly/json.h>
18
20
 
@@ -232,7 +234,22 @@ bool HostTargetController::decrementPauseOverlayCounter() {
232
234
  return true;
233
235
  }
234
236
 
235
- folly::dynamic hostMetadataToDynamic(const HostTargetMetadata& metadata) {
237
+ namespace {
238
+
239
+ struct StaticHostTargetMetadata {
240
+ std::optional<bool> isProfilingBuild;
241
+ };
242
+
243
+ StaticHostTargetMetadata getStaticHostMetadata() {
244
+ auto& inspectorFlags = jsinspector_modern::InspectorFlags::getInstance();
245
+
246
+ return {.isProfilingBuild = inspectorFlags.getIsProfilingBuild()};
247
+ }
248
+
249
+ } // namespace
250
+
251
+ folly::dynamic createHostMetadataPayload(const HostTargetMetadata& metadata) {
252
+ auto staticMetadata = getStaticHostMetadata();
236
253
  folly::dynamic result = folly::dynamic::object;
237
254
 
238
255
  if (metadata.appDisplayName) {
@@ -253,6 +270,10 @@ folly::dynamic hostMetadataToDynamic(const HostTargetMetadata& metadata) {
253
270
  if (metadata.reactNativeVersion) {
254
271
  result["reactNativeVersion"] = metadata.reactNativeVersion.value();
255
272
  }
273
+ if (staticMetadata.isProfilingBuild) {
274
+ result["unstable_isProfilingBuild"] =
275
+ staticMetadata.isProfilingBuild.value();
276
+ }
256
277
 
257
278
  return result;
258
279
  }
@@ -271,6 +271,6 @@ class JSINSPECTOR_EXPORT HostTarget
271
271
  friend class HostTargetController;
272
272
  };
273
273
 
274
- folly::dynamic hostMetadataToDynamic(const HostTargetMetadata& metadata);
274
+ folly::dynamic createHostMetadataPayload(const HostTargetMetadata& metadata);
275
275
 
276
276
  } // namespace facebook::react::jsinspector_modern
@@ -18,13 +18,25 @@ InspectorFlags& InspectorFlags::getInstance() {
18
18
  }
19
19
 
20
20
  bool InspectorFlags::getFuseboxEnabled() const {
21
+ if (fuseboxDisabledForTest_) {
22
+ return false;
23
+ }
24
+
21
25
  return loadFlagsAndAssertUnchanged().fuseboxEnabled;
22
26
  }
23
27
 
28
+ bool InspectorFlags::getIsProfilingBuild() const {
29
+ return loadFlagsAndAssertUnchanged().isProfilingBuild;
30
+ }
31
+
24
32
  void InspectorFlags::dangerouslyResetFlags() {
25
33
  *this = InspectorFlags{};
26
34
  }
27
35
 
36
+ void InspectorFlags::dangerouslyDisableFuseboxForTest() {
37
+ fuseboxDisabledForTest_ = true;
38
+ }
39
+
28
40
  #if defined(REACT_NATIVE_FORCE_ENABLE_FUSEBOX) && \
29
41
  defined(REACT_NATIVE_FORCE_DISABLE_FUSEBOX)
30
42
  #error \
@@ -39,15 +51,18 @@ const InspectorFlags::Values& InspectorFlags::loadFlagsAndAssertUnchanged()
39
51
  true,
40
52
  #elif defined(REACT_NATIVE_FORCE_DISABLE_FUSEBOX)
41
53
  false,
42
- #elif defined(HERMES_ENABLE_DEBUGGER) && \
43
- defined(REACT_NATIVE_ENABLE_FUSEBOX_DEBUG)
44
- true,
45
54
  #elif defined(HERMES_ENABLE_DEBUGGER)
46
- ReactNativeFeatureFlags::fuseboxEnabledDebug(),
55
+ true,
47
56
  #elif defined(REACT_NATIVE_ENABLE_FUSEBOX_RELEASE)
48
57
  true,
49
58
  #else
50
59
  ReactNativeFeatureFlags::fuseboxEnabledRelease(),
60
+ #endif
61
+ .isProfilingBuild =
62
+ #if defined(REACT_NATIVE_ENABLE_FUSEBOX_RELEASE)
63
+ true,
64
+ #else
65
+ false,
51
66
  #endif
52
67
  };
53
68
 
@@ -24,6 +24,18 @@ class InspectorFlags {
24
24
  */
25
25
  bool getFuseboxEnabled() const;
26
26
 
27
+ /**
28
+ * Flag determining if this is a profiling build
29
+ * (react_native.enable_fusebox_release).
30
+ */
31
+ bool getIsProfilingBuild() const;
32
+
33
+ /**
34
+ * Forcibly disable the main `getFuseboxEnabled()` flag. This should ONLY be
35
+ * used by `ReactInstanceIntegrationTest`.
36
+ */
37
+ void dangerouslyDisableFuseboxForTest();
38
+
27
39
  /**
28
40
  * Reset flags to their upstream values. The caller must ensure any resources
29
41
  * that have read previous flag values have been cleaned up.
@@ -33,6 +45,7 @@ class InspectorFlags {
33
45
  private:
34
46
  struct Values {
35
47
  bool fuseboxEnabled;
48
+ bool isProfilingBuild;
36
49
  bool operator==(const Values&) const = default;
37
50
  };
38
51
 
@@ -43,6 +56,7 @@ class InspectorFlags {
43
56
 
44
57
  mutable std::optional<Values> cachedValues_;
45
58
  mutable bool inconsistentFlagsStateLogged_{false};
59
+ bool fuseboxDisabledForTest_{false};
46
60
 
47
61
  const Values& loadFlagsAndAssertUnchanged() const;
48
62
  };