react-native-windows 0.76.3 → 0.77.0-preview.1

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 (369) hide show
  1. package/.flowconfig +5 -1
  2. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
  4. package/Libraries/Animated/AnimatedEvent.js +1 -1
  5. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  6. package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
  7. package/Libraries/Animated/NativeAnimatedAllowlist.windows.js +122 -0
  8. package/Libraries/Animated/animations/Animation.js +60 -25
  9. package/Libraries/Animated/animations/DecayAnimation.js +26 -38
  10. package/Libraries/Animated/animations/SpringAnimation.js +33 -39
  11. package/Libraries/Animated/animations/TimingAnimation.js +34 -42
  12. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  13. package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
  14. package/Libraries/Animated/createAnimatedComponent.js +60 -33
  15. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  16. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  17. package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
  18. package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
  19. package/Libraries/Animated/nodes/AnimatedProps.js +96 -46
  20. package/Libraries/Animated/nodes/AnimatedProps.windows.js +281 -0
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +108 -39
  22. package/Libraries/Animated/nodes/AnimatedStyle.windows.js +251 -0
  23. package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
  24. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
  26. package/Libraries/Animated/useAnimatedProps.js +41 -35
  27. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  28. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
  29. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
  30. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
  31. package/Libraries/Components/Button.js +9 -4
  32. package/Libraries/Components/Button.windows.js +19 -5
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  34. package/Libraries/Components/Glyph/Glyph.js +2 -1
  35. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
  36. package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
  37. package/Libraries/Components/Pressable/Pressable.js +4 -4
  38. package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
  39. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
  40. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
  41. package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
  42. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
  43. package/Libraries/Components/ScrollView/ScrollView.js +49 -88
  44. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  45. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
  46. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
  47. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
  48. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
  49. package/Libraries/Components/Switch/Switch.js +8 -6
  50. package/Libraries/Components/Switch/Switch.windows.js +8 -6
  51. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  52. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
  53. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
  54. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
  55. package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
  56. package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
  57. package/Libraries/Components/TextInput/TextInput.js +37 -13
  58. package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
  59. package/Libraries/Components/TextInput/TextInputState.js +11 -13
  60. package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
  61. package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
  62. package/Libraries/Components/Touchable/Position.js +7 -2
  63. package/Libraries/Components/Touchable/Touchable.js +4 -0
  64. package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
  65. package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
  66. package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
  67. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
  68. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
  70. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
  71. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
  73. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
  74. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
  75. package/Libraries/Components/View/View.js +4 -4
  76. package/Libraries/Components/View/View.windows.js +12 -5
  77. package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
  78. package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
  79. package/Libraries/Components/View/ViewNativeComponent.js +6 -98
  80. package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  81. package/Libraries/Components/View/ViewPropTypes.js +0 -3
  82. package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
  83. package/Libraries/Core/ExceptionsManager.js +50 -29
  84. package/Libraries/Core/ReactNativeVersion.js +3 -3
  85. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
  86. package/Libraries/Core/setUpBatchedBridge.js +1 -10
  87. package/Libraries/Core/setUpDeveloperTools.js +1 -5
  88. package/Libraries/Core/setUpErrorHandling.js +20 -18
  89. package/Libraries/Core/setUpReactDevTools.js +107 -8
  90. package/Libraries/Core/setUpSegmentFetcher.js +1 -0
  91. package/Libraries/Core/setUpTimers.js +21 -18
  92. package/Libraries/Debugging/DebuggingOverlay.js +4 -5
  93. package/Libraries/Image/AssetSourceResolver.js +12 -1
  94. package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
  95. package/Libraries/Image/Image.android.js +1 -5
  96. package/Libraries/Image/Image.d.ts +20 -29
  97. package/Libraries/Image/Image.ios.js +0 -2
  98. package/Libraries/Image/Image.windows.js +5 -1
  99. package/Libraries/Image/ImageBackground.js +2 -5
  100. package/Libraries/Image/ImageProps.js +7 -6
  101. package/Libraries/Image/ImageResizeMode.d.ts +8 -1
  102. package/Libraries/Image/ImageResizeMode.js +4 -1
  103. package/Libraries/Image/ImageSource.d.ts +0 -2
  104. package/Libraries/Image/ImageSource.js +0 -2
  105. package/Libraries/Image/ImageTypes.flow.js +11 -9
  106. package/Libraries/Image/ImageUtils.js +6 -3
  107. package/Libraries/Image/ImageViewNativeComponent.js +5 -3
  108. package/Libraries/Inspector/Inspector.js +1 -0
  109. package/Libraries/Inspector/NetworkOverlay.js +4 -0
  110. package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
  111. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
  112. package/Libraries/Interaction/InteractionManager.js +6 -1
  113. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  114. package/Libraries/Interaction/TouchHistoryMath.js +22 -19
  115. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  116. package/Libraries/Lists/FlatList.d.ts +1 -2
  117. package/Libraries/Lists/FlatList.js +2 -2
  118. package/Libraries/Lists/SectionListModern.js +7 -7
  119. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
  120. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  121. package/Libraries/LogBox/Data/LogBoxData.js +3 -3
  122. package/Libraries/LogBox/LogBox.js +18 -5
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
  126. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
  128. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  129. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
  132. package/Libraries/Modal/Modal.d.ts +12 -0
  133. package/Libraries/Modal/Modal.js +31 -4
  134. package/Libraries/Modal/Modal.windows.js +18 -0
  135. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
  136. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
  137. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
  138. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
  139. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
  140. package/Libraries/Network/XHRInterceptor.js +63 -14
  141. package/Libraries/Network/XMLHttpRequest.js +26 -1
  142. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  143. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
  144. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  145. package/Libraries/Pressability/HoverState.js +2 -0
  146. package/Libraries/Pressability/Pressability.js +2 -3
  147. package/Libraries/Pressability/Pressability.windows.js +2 -3
  148. package/Libraries/Pressability/usePressability.js +4 -1
  149. package/Libraries/ReactNative/AppContainer.js +1 -1
  150. package/Libraries/ReactNative/AppRegistry.js +1 -11
  151. package/Libraries/ReactNative/DisplayMode.js +1 -1
  152. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
  153. package/Libraries/ReactNative/RendererImplementation.js +18 -17
  154. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
  155. package/Libraries/ReactNative/renderApplication.js +9 -8
  156. package/Libraries/ReactNative/requireNativeComponent.js +5 -2
  157. package/Libraries/Renderer/shims/ReactFabric.js +3 -3
  158. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  159. package/Libraries/Renderer/shims/ReactNative.js +3 -3
  160. package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
  161. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
  162. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  163. package/Libraries/StyleSheet/StyleSheet.js +7 -1
  164. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
  165. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
  166. package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
  167. package/Libraries/StyleSheet/processTransform.js +3 -34
  168. package/Libraries/Text/Text.js +248 -249
  169. package/Libraries/Text/Text.windows.js +298 -292
  170. package/Libraries/Text/TextNativeComponent.js +0 -1
  171. package/Libraries/Text/TextProps.windows.js +2 -0
  172. package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
  173. package/Libraries/Types/CoreEventTypes.d.ts +3 -10
  174. package/Libraries/Types/CoreEventTypes.js +4 -6
  175. package/Libraries/Types/CoreEventTypes.windows.js +4 -6
  176. package/Libraries/Utilities/Appearance.js +3 -1
  177. package/Libraries/Utilities/BackHandler.android.js +6 -18
  178. package/Libraries/Utilities/BackHandler.d.ts +0 -4
  179. package/Libraries/Utilities/BackHandler.ios.js +0 -7
  180. package/Libraries/Utilities/BackHandler.windows.js +6 -18
  181. package/Libraries/Utilities/HMRClient.js +3 -4
  182. package/Libraries/Utilities/Platform.flow.js +2 -2
  183. package/Libraries/Utilities/Platform.flow.windows.js +3 -2
  184. package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
  185. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  186. package/Libraries/Utilities/useMergeRefs.js +26 -7
  187. package/Libraries/WebSocket/WebSocketEvent.js +4 -1
  188. package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
  189. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
  190. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  191. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
  192. package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
  193. package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
  194. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +2 -2
  195. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +197 -18
  196. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
  197. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +13 -0
  198. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +1 -1
  199. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
  200. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +2 -2
  201. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
  202. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
  203. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +24 -0
  204. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +5 -0
  205. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
  206. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
  207. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
  208. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
  209. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
  210. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
  211. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
  212. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
  213. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  214. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
  215. package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
  216. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
  217. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
  218. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
  219. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
  220. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
  221. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
  222. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
  223. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
  224. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
  225. package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
  226. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
  227. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
  228. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
  229. package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
  230. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
  231. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
  232. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
  233. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
  234. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
  235. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
  236. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
  237. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
  238. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
  239. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
  240. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
  241. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
  242. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
  243. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
  244. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
  245. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
  246. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
  247. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
  248. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
  249. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
  250. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
  251. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
  252. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
  253. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
  254. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
  255. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
  256. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
  257. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
  258. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
  259. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
  260. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
  261. package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
  262. package/PropertySheets/Bundle.Common.targets +1 -1
  263. package/PropertySheets/Bundle.props +3 -0
  264. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  265. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  266. package/PropertySheets/OutputMSBuildProperties.targets +3 -1
  267. package/ReactCommon/ReactCommon.vcxproj +5 -0
  268. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
  269. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
  270. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
  271. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
  272. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
  273. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
  274. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
  275. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +188 -39
  276. package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  277. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
  278. package/Shared/InspectorPackagerConnection.cpp +3 -6
  279. package/Shared/InspectorPackagerConnection.h +2 -2
  280. package/Shared/InstanceManager.h +1 -1
  281. package/Shared/OInstance.h +1 -1
  282. package/Shared/Shared.vcxitems +17 -2
  283. package/Shared/Shared.vcxitems.filters +3 -1
  284. package/Shared/TurboModuleManager.cpp +29 -4
  285. package/codegen/NativeAccessibilityInfoSpec.g.h +27 -9
  286. package/codegen/NativeAccessibilityManagerSpec.g.h +19 -13
  287. package/codegen/NativeActionSheetManagerSpec.g.h +4 -0
  288. package/codegen/NativeExceptionsManagerSpec.g.h +1 -7
  289. package/codegen/NativeIntersectionObserverSpec.g.h +2 -0
  290. package/codegen/NativePerformanceSpec.g.h +127 -3
  291. package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
  292. package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
  293. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +125 -137
  294. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  295. package/codegen/react/components/rnwcore/Props.cpp +1 -0
  296. package/codegen/react/components/rnwcore/Props.h +1 -0
  297. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  298. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
  299. package/codegen/react/components/rnwcore/States.h +0 -12
  300. package/codegen/rnwcoreJSI-generated.cpp +219 -186
  301. package/codegen/rnwcoreJSI.h +942 -511
  302. package/index.js +10 -3
  303. package/index.windows.js +10 -3
  304. package/jest/setup.js +36 -1
  305. package/just-task.js +15 -0
  306. package/package.json +22 -22
  307. package/src/private/animated/NativeAnimatedHelper.js +18 -16
  308. package/src/private/animated/useAnimatedPropsMemo.js +348 -0
  309. package/src/private/animated/useAnimatedPropsMemo.windows.js +356 -0
  310. package/src/private/components/HScrollViewNativeComponents.js +1 -27
  311. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
  312. package/src/private/components/VScrollViewNativeComponents.js +2 -25
  313. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  314. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  315. package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
  316. package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
  317. package/src/private/devmenu/DevMenu.d.ts +20 -0
  318. package/src/private/devmenu/DevMenu.js +31 -0
  319. package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
  320. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
  321. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
  322. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  323. package/src/private/setup/setUpDOM.js +14 -6
  324. package/src/private/setup/setUpMutationObserver.js +5 -0
  325. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
  326. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  327. package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
  328. package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
  329. package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
  330. package/src/private/specs/modules/NativeAppearance.js +4 -10
  331. package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
  332. package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
  333. package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
  334. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
  335. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
  336. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
  337. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
  338. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
  339. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  340. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
  341. package/src/private/webapis/performance/EventTiming.js +13 -8
  342. package/src/private/webapis/performance/Performance.js +66 -73
  343. package/src/private/webapis/performance/PerformanceEntry.js +2 -5
  344. package/src/private/webapis/performance/PerformanceObserver.js +65 -164
  345. package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
  346. package/src/private/webapis/performance/UserTiming.js +11 -7
  347. package/src/private/webapis/performance/Utilities.js +18 -0
  348. package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
  349. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  350. package/templates/cpp-lib/template.config.js +13 -7
  351. package/templates/templateUtils.js +10 -0
  352. package/types/index.d.ts +1 -1
  353. package/types/public/ReactNativeTypes.d.ts +4 -8
  354. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
  355. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
  356. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
  357. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
  358. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
  359. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  360. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
  361. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
  362. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -53
  363. package/codegen/NativePerformanceObserverSpec.g.h +0 -131
  364. package/src/private/components/useSyncOnScroll.js +0 -48
  365. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
  366. package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
  367. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
  368. package/types/experimental.d.ts +0 -59
  369. /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
@@ -0,0 +1,90 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/bridging/Base.h>
11
+
12
+ namespace facebook::react::bridging {
13
+
14
+ template <
15
+ typename T,
16
+ typename C,
17
+ typename R,
18
+ typename... Args,
19
+ typename... JSArgs>
20
+ T callFromJs(
21
+ jsi::Runtime& rt,
22
+ R (C::*method)(jsi::Runtime&, Args...),
23
+ const std::shared_ptr<CallInvoker>& jsInvoker,
24
+ C* instance,
25
+ JSArgs&&... args) {
26
+ static_assert(
27
+ sizeof...(Args) == sizeof...(JSArgs), "Incorrect arguments length");
28
+ static_assert(
29
+ (supportsFromJs<Args, JSArgs> && ...), "Incompatible arguments");
30
+
31
+ if constexpr (std::is_void_v<T>) {
32
+ (instance->*method)(
33
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...);
34
+
35
+ } else if constexpr (std::is_void_v<R>) {
36
+ static_assert(
37
+ std::is_same_v<T, jsi::Value>,
38
+ "Void functions may only return undefined");
39
+
40
+ (instance->*method)(
41
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...);
42
+ return jsi::Value();
43
+
44
+ } else if constexpr (is_jsi_v<T>) {
45
+ static_assert(supportsToJs<R, T>, "Incompatible return type");
46
+
47
+ return toJs(
48
+ rt,
49
+ (instance->*method)(
50
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...),
51
+ jsInvoker);
52
+
53
+ } else if constexpr (is_optional_jsi_v<T>) {
54
+ static_assert(
55
+ is_optional_v<R>
56
+ ? supportsToJs<typename R::value_type, typename T::value_type>
57
+ : supportsToJs<R, typename T::value_type>,
58
+ "Incompatible return type");
59
+
60
+ auto result = toJs(
61
+ rt,
62
+ (instance->*method)(
63
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...),
64
+ jsInvoker);
65
+
66
+ if constexpr (std::is_same_v<decltype(result), jsi::Value>) {
67
+ if (result.isNull() || result.isUndefined()) {
68
+ return std::nullopt;
69
+ }
70
+ }
71
+
72
+ return convert(rt, std::move(result));
73
+ } else {
74
+ static_assert(std::is_convertible_v<R, T>, "Incompatible return type");
75
+ return (instance->*method)(
76
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...);
77
+ }
78
+ }
79
+
80
+ template <typename R, typename... Args>
81
+ constexpr size_t getParameterCount(R (*)(Args...)) {
82
+ return sizeof...(Args);
83
+ }
84
+
85
+ template <typename C, typename R, typename... Args>
86
+ constexpr size_t getParameterCount(R (C::*)(Args...)) {
87
+ return sizeof...(Args);
88
+ }
89
+
90
+ } // namespace facebook::react::bridging
@@ -1,172 +1,170 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- // [Windows #13391]
9
-
10
- #pragma once
11
-
12
- #include <jsi/jsi.h>
13
-
14
- #include <optional>
15
- #include <type_traits>
16
-
17
- namespace facebook::react::bridging {
18
-
19
- // std::remove_cvref_t is not available until C++20.
20
- template <typename T>
21
- using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
22
-
23
- template <typename T>
24
- inline constexpr bool is_jsi_v =
25
- std::is_same_v<jsi::Value, remove_cvref_t<T>> ||
26
- std::is_same_v<jsi::String, remove_cvref_t<T>> ||
27
- std::is_base_of_v<jsi::Object, remove_cvref_t<T>>;
28
-
29
- template <typename>
30
- struct is_optional : std::false_type {};
31
-
32
- template <typename T>
33
- struct is_optional<std::optional<T>> : std::true_type {};
34
-
35
- template <typename T>
36
- inline constexpr bool is_optional_v = is_optional<T>::value;
37
-
38
- template <typename T, typename = void>
39
- inline constexpr bool is_optional_jsi_v = false;
40
-
41
- template <typename T>
42
- inline constexpr bool
43
- is_optional_jsi_v<T, typename std::enable_if_t<is_optional_v<T>>> =
44
- is_jsi_v<typename T::value_type>;
45
-
46
- template <typename T>
47
- struct Converter;
48
-
49
- template <typename T>
50
- struct ConverterBase {
51
- using BaseT = remove_cvref_t<T>;
52
-
53
- ConverterBase(jsi::Runtime& rt, T&& value)
54
- : rt_(rt), value_(std::forward<T>(value)) {}
55
-
56
- operator BaseT() && {
57
- if constexpr (std::is_lvalue_reference_v<T>) {
58
- // Copy the reference into a Value that then can be moved from.
59
- auto value = jsi::Value(rt_, value_);
60
-
61
- if constexpr (std::is_same_v<BaseT, jsi::Value>) {
62
- return std::move(value);
63
- } else if constexpr (std::is_same_v<BaseT, jsi::String>) {
64
- return std::move(value).getString(rt_);
65
- } else if constexpr (std::is_same_v<BaseT, jsi::Object>) {
66
- return std::move(value).getObject(rt_);
67
- } else if constexpr (std::is_same_v<BaseT, jsi::Array>) {
68
- return std::move(value).getObject(rt_).getArray(rt_);
69
- } else if constexpr (std::is_same_v<BaseT, jsi::Function>) {
70
- return std::move(value).getObject(rt_).getFunction(rt_);
71
- }
72
- } else {
73
- return std::move(value_);
74
- }
75
- }
76
-
77
- template <
78
- typename U,
79
- std::enable_if_t<
80
- std::is_lvalue_reference_v<T> &&
81
- // Ensure non-reference type can be converted to the desired type.
82
- std::is_convertible_v<Converter<BaseT>, U>,
83
- int> = 0>
84
- operator U() && {
85
- return Converter<BaseT>(rt_, std::move(*this).operator BaseT());
86
- }
87
-
88
- template <
89
- typename U,
90
- std::enable_if_t<is_jsi_v<T> && std::is_same_v<U, jsi::Value>, int> = 0>
91
- operator U() && = delete; // Prevent unwanted upcasting of JSI values.
92
-
93
- protected:
94
- jsi::Runtime& rt_;
95
- T value_;
96
- };
97
-
98
- template <typename T>
99
- struct Converter : public ConverterBase<T> {
100
- using ConverterBase<T>::ConverterBase;
101
- };
102
-
103
- template <>
104
- struct Converter<jsi::Value> : public ConverterBase<jsi::Value> {
105
- using ConverterBase<jsi::Value>::ConverterBase;
106
-
107
- operator jsi::String() && {
108
- return std::move(value_).asString(rt_);
109
- }
110
-
111
- operator jsi::Object() && {
112
- return std::move(value_).asObject(rt_);
113
- }
114
-
115
- operator jsi::Array() && {
116
- return std::move(value_).asObject(rt_).asArray(rt_);
117
- }
118
-
119
- operator jsi::Function() && {
120
- return std::move(value_).asObject(rt_).asFunction(rt_);
121
- }
122
- };
123
-
124
- template <>
125
- struct Converter<jsi::Object> : public ConverterBase<jsi::Object> {
126
- using ConverterBase<jsi::Object>::ConverterBase;
127
-
128
- operator jsi::Array() && {
129
- return std::move(value_).asArray(rt_);
130
- }
131
-
132
- operator jsi::Function() && {
133
- return std::move(value_).asFunction(rt_);
134
- }
135
- };
136
-
137
- template <typename T>
138
- struct Converter<std::optional<T>> : public ConverterBase<jsi::Value> {
139
- Converter(jsi::Runtime& rt, std::optional<T> value)
140
- : ConverterBase(rt, value ? std::move(*value) : jsi::Value::null()) {}
141
-
142
- operator std::optional<T>() && {
143
- if (value_.isNull() || value_.isUndefined()) {
144
- return {};
145
- }
146
- return std::move(value_);
147
- }
148
- };
149
-
150
- template <typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
151
- auto convert(jsi::Runtime& rt, T&& value) {
152
- return Converter<T>(rt, std::forward<T>(value));
153
- }
154
-
155
- template <
156
- typename T,
157
- std::enable_if_t<is_jsi_v<T> || std::is_scalar_v<T>, int> = 0>
158
- auto convert(jsi::Runtime& rt, std::optional<T> value) {
159
- return Converter<std::optional<T>>(rt, std::move(value));
160
- }
161
-
162
- template <typename T, std::enable_if_t<std::is_scalar_v<T>, int> = 0>
163
- auto convert(jsi::Runtime& rt, T&& value) {
164
- return value;
165
- }
166
-
167
- template <typename T>
168
- auto convert(jsi::Runtime& rt, Converter<T>&& converter) {
169
- return std::move(converter);
170
- }
171
-
172
- } // namespace facebook::react::bridging
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <jsi/jsi.h>
11
+
12
+ #include <optional>
13
+ #include <type_traits>
14
+
15
+ namespace facebook::react::bridging {
16
+
17
+ // std::remove_cvref_t is not available until C++20.
18
+ template <typename T>
19
+ using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
20
+
21
+ template <typename T>
22
+ inline constexpr bool is_jsi_v =
23
+ std::is_same_v<jsi::Value, remove_cvref_t<T>> ||
24
+ std::is_same_v<jsi::String, remove_cvref_t<T>> ||
25
+ std::is_base_of_v<jsi::Object, remove_cvref_t<T>>;
26
+
27
+ template <typename>
28
+ struct is_optional : std::false_type {};
29
+
30
+ template <typename T>
31
+ struct is_optional<std::optional<T>> : std::true_type {};
32
+
33
+ template <typename T>
34
+ inline constexpr bool is_optional_v = is_optional<T>::value;
35
+
36
+ template <typename T, typename = void>
37
+ inline constexpr bool is_optional_jsi_v = false;
38
+
39
+ template <typename T>
40
+ inline constexpr bool
41
+ is_optional_jsi_v<T, typename std::enable_if_t<is_optional_v<T>>> =
42
+ is_jsi_v<typename T::value_type>;
43
+
44
+ template <typename T>
45
+ struct Converter;
46
+
47
+ template <typename T>
48
+ struct ConverterBase {
49
+ using BaseT = remove_cvref_t<T>;
50
+
51
+ ConverterBase(jsi::Runtime& rt, T&& value)
52
+ : rt_(rt), value_(std::forward<T>(value)) {}
53
+
54
+ operator BaseT() && {
55
+ if constexpr (std::is_lvalue_reference_v<T>) {
56
+ // Copy the reference into a Value that then can be moved from.
57
+ auto value = jsi::Value(rt_, value_);
58
+
59
+ if constexpr (std::is_same_v<BaseT, jsi::Value>) {
60
+ return std::move(value);
61
+ } else if constexpr (std::is_same_v<BaseT, jsi::String>) {
62
+ return std::move(value).getString(rt_);
63
+ } else if constexpr (std::is_same_v<BaseT, jsi::Object>) {
64
+ return std::move(value).getObject(rt_);
65
+ } else if constexpr (std::is_same_v<BaseT, jsi::Array>) {
66
+ return std::move(value).getObject(rt_).getArray(rt_);
67
+ } else if constexpr (std::is_same_v<BaseT, jsi::Function>) {
68
+ return std::move(value).getObject(rt_).getFunction(rt_);
69
+ }
70
+ } else {
71
+ return std::move(value_);
72
+ }
73
+ }
74
+
75
+ template <
76
+ typename U,
77
+ std::enable_if_t<
78
+ std::is_lvalue_reference_v<T> &&
79
+ // Ensure non-reference type can be converted to the desired type.
80
+ std::is_convertible_v<Converter<BaseT>, U>,
81
+ int> = 0>
82
+ operator U() && {
83
+ return Converter<BaseT>(rt_, std::move(*this).operator BaseT());
84
+ }
85
+
86
+ template <
87
+ typename U,
88
+ std::enable_if_t<is_jsi_v<T> && std::is_same_v<U, jsi::Value>, int> = 0>
89
+ operator U() && = delete; // Prevent unwanted upcasting of JSI values.
90
+
91
+ protected:
92
+ jsi::Runtime& rt_;
93
+ T value_;
94
+ };
95
+
96
+ template <typename T>
97
+ struct Converter : public ConverterBase<T> {
98
+ using ConverterBase<T>::ConverterBase;
99
+ };
100
+
101
+ template <>
102
+ struct Converter<jsi::Value> : public ConverterBase<jsi::Value> {
103
+ using ConverterBase<jsi::Value>::ConverterBase;
104
+
105
+ operator jsi::String() && {
106
+ return std::move(value_).asString(rt_);
107
+ }
108
+
109
+ operator jsi::Object() && {
110
+ return std::move(value_).asObject(rt_);
111
+ }
112
+
113
+ operator jsi::Array() && {
114
+ return std::move(value_).asObject(rt_).asArray(rt_);
115
+ }
116
+
117
+ operator jsi::Function() && {
118
+ return std::move(value_).asObject(rt_).asFunction(rt_);
119
+ }
120
+ };
121
+
122
+ template <>
123
+ struct Converter<jsi::Object> : public ConverterBase<jsi::Object> {
124
+ using ConverterBase<jsi::Object>::ConverterBase;
125
+
126
+ operator jsi::Array() && {
127
+ return std::move(value_).asArray(rt_);
128
+ }
129
+
130
+ operator jsi::Function() && {
131
+ return std::move(value_).asFunction(rt_);
132
+ }
133
+ };
134
+
135
+ template <typename T>
136
+ struct Converter<std::optional<T>> : public ConverterBase<jsi::Value> {
137
+ Converter(jsi::Runtime& rt, std::optional<T> value)
138
+ : ConverterBase(rt, value ? std::move(*value) : jsi::Value::null()) {}
139
+
140
+ operator std::optional<T>() && {
141
+ if (value_.isNull() || value_.isUndefined()) {
142
+ return {};
143
+ }
144
+ return std::move(value_);
145
+ }
146
+ };
147
+
148
+ template <typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
149
+ auto convert(jsi::Runtime& rt, T&& value) {
150
+ return Converter<T>(rt, std::forward<T>(value));
151
+ }
152
+
153
+ template <
154
+ typename T,
155
+ std::enable_if_t<is_jsi_v<T> || std::is_scalar_v<T>, int> = 0>
156
+ auto convert(jsi::Runtime& rt, std::optional<T> value) {
157
+ return Converter<std::optional<T>>(rt, std::move(value));
158
+ }
159
+
160
+ template <typename T, std::enable_if_t<std::is_scalar_v<T>, int> = 0>
161
+ auto convert(jsi::Runtime& /*rt*/, T&& value) {
162
+ return value;
163
+ }
164
+
165
+ template <typename T>
166
+ auto convert(jsi::Runtime& /*rt*/, Converter<T>&& converter) {
167
+ return std::move(converter);
168
+ }
169
+
170
+ } // namespace facebook::react::bridging
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/bridging/Base.h>
11
+
12
+ namespace facebook::react {
13
+
14
+ class Error {
15
+ public:
16
+ // TODO (T114055466): Retain stack trace (at least caller location)
17
+ Error(std::string message) : message_(std::move(message)) {}
18
+
19
+ Error(const char* message) : Error(std::string(message)) {}
20
+
21
+ const std::string& message() const {
22
+ return message_;
23
+ }
24
+
25
+ private:
26
+ std::string message_;
27
+ };
28
+
29
+ template <>
30
+ struct Bridging<jsi::JSError> {
31
+ static jsi::JSError fromJs(jsi::Runtime& rt, const jsi::Value& value) {
32
+ return jsi::JSError(rt, jsi::Value(rt, value));
33
+ }
34
+
35
+ static jsi::JSError fromJs(jsi::Runtime& rt, jsi::Value&& value) {
36
+ return jsi::JSError(rt, std::move(value));
37
+ }
38
+
39
+ static jsi::Value toJs(jsi::Runtime& rt, std::string message) {
40
+ return jsi::Value(rt, jsi::JSError(rt, std::move(message)).value());
41
+ }
42
+ };
43
+
44
+ template <>
45
+ struct Bridging<Error> {
46
+ static jsi::Value toJs(jsi::Runtime& rt, const Error& error) {
47
+ return jsi::Value(rt, jsi::JSError(rt, error.message()).value());
48
+ }
49
+ };
50
+
51
+ } // namespace facebook::react