react-native-windows 0.80.1 → 0.81.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 (672) hide show
  1. package/.flowconfig +10 -5
  2. package/Directory.Build.props +1 -1
  3. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  4. package/Libraries/Alert/Alert.js +3 -3
  5. package/Libraries/Alert/Alert.windows.js +5 -2
  6. package/Libraries/Alert/NativeAlertManager.js +1 -0
  7. package/Libraries/Alert/RCTAlertManager.android.js +19 -13
  8. package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
  9. package/Libraries/Alert/RCTAlertManager.js +1 -3
  10. package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
  11. package/Libraries/Animated/Animated.js +0 -1
  12. package/Libraries/Animated/Animated.js.flow +0 -1
  13. package/Libraries/Animated/AnimatedEvent.js +4 -3
  14. package/Libraries/Animated/AnimatedExports.js +0 -1
  15. package/Libraries/Animated/AnimatedExports.js.flow +5 -1
  16. package/Libraries/Animated/AnimatedImplementation.js +44 -44
  17. package/Libraries/Animated/AnimatedMock.js +2 -2
  18. package/Libraries/Animated/Easing.js +1 -1
  19. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  21. package/Libraries/Animated/SpringConfig.js +1 -1
  22. package/Libraries/Animated/animations/Animation.js +10 -2
  23. package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
  24. package/Libraries/Animated/components/AnimatedText.js +2 -5
  25. package/Libraries/Animated/components/AnimatedView.js +2 -1
  26. package/Libraries/Animated/createAnimatedComponent.js +39 -37
  27. package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
  28. package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
  29. package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
  30. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
  31. package/Libraries/AppState/NativeAppState.js +1 -0
  32. package/Libraries/AppTheme/AppTheme.js +1 -1
  33. package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
  34. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  35. package/Libraries/Blob/BlobManager.js +4 -0
  36. package/Libraries/Blob/NativeBlobModule.js +1 -0
  37. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  38. package/Libraries/Blob/URL.js +1 -1
  39. package/Libraries/Blob/URLSearchParams.js +5 -1
  40. package/Libraries/Blob/URLSearchParams.js.flow +2 -1
  41. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
  42. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
  43. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  44. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  45. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
  46. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +1 -1
  47. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
  48. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  49. package/Libraries/Components/Button.js +10 -7
  50. package/Libraries/Components/Button.windows.js +4 -4
  51. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  52. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
  53. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
  54. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
  56. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
  57. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
  58. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
  59. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +1 -1
  60. package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
  61. package/Libraries/Components/Keyboard/Keyboard.js +1 -1
  62. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
  63. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
  64. package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
  65. package/Libraries/Components/Popup/PopupNativeComponent.js +1 -1
  66. package/Libraries/Components/Pressable/Pressable.js +17 -8
  67. package/Libraries/Components/Pressable/Pressable.windows.js +17 -14
  68. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
  69. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  70. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
  71. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
  72. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
  73. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  74. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  75. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
  76. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
  77. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
  78. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
  79. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  80. package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
  81. package/Libraries/Components/ScrollView/ScrollView.js +25 -15
  82. package/Libraries/Components/ScrollView/ScrollView.windows.js +25 -14
  83. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  84. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
  85. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
  86. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
  87. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  88. package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
  89. package/Libraries/Components/Sound/SoundManager.js +1 -1
  90. package/Libraries/Components/StaticRenderer.js +1 -1
  91. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
  92. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
  93. package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
  94. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  95. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
  96. package/Libraries/Components/Switch/Switch.js +10 -3
  97. package/Libraries/Components/Switch/Switch.windows.js +10 -3
  98. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
  99. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
  100. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
  101. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  102. package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
  103. package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
  104. package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -15
  105. package/Libraries/Components/TextInput/TextInput.js +42 -39
  106. package/Libraries/Components/TextInput/TextInput.windows.js +69 -38
  107. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  108. package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
  109. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -17
  110. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
  111. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  112. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
  113. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  114. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
  115. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
  116. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  117. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  118. package/Libraries/Components/Touchable/Position.js +1 -1
  119. package/Libraries/Components/Touchable/Touchable.js +17 -3
  120. package/Libraries/Components/Touchable/Touchable.windows.js +17 -3
  121. package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
  122. package/Libraries/Components/Touchable/TouchableBounce.windows.js +9 -3
  123. package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
  124. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +14 -5
  125. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
  126. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +5 -3
  127. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
  128. package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
  129. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +10 -5
  130. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  131. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
  132. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
  133. package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
  134. package/Libraries/Components/View/View.js +114 -29
  135. package/Libraries/Components/View/View.windows.js +261 -217
  136. package/Libraries/Components/View/ViewAccessibility.js +1 -8
  137. package/Libraries/Components/View/ViewAccessibility.windows.js +1 -8
  138. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -1
  139. package/Libraries/Components/View/ViewPropTypes.js +9 -1
  140. package/Libraries/Components/View/ViewPropTypes.windows.js +9 -1
  141. package/Libraries/Core/Devtools/getDevServer.js +1 -1
  142. package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
  143. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +49 -7
  144. package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
  145. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
  146. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  147. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  148. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  149. package/Libraries/Core/ExceptionsManager.js +27 -16
  150. package/Libraries/Core/InitializeCore.js +2 -23
  151. package/Libraries/Core/NativeExceptionsManager.js +1 -0
  152. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  153. package/Libraries/Core/ReactNativeVersion.js +3 -2
  154. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  155. package/Libraries/Core/Timers/JSTimers.js +1 -1
  156. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  157. package/Libraries/Core/Timers/immediateShim.js +1 -1
  158. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  159. package/Libraries/Core/checkNativeVersion.js +1 -0
  160. package/Libraries/Core/setUpDeveloperTools.js +13 -11
  161. package/Libraries/Core/setUpReactDevTools.js +21 -4
  162. package/Libraries/Debugging/DebuggingOverlay.js +12 -14
  163. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
  164. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  165. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  166. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  167. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  168. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  169. package/Libraries/Image/AssetRegistry.js +4 -10
  170. package/Libraries/Image/Image.android.js +113 -107
  171. package/Libraries/Image/Image.ios.js +10 -2
  172. package/Libraries/Image/Image.windows.js +30 -20
  173. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  174. package/Libraries/Image/ImageInjection.js +1 -1
  175. package/Libraries/Image/ImageSource.d.ts +5 -0
  176. package/Libraries/Image/ImageViewNativeComponent.js +3 -3
  177. package/Libraries/Image/NativeImageEditor.js +1 -0
  178. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  179. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  180. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  181. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  182. package/Libraries/Image/RelativeImageStub.js +2 -1
  183. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
  184. package/Libraries/Image/resolveAssetSource.js +1 -1
  185. package/Libraries/Image/resolveAssetSource.windows.js +1 -1
  186. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  187. package/Libraries/Interaction/InteractionManager.js +64 -54
  188. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  189. package/Libraries/Interaction/TaskQueue.js +8 -9
  190. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  191. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
  192. package/Libraries/Linking/Linking.js +1 -1
  193. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  194. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  195. package/Libraries/Lists/FlatList.d.ts +9 -5
  196. package/Libraries/Lists/FlatList.js +6 -7
  197. package/Libraries/Lists/SectionList.js +4 -4
  198. package/Libraries/Lists/SectionListModern.js +9 -3
  199. package/Libraries/Lists/VirtualizedList.js +3 -2
  200. package/Libraries/LogBox/Data/LogBoxData.js +7 -4
  201. package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
  202. package/Libraries/LogBox/LogBox.js +72 -99
  203. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  204. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  205. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +2 -1
  206. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  207. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  208. package/Libraries/Modal/Modal.d.ts +8 -2
  209. package/Libraries/Modal/Modal.js +24 -3
  210. package/Libraries/Modal/Modal.windows.js +24 -3
  211. package/Libraries/Modal/NativeModalManager.js +1 -0
  212. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
  213. package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
  214. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
  215. package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
  216. package/Libraries/NativeComponent/BaseViewConfig.windows.js +9 -18
  217. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
  218. package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
  219. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  220. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  221. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  222. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  223. package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +1 -0
  224. package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
  225. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  226. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  227. package/Libraries/Network/FormData.js +1 -1
  228. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  229. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  230. package/Libraries/Network/RCTNetworking.android.js +2 -2
  231. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  232. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  233. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  234. package/Libraries/Network/XMLHttpRequest.js +3 -3
  235. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  236. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
  237. package/Libraries/Pressability/Pressability.js +1 -1
  238. package/Libraries/Pressability/Pressability.windows.js +1 -1
  239. package/Libraries/Promise.js +1 -1
  240. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  241. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
  242. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  243. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  244. package/Libraries/ReactNative/AppContainer.js +1 -1
  245. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  246. package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
  247. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  248. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  249. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  250. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  251. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  252. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  253. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
  254. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
  255. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
  256. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  257. package/Libraries/ReactNative/RendererProxy.js +1 -1
  258. package/Libraries/ReactNative/RootTag.js +2 -2
  259. package/Libraries/ReactNative/renderApplication.js +1 -1
  260. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  261. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
  262. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
  263. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
  264. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
  265. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
  266. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
  267. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +261 -0
  268. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  269. package/Libraries/Settings/Settings.ios.js +1 -1
  270. package/Libraries/Settings/Settings.js +1 -1
  271. package/Libraries/Settings/SettingsFallback.js +1 -1
  272. package/Libraries/Share/NativeShareModule.js +1 -0
  273. package/Libraries/Share/Share.js +1 -1
  274. package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
  275. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  276. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  277. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
  278. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  279. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
  280. package/Libraries/StyleSheet/PointPropType.js +1 -1
  281. package/Libraries/StyleSheet/Rect.js +1 -1
  282. package/Libraries/StyleSheet/StyleSheet.js +1 -0
  283. package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
  284. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  285. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  286. package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
  287. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  288. package/Libraries/StyleSheet/processColor.js +1 -1
  289. package/Libraries/StyleSheet/processColorArray.js +1 -1
  290. package/Libraries/StyleSheet/processFilter.js +1 -2
  291. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  292. package/Libraries/StyleSheet/processTransform.js +1 -1
  293. package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
  294. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  295. package/Libraries/Text/Text.d.ts +1 -2
  296. package/Libraries/Text/Text.js +255 -246
  297. package/Libraries/Text/Text.windows.js +282 -301
  298. package/Libraries/Text/TextAncestor.js +3 -9
  299. package/Libraries/Text/TextAncestorContext.js +23 -0
  300. package/Libraries/Text/TextNativeComponent.js +4 -0
  301. package/Libraries/Text/TextProps.js +2 -5
  302. package/Libraries/Text/TextProps.windows.js +2 -6
  303. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  304. package/Libraries/Types/CodegenTypes.js +1 -1
  305. package/Libraries/Types/CodegenTypesNamespace.js +2 -1
  306. package/Libraries/Types/CoreEventTypes.d.ts +4 -0
  307. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  308. package/Libraries/Utilities/Appearance.js +1 -1
  309. package/Libraries/Utilities/BackHandler.js.flow +1 -1
  310. package/Libraries/Utilities/DevLoadingView.js +1 -1
  311. package/Libraries/Utilities/DeviceInfo.js +1 -1
  312. package/Libraries/Utilities/Dimensions.js +1 -1
  313. package/Libraries/Utilities/HMRClient.js +13 -3
  314. package/Libraries/Utilities/HMRClientProdShim.js +1 -1
  315. package/Libraries/Utilities/NativeAppearance.js +1 -0
  316. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  317. package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
  318. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  319. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  320. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  321. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  322. package/Libraries/Utilities/PixelRatio.js +1 -1
  323. package/Libraries/Utilities/Platform.android.js +2 -5
  324. package/Libraries/Utilities/Platform.ios.js +2 -5
  325. package/Libraries/Utilities/Platform.js +1 -1
  326. package/Libraries/Utilities/Platform.js.flow +2 -2
  327. package/Libraries/Utilities/Platform.windows.js +2 -5
  328. package/Libraries/Utilities/PlatformTypes.js +2 -2
  329. package/Libraries/Utilities/RCTLog.js +1 -1
  330. package/Libraries/Utilities/SceneTracker.js +1 -1
  331. package/Libraries/Utilities/binaryToBase64.js +1 -1
  332. package/Libraries/Utilities/codegenNativeCommands.js +5 -3
  333. package/Libraries/Utilities/codegenNativeComponent.js +4 -4
  334. package/Libraries/Utilities/createPerformanceLogger.js +27 -20
  335. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  336. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  337. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  338. package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
  339. package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
  340. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  341. package/Libraries/Utilities/logError.js +1 -1
  342. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  343. package/Libraries/Utilities/stringifySafe.js +1 -1
  344. package/Libraries/Utilities/stringifyViewConfig.js +1 -1
  345. package/Libraries/Utilities/useColorScheme.js +1 -1
  346. package/Libraries/Utilities/useWindowDimensions.js +1 -1
  347. package/Libraries/Utilities/warnOnce.js +1 -1
  348. package/Libraries/Vibration/NativeVibration.js +1 -0
  349. package/Libraries/Vibration/Vibration.js +1 -2
  350. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  351. package/Libraries/WebSocket/WebSocket.js +1 -1
  352. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  353. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  354. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  355. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  356. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +3 -3
  357. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
  358. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
  359. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
  360. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
  361. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
  362. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
  363. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
  364. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
  365. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
  366. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
  367. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
  368. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
  369. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
  370. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +6 -6
  371. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
  372. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
  373. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
  374. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
  375. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
  376. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  377. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
  378. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +41 -37
  379. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
  380. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
  381. package/Microsoft.ReactNative/JsiApi.cpp +1 -1
  382. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
  383. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
  384. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
  385. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
  386. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
  387. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
  388. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
  389. package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
  390. package/Microsoft.ReactNative/QuirkSettings.h +3 -0
  391. package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
  392. package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
  393. package/Microsoft.ReactNative/ReactHost/React.h +11 -4
  394. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +166 -29
  395. package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
  396. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
  397. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  398. package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
  399. package/Microsoft.ReactNative/ReactRootView.h +6 -0
  400. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
  401. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
  402. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
  403. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
  404. package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
  405. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
  406. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
  407. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
  408. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
  409. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
  410. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  411. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
  412. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
  413. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
  414. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
  415. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
  416. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
  417. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
  418. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
  419. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
  420. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
  421. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
  422. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
  423. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
  424. package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
  425. package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
  426. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
  427. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
  428. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  429. package/PropertySheets/JSEngine.props +1 -1
  430. package/PropertySheets/React.Cpp.props +6 -4
  431. package/README.md +1 -1
  432. package/ReactCommon/ReactCommon.vcxproj +29 -21
  433. package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
  451. package/ReactCommon/cgmanifest.json +1 -1
  452. package/Scripts/Analyze-Crash.ps1 +87 -3
  453. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  454. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
  455. package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
  456. package/Scripts/creaternwapp.cmd +10 -6
  457. package/Scripts/rnw-dependencies.ps1 +33 -4
  458. package/Shared/CreateModules.h +0 -35
  459. package/Shared/DevServerHelper.h +13 -3
  460. package/Shared/DevSettings.h +6 -5
  461. package/Shared/DevSupportManager.cpp +79 -20
  462. package/Shared/DevSupportManager.h +7 -19
  463. package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
  464. package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
  465. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
  466. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
  467. package/Shared/HermesRuntimeHolder.cpp +29 -111
  468. package/Shared/HermesRuntimeHolder.h +214 -32
  469. package/Shared/IDevSupportManager.h +5 -2
  470. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
  471. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
  472. package/Shared/Inspector/ReactInspectorThread.h +18 -0
  473. package/Shared/JSI/RuntimeHolder.h +5 -2
  474. package/Shared/Modules/BlobModule.cpp +0 -90
  475. package/Shared/Modules/BlobModule.h +0 -40
  476. package/Shared/Modules/FileReaderModule.cpp +0 -104
  477. package/Shared/Modules/FileReaderModule.h +0 -38
  478. package/Shared/Modules/HttpModule.cpp +0 -172
  479. package/Shared/Modules/HttpModule.h +0 -47
  480. package/Shared/Modules/WebSocketModule.cpp +0 -287
  481. package/Shared/Modules/WebSocketModule.h +1 -94
  482. package/Shared/OInstance.cpp +45 -139
  483. package/Shared/OInstance.h +0 -1
  484. package/Shared/Shared.vcxitems +33 -32
  485. package/Shared/Shared.vcxitems.filters +38 -51
  486. package/Shared/TurboModuleManager.cpp +0 -1
  487. package/codegen/NativeDOMSpec.g.h +6 -0
  488. package/codegen/NativeDeviceInfoSpec.g.h +2 -0
  489. package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
  490. package/codegen/NativeMutationObserverSpec.g.h +4 -4
  491. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
  492. package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
  493. package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
  494. package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
  495. package/codegen/react/components/rnwcore/Props.cpp +535 -24
  496. package/codegen/react/components/rnwcore/Props.h +138 -0
  497. package/codegen/react/components/rnwcore/States.h +9 -78
  498. package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
  499. package/codegen/rnwcoreJSI-generated.cpp +101 -31
  500. package/codegen/rnwcoreJSI.h +169 -88
  501. package/include/Shared/II18nModule.h +0 -1
  502. package/index.js +22 -2
  503. package/index.windows.js +131 -221
  504. package/interface.js +1 -1
  505. package/jest/MockNativeMethods.js +9 -3
  506. package/jest/RefreshControlMock.js +32 -0
  507. package/jest/assetFileTransformer.js +1 -0
  508. package/jest/local-setup.js +4 -3
  509. package/jest/mock.js +39 -0
  510. package/jest/mockComponent.js +47 -17
  511. package/jest/mockNativeComponent.js +26 -15
  512. package/jest/mocks/AccessibilityInfo.js +62 -0
  513. package/jest/mocks/ActivityIndicator.js +23 -0
  514. package/jest/mocks/AppState.js +19 -0
  515. package/jest/mocks/Clipboard.js +16 -0
  516. package/jest/mocks/Image.js +23 -0
  517. package/jest/mocks/InitializeCore.js +9 -0
  518. package/jest/mocks/Linking.js +28 -0
  519. package/jest/mocks/Modal.js +33 -0
  520. package/jest/mocks/NativeComponentRegistry.js +30 -0
  521. package/jest/mocks/NativeModules.js +239 -0
  522. package/jest/mocks/RefreshControl.js +31 -0
  523. package/jest/mocks/RendererProxy.js +45 -0
  524. package/jest/mocks/ScrollView.js +58 -0
  525. package/jest/mocks/Text.js +27 -0
  526. package/jest/mocks/TextInput.js +32 -0
  527. package/jest/mocks/UIManager.js +60 -0
  528. package/jest/mocks/Vibration.js +16 -0
  529. package/jest/mocks/View.js +27 -0
  530. package/jest/mocks/ViewNativeComponent.js +23 -0
  531. package/jest/mocks/requireNativeComponent.js +22 -0
  532. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  533. package/jest/react-native-env.js +1 -0
  534. package/jest/renderer.js +1 -2
  535. package/jest/resolver.js +1 -0
  536. package/jest/setup.js +64 -449
  537. package/package.json +24 -24
  538. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  539. package/src/private/animated/createAnimatedPropsHook.js +14 -4
  540. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
  541. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  542. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  543. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  544. package/src/private/components/virtualview/VirtualView.js +145 -0
  545. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  546. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  547. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  548. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  549. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  550. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  551. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  552. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  553. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  554. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  555. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  556. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  557. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  558. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  559. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  560. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  561. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  562. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  563. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
  564. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  565. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  566. package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
  567. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  568. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
  569. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  570. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  571. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  572. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
  573. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
  574. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
  575. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
  576. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  577. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  578. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  579. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
  580. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  581. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
  582. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
  583. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  584. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
  585. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  586. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  587. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  588. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  589. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  590. package/src/private/styles/composeStyles.js +5 -12
  591. package/src/private/types/HostInstance.js +1 -1
  592. package/src/private/webapis/dom/events/Event.js +3 -0
  593. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  594. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  595. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  596. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  597. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  598. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  599. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  600. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  601. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  602. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  603. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  604. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  605. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  606. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  607. package/src/private/webapis/errors/DOMException.js +166 -0
  608. package/src/private/webapis/geometry/DOMRect.js +5 -0
  609. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  610. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  611. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  612. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  613. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  614. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
  615. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  616. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  617. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  618. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  619. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  620. package/src/private/webapis/performance/EventTiming.js +1 -1
  621. package/src/private/webapis/performance/LongTasks.js +1 -1
  622. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  623. package/src/private/webapis/performance/Performance.js +20 -9
  624. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  625. package/src/private/webapis/performance/PerformanceObserver.js +32 -28
  626. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  627. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  628. package/src/private/webapis/performance/UserTiming.js +1 -1
  629. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
  630. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  631. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  632. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  633. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  634. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  635. package/templates/cpp-lib/example/metro.config.js +1 -1
  636. package/templates/cpp-lib/template.config.js +24 -0
  637. package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
  638. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
  639. package/types/modules/Devtools.d.ts +23 -9
  640. package/Libraries/BugReporting/BugReporting.js +0 -140
  641. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  642. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  643. package/Libraries/BugReporting/getReactData.js +0 -187
  644. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  645. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
  646. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
  647. package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
  648. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
  649. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
  650. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
  651. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
  652. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
  653. package/Shared/InspectorPackagerConnection.cpp +0 -232
  654. package/Shared/InspectorPackagerConnection.h +0 -61
  655. package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
  656. package/Shared/Modules/ExceptionsManagerModule.h +0 -32
  657. package/Shared/Modules/I18nModule.cpp +0 -36
  658. package/Shared/Modules/I18nModule.h +0 -28
  659. package/Shared/Modules/NetworkingModule.cpp +0 -432
  660. package/Shared/Modules/NetworkingModule.h +0 -34
  661. package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
  662. package/Shared/Modules/PlatformConstantsModule.h +0 -23
  663. package/Shared/Modules/SourceCodeModule.cpp +0 -35
  664. package/Shared/Modules/SourceCodeModule.h +0 -27
  665. package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
  666. package/Shared/Modules/StatusBarManagerModule.h +0 -19
  667. package/codegen/NativeBugReportingSpec.g.h +0 -41
  668. package/jest/mockModal.js +0 -32
  669. package/jest/mockScrollView.js +0 -35
  670. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
  671. /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
  672. /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
@@ -28,7 +28,7 @@
28
28
 
29
29
  #ifndef JSI_VERSION
30
30
  // Use the latest version by default
31
- #define JSI_VERSION 19
31
+ #define JSI_VERSION 20
32
32
  #endif
33
33
 
34
34
  #if JSI_VERSION >= 3
@@ -65,6 +65,109 @@ class FBJSRuntime;
65
65
  namespace facebook {
66
66
  namespace jsi {
67
67
 
68
+ #if JSI_VERSION >= 20
69
+ /// UUID version 1 implementation. This should be constructed with constant
70
+ /// arguments to identify fixed UUIDs.
71
+ class JSI_EXPORT UUID {
72
+ public:
73
+ // Construct from raw parts
74
+ constexpr UUID(
75
+ uint32_t timeLow,
76
+ uint16_t timeMid,
77
+ uint16_t timeHighAndVersion,
78
+ uint16_t variantAndClockSeq,
79
+ uint64_t node)
80
+ : high(
81
+ ((uint64_t)(timeLow) << 32) | ((uint64_t)(timeMid) << 16) |
82
+ ((uint64_t)(timeHighAndVersion))),
83
+ low(((uint64_t)(variantAndClockSeq) << 48) | node) {}
84
+
85
+ // Default constructor (zero UUID)
86
+ constexpr UUID() : high(0), low(0) {}
87
+
88
+ constexpr UUID(const UUID&) = default;
89
+ constexpr UUID& operator=(const UUID&) = default;
90
+
91
+ constexpr bool operator==(const UUID& other) const {
92
+ return high == other.high && low == other.low;
93
+ }
94
+ constexpr bool operator!=(const UUID& other) const {
95
+ return !(*this == other);
96
+ }
97
+
98
+ // Ordering (for std::map, sorting, etc.)
99
+ constexpr bool operator<(const UUID& other) const {
100
+ return (high < other.high) || (high == other.high && low < other.low);
101
+ }
102
+
103
+ // Hash support for UUID (for unordered_map compatibility)
104
+ struct Hash {
105
+ std::size_t operator()(const UUID& uuid) const noexcept {
106
+ return std::hash<uint64_t>{}(uuid.high) ^
107
+ (std::hash<uint64_t>{}(uuid.low) << 1);
108
+ }
109
+ };
110
+
111
+ // UUID format: 8-4-4-4-12
112
+ std::string toString() const {
113
+ std::string buffer(36, ' ');
114
+ std::snprintf(
115
+ buffer.data(),
116
+ buffer.size() + 1,
117
+ "%08x-%04x-%04x-%04x-%012llx",
118
+ getTimeLow(),
119
+ getTimeMid(),
120
+ getTimeHighAndVersion(),
121
+ getVariantAndClockSeq(),
122
+ (unsigned long long)getNode());
123
+ return buffer;
124
+ }
125
+
126
+ constexpr uint32_t getTimeLow() const {
127
+ return (uint32_t)(high >> 32);
128
+ }
129
+
130
+ constexpr uint16_t getTimeMid() const {
131
+ return (uint16_t)(high >> 16);
132
+ }
133
+
134
+ constexpr uint16_t getTimeHighAndVersion() const {
135
+ return (uint16_t)high;
136
+ }
137
+
138
+ constexpr uint16_t getVariantAndClockSeq() const {
139
+ return (uint16_t)(low >> 48);
140
+ }
141
+
142
+ constexpr uint64_t getNode() const {
143
+ return low & 0xFFFFFFFFFFFF;
144
+ }
145
+
146
+ private:
147
+ uint64_t high;
148
+ uint64_t low;
149
+ };
150
+
151
+ /// Base interface that all JSI interfaces inherit from. Users should not try to
152
+ /// manipulate this base type directly, and should use castInterface to get the
153
+ /// appropriate subtype.
154
+ struct JSI_EXPORT ICast {
155
+ /// If the current object can be cast into the interface specified by \p
156
+ /// interfaceUUID, return a pointer to the object. Otherwise, return a null
157
+ /// pointer.
158
+ /// The returned interface has the same lifetime as the underlying object. It
159
+ /// does not need to be released when not needed.
160
+ virtual ICast* castInterface(const UUID& interfaceUUID) = 0;
161
+
162
+ protected:
163
+ /// Interfaces are not destructible, thus the destructor is intentionally
164
+ /// protected to prevent delete calls on the interface.
165
+ /// Additionally, the destructor is non-virtual to reduce the vtable
166
+ /// complexity from inheritance.
167
+ ~ICast() = default;
168
+ };
169
+ #endif
170
+
68
171
  /// Base class for buffers of data or bytecode that need to be passed to the
69
172
  /// runtime. The buffer is expected to be fully immutable, so the result of
70
173
  /// size(), data(), and the contents of the pointer returned by data() must not
@@ -209,10 +312,18 @@ class JSI_EXPORT NativeState {
209
312
  /// in a non-Runtime-managed object, and not clean it up before the Runtime
210
313
  /// is shut down. If your lifecycle is such that avoiding this is hard,
211
314
  /// you will probably need to do use your own locks.
315
+ #if JSI_VERSION >= 20
316
+ class JSI_EXPORT Runtime : public ICast {
317
+ #else
212
318
  class JSI_EXPORT Runtime {
319
+ #endif
213
320
  public:
214
321
  virtual ~Runtime();
215
322
 
323
+ #if JSI_VERSION >= 20
324
+ ICast* castInterface(const UUID& interfaceUUID) override;
325
+ #endif
326
+
216
327
  /// Evaluates the given JavaScript \c buffer. \c sourceURL is used
217
328
  /// to annotate the stack trace if there is an exception. The
218
329
  /// contents may be utf8-encoded JS source code, or binary bytecode
@@ -310,6 +421,18 @@ class JSI_EXPORT Runtime {
310
421
  /// implementation of this function returns an \c Instrumentation instance
311
422
  /// which returns no metrics.
312
423
  virtual Instrumentation& instrumentation();
424
+
425
+ #if JSI_VERSION >= 20
426
+ /// Stores the pointer \p data with the \p uuid in the runtime. This can be
427
+ /// used to store some custom data within the runtime. When the runtime is
428
+ /// destroyed, or if an entry at an existing key is overwritten, the runtime
429
+ /// will release its ownership of the held object.
430
+ void setRuntimeData(const UUID& uuid, const std::shared_ptr<void>& data);
431
+
432
+ /// Returns the data associated with the \p uuid in the runtime. If there's no
433
+ /// data associated with the uuid, return a null pointer.
434
+ std::shared_ptr<void> getRuntimeData(const UUID& uuid);
435
+ #endif
313
436
 
314
437
  protected:
315
438
  friend class Pointer;
@@ -327,6 +450,21 @@ class JSI_EXPORT Runtime {
327
450
  friend class Value;
328
451
  friend class Scope;
329
452
  friend class JSError;
453
+
454
+ #if JSI_VERSION >= 20
455
+ /// Stores the pointer \p data with the \p uuid in the runtime. This can be
456
+ /// used to store some custom data within the runtime. When the runtime is
457
+ /// destroyed, or if an entry at an existing key is overwritten, the runtime
458
+ /// will release its ownership by calling \p deleter.
459
+ virtual void setRuntimeDataImpl(
460
+ const UUID& uuid,
461
+ const void* data,
462
+ void (*deleter)(const void* data));
463
+
464
+ /// Returns the data associated with the \p uuid in the runtime. If there's no
465
+ /// data associated with the uuid, return a null pointer.
466
+ virtual const void* getRuntimeDataImpl(const UUID& uuid);
467
+ #endif
330
468
 
331
469
  // Potential optimization: avoid the cloneFoo() virtual dispatch,
332
470
  // and instead just fix the number of fields, and copy them, since
@@ -1793,6 +1931,34 @@ class JSI_EXPORT JSError : public JSIException {
1793
1931
  std::string stack_;
1794
1932
  };
1795
1933
 
1934
+ /// Helper function to cast the object pointed to by \p ptr into an interface
1935
+ /// specified by \c U. If cast is successful, return a pointer to the object
1936
+ /// as a raw pointer of \c U. Otherwise, return nullptr.
1937
+ /// The returned interface same lifetime as the object referenced by \p ptr.
1938
+ #if JSI_VERSION >= 20
1939
+ template <typename U, typename T>
1940
+ U* castInterface(T* ptr) {
1941
+ if (ptr) {
1942
+ return static_cast<U*>(ptr->castInterface(U::uuid));
1943
+ }
1944
+ return nullptr;
1945
+ };
1946
+
1947
+ /// Helper function to cast the object managed by the shared_ptr \p ptr into an
1948
+ /// interface specified by \c U. If the cast is successful, return a shared_ptr
1949
+ /// of type \c U to the object. Otherwise, return an empty pointer.
1950
+ /// The returned shared_ptr shares ownership of the object with \p ptr.
1951
+ template <typename U, typename T>
1952
+ std::shared_ptr<U> dynamicInterfaceCast(T&& ptr) {
1953
+ auto* p = ptr->castInterface(U::uuid);
1954
+ U* res = static_cast<U*>(p);
1955
+ if (res) {
1956
+ return std::shared_ptr<U>(std::forward<T>(ptr), res);
1957
+ }
1958
+ return nullptr;
1959
+ }
1960
+ #endif
1961
+
1796
1962
  } // namespace jsi
1797
1963
  } // namespace facebook
1798
1964
 
@@ -14,7 +14,7 @@
14
14
  <!-- If your project is using glog, then GLog_IncludeDir could be set to include the actual location of glog -->
15
15
  <GLog_IncludeDir Condition="'$(GLog_IncludeDir)' == '' AND Exists('$(MSBuildThisFileDirectory)stubs\glog\logging.h')">$(MSBuildThisFileDirectory)stubs</GLog_IncludeDir>
16
16
 
17
- <NodeApiJsiCommitHash>980cb60d7911237d0f647fc566543ef627adac70</NodeApiJsiCommitHash>
17
+ <NodeApiJsiCommitHash>21b47f08b762b21b1d4d970940ab23f59f43249c</NodeApiJsiCommitHash>
18
18
  <NodeApiJsiLocal Condition="Exists('$(MSBuildThisFileDirectory)NodeApiJsiRuntime.cpp')">true</NodeApiJsiLocal>
19
19
  <NodeApiJsiDir Condition="'$(NodeApiJsiDir)' == '' AND '$(NodeApiJsiLocal)' == 'true'">$(MSBuildThisFileDirectory)</NodeApiJsiDir>
20
20
  <NodeApiJsiDir Condition="'$(NodeApiJsiDir)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\..\..\node_modules\.node-api-jsi\node-api-jsi-$(NodeApiJsiCommitHash)\</NodeApiJsiDir>
@@ -35,7 +35,7 @@
35
35
  $(NodeApiJsiSrcDir);
36
36
  %(AdditionalIncludeDirectories)
37
37
  </AdditionalIncludeDirectories>
38
- <PreprocessorDefinitions>JSI_VERSION=19;%(PreprocessorDefinitions)</PreprocessorDefinitions>
38
+ <PreprocessorDefinitions>JSI_VERSION=20;%(PreprocessorDefinitions)</PreprocessorDefinitions>
39
39
  </ClCompile>
40
40
  <Midl>
41
41
  <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -44,12 +44,21 @@ using namespace std::string_view_literals;
44
44
  // We use macros to report errors.
45
45
  // Macros provide more flexibility to show assert and provide failure context.
46
46
 
47
+ #if defined(__clang__) || defined(__GNUC__)
48
+ #define CRASH_NOW() __builtin_trap()
49
+ #elif defined(_MSC_VER)
50
+ #include <intrin.h>
51
+ #define CRASH_NOW() __fastfail(/*FAST_FAIL_FATAL_APP_EXIT*/ 7)
52
+ #else
53
+ #define CRASH_NOW() *((volatile int *)0) = 1
54
+ #endif
55
+
47
56
  // Check condition and crash process if it fails.
48
57
  #define CHECK_ELSE_CRASH(condition, message) \
49
58
  do { \
50
59
  if (!(condition)) { \
51
60
  assert(false && "Failed: " #condition && (message)); \
52
- *((int *)0) = 1; \
61
+ CRASH_NOW(); \
53
62
  } \
54
63
  } while (false)
55
64
 
@@ -286,7 +295,7 @@ class NodeApiJsiRuntime : public jsi::Runtime {
286
295
  jsi::Array createArray(size_t length) override;
287
296
  #if JSI_VERSION >= 9
288
297
  jsi::ArrayBuffer createArrayBuffer(
289
- std::shared_ptr<jsi::MutableBuffer> buffer);
298
+ std::shared_ptr<jsi::MutableBuffer> buffer) override;
290
299
  #endif
291
300
  size_t size(const jsi::Array &arr) override;
292
301
  size_t size(const jsi::ArrayBuffer &arrBuf) override;
@@ -1628,8 +1637,8 @@ jsi::Object NodeApiJsiRuntime::createObject(
1628
1637
  // access to the hostObject's get, set, and getPropertyNames methods. There is
1629
1638
  // a special symbol property ID, 'hostObjectSymbol', used to access the
1630
1639
  // hostObjectWrapper from the Proxy.
1631
- napi_value hostObjectHolder =
1632
- createExternalObject(std::make_unique<std::shared_ptr<jsi::HostObject>>(
1640
+ napi_value hostObjectHolder = createExternalObject(
1641
+ std::make_unique<std::shared_ptr<jsi::HostObject>>(
1633
1642
  std::move(hostObject)));
1634
1643
  napi_value obj = createNodeApiObject();
1635
1644
  setProperty(
@@ -2420,31 +2429,89 @@ jsi::JSError NodeApiJsiRuntime::makeJSError(Args &&...args) {
2420
2429
  return jsi::JSError(*this, errorStream.str());
2421
2430
  }
2422
2431
 
2423
- // Throws jsi::JSError or jsi::JSINativeException from Node-API error.
2424
2432
  [[noreturn]] void NodeApiJsiRuntime::throwJSException(
2425
2433
  napi_status status) const {
2434
+ auto formatStatusError = [](napi_status status) -> std::string {
2435
+ // TODO: (vmoroz) use a more sophisticated error formatting.
2436
+ std::ostringstream errorStream;
2437
+ errorStream << "A call to Node-API returned error code 0x" << std::hex
2438
+ << static_cast<int>(status) << '.';
2439
+ return errorStream.str();
2440
+ };
2441
+
2442
+ NodeApiScope scope{*this};
2443
+ // Retrieve the exception value and clear as we will rethrow it as a C++
2444
+ // exception.
2426
2445
  napi_value jsError{};
2427
2446
  CHECK_NAPI_ELSE_CRASH(
2428
2447
  jsrApi_->napi_get_and_clear_last_exception(env_, &jsError));
2429
2448
  napi_valuetype jsErrorType;
2430
2449
  CHECK_NAPI_ELSE_CRASH(jsrApi_->napi_typeof(env_, jsError, &jsErrorType));
2450
+ if (jsErrorType == napi_undefined) {
2451
+ throw jsi::JSINativeException(formatStatusError(status).c_str());
2452
+ }
2453
+ jsi::Value jsiJSError = toJsiValue(jsError);
2454
+
2455
+ std::string msg = "No message";
2456
+ std::string stack = "No stack";
2457
+ if (jsErrorType == napi_string) {
2458
+ // If the exception is a string, use it as the message.
2459
+ msg = stringToStdString(jsError);
2460
+ } else if (jsErrorType == napi_object) {
2461
+ // If the exception is an object try to retrieve its message and stack
2462
+ // properties.
2463
+
2464
+ /// Attempt to retrieve a string property \p sym from \c jsError and store
2465
+ /// it in \p out. Ignore any catchable errors and non-string properties.
2466
+ auto getStrProp = [this, jsError](const char *sym, std::string &out) {
2467
+ napi_value value{};
2468
+ napi_status propStatus =
2469
+ jsrApi_->napi_get_named_property(env_, jsError, sym, &value);
2470
+ if (propStatus != napi_ok) {
2471
+ // An exception was thrown while retrieving the property, if it is
2472
+ // catchable, suppress it. Otherwise, rethrow this exception without
2473
+ // trying to invoke any more JavaScript.
2474
+ napi_value newJSError{};
2475
+ CHECK_NAPI_ELSE_CRASH(
2476
+ jsrApi_->napi_get_and_clear_last_exception(env_, &newJSError));
2477
+ napi_valuetype newJSErrorType;
2478
+ CHECK_NAPI_ELSE_CRASH(
2479
+ jsrApi_->napi_typeof(env_, newJSError, &newJSErrorType));
2480
+
2481
+ if (propStatus != napi_cannot_run_js)
2482
+ return;
2431
2483
 
2432
- if (!hasPendingJSError_ &&
2433
- (status == napi_pending_exception || jsErrorType != napi_undefined)) {
2434
- AutoRestore<bool> setValue(
2435
- const_cast<NodeApiJsiRuntime *>(this)->hasPendingJSError_, true);
2436
- if (jsErrorType == napi_object &&
2437
- instanceOf(jsError, getNodeApiValue(cachedValue_.Error))) {
2438
- rewriteErrorMessage(jsError);
2439
- }
2440
- throw jsi::JSError(
2441
- *const_cast<NodeApiJsiRuntime *>(this), toJsiValue(jsError));
2442
- } else {
2443
- std::ostringstream errorStream;
2444
- errorStream << "A call to Node-API returned error code 0x" << std::hex
2445
- << status << '.';
2446
- throw jsi::JSINativeException(errorStream.str().c_str());
2484
+ // An uncatchable error occurred, it is unsafe to do anything that
2485
+ // might execute more JavaScript.
2486
+ if (newJSErrorType != napi_undefined) {
2487
+ throw jsi::JSError(
2488
+ toJsiValue(newJSError),
2489
+ "Uncatchable exception thrown while creating error",
2490
+ "No stack");
2491
+ } else {
2492
+ std::ostringstream errorStream;
2493
+ errorStream << "A call to Node-API returned error code 0x" << std::hex
2494
+ << propStatus << '.';
2495
+ throw jsi::JSINativeException(errorStream.str().c_str());
2496
+ }
2497
+ }
2498
+
2499
+ // If the property is a string, update out. Otherwise ignore it.
2500
+ napi_valuetype valueType;
2501
+ CHECK_NAPI_ELSE_CRASH(jsrApi_->napi_typeof(env_, value, &valueType));
2502
+ if (valueType == napi_string) {
2503
+ out = stringToStdString(value);
2504
+ }
2505
+ };
2506
+
2507
+ getStrProp("message", msg);
2508
+ getStrProp("stack", stack);
2447
2509
  }
2510
+
2511
+ // Use the constructor of jsi::JSError that cannot run additional
2512
+ // JS, since that may then result in additional exceptions and infinite
2513
+ // recursion.
2514
+ throw jsi::JSError(std::move(jsiJSError), msg, stack);
2448
2515
  }
2449
2516
 
2450
2517
  // Throws jsi::JSINativeException with a message.
@@ -2467,7 +2534,9 @@ void NodeApiJsiRuntime::rewriteErrorMessage(napi_value jsError) const {
2467
2534
  jsrApi_->napi_get_and_clear_last_exception(env_, &ignoreJSError);
2468
2535
  } else if (typeOf(message) == napi_string) {
2469
2536
  // JSI unit tests expect V8- or JSC-like messages for the stack overflow.
2470
- if (stringToStdString(message) == "Out of stack space") {
2537
+ std::string messageStr = stringToStdString(message);
2538
+ if (messageStr == "Out of stack space" ||
2539
+ messageStr.find("Maximum call stack") != std::string::npos) {
2471
2540
  setProperty(
2472
2541
  jsError,
2473
2542
  getNodeApiValue(propertyId_.message),
@@ -2594,7 +2663,7 @@ napi_value NodeApiJsiRuntime::getBoolean(bool value) const {
2594
2663
 
2595
2664
  // Gets value of the Boolean napi_value.
2596
2665
  bool NodeApiJsiRuntime::getValueBool(napi_value value) const {
2597
- bool result{nullptr};
2666
+ bool result{false};
2598
2667
  CHECK_NAPI(jsrApi_->napi_get_value_bool(env_, value, &result));
2599
2668
  return result;
2600
2669
  }
@@ -2848,13 +2917,14 @@ void NodeApiJsiRuntime::setElement(
2848
2917
  napi_callback_info info) noexcept {
2849
2918
  HostFunctionWrapper *hostFuncWrapper{};
2850
2919
  size_t argc{};
2851
- CHECK_NAPI_ELSE_CRASH(JSRuntimeApi::current()->napi_get_cb_info(
2852
- env,
2853
- info,
2854
- &argc,
2855
- nullptr,
2856
- nullptr,
2857
- reinterpret_cast<void **>(&hostFuncWrapper)));
2920
+ CHECK_NAPI_ELSE_CRASH(
2921
+ JSRuntimeApi::current()->napi_get_cb_info(
2922
+ env,
2923
+ info,
2924
+ &argc,
2925
+ nullptr,
2926
+ nullptr,
2927
+ reinterpret_cast<void **>(&hostFuncWrapper)));
2858
2928
  CHECK_ELSE_CRASH(hostFuncWrapper, "Cannot find the host function");
2859
2929
  NodeApiJsiRuntime &runtime = hostFuncWrapper->runtime();
2860
2930
  NodeApiPointerValueScope scope{runtime};
@@ -2863,8 +2933,9 @@ void NodeApiJsiRuntime::setElement(
2863
2933
  [&env, &info, &argc, &runtime, &hostFuncWrapper]() {
2864
2934
  SmallBuffer<napi_value, MaxStackArgCount> napiArgs(argc);
2865
2935
  napi_value thisArg{};
2866
- CHECK_NAPI_ELSE_CRASH(JSRuntimeApi::current()->napi_get_cb_info(
2867
- env, info, &argc, napiArgs.data(), &thisArg, nullptr));
2936
+ CHECK_NAPI_ELSE_CRASH(
2937
+ JSRuntimeApi::current()->napi_get_cb_info(
2938
+ env, info, &argc, napiArgs.data(), &thisArg, nullptr));
2868
2939
  CHECK_ELSE_CRASH(napiArgs.size() == argc, "Wrong argument count");
2869
2940
  const JsiValueView jsiThisArg{&runtime, thisArg};
2870
2941
  JsiValueViewArgs jsiArgs(
@@ -2986,13 +3057,14 @@ void NodeApiJsiRuntime::setProxyTrap(
2986
3057
  NodeApiJsiRuntime *runtime{};
2987
3058
  napi_value args[argCount]{};
2988
3059
  size_t actualArgCount{argCount};
2989
- CHECK_NAPI_ELSE_CRASH(JSRuntimeApi::current()->napi_get_cb_info(
2990
- env,
2991
- info,
2992
- &actualArgCount,
2993
- args,
2994
- nullptr,
2995
- reinterpret_cast<void **>(&runtime)));
3060
+ CHECK_NAPI_ELSE_CRASH(
3061
+ JSRuntimeApi::current()->napi_get_cb_info(
3062
+ env,
3063
+ info,
3064
+ &actualArgCount,
3065
+ args,
3066
+ nullptr,
3067
+ reinterpret_cast<void **>(&runtime)));
2996
3068
  CHECK_ELSE_CRASH(
2997
3069
  actualArgCount == argCount, "proxy trap requires argCount arguments.");
2998
3070
  NodeApiPointerValueScope scope{*runtime};
@@ -7,11 +7,11 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <functional>
11
- #include <memory>
12
-
13
10
  #include "SchedulerPriority.h"
14
11
 
12
+ #include <functional>
13
+ #include <string>
14
+
15
15
  namespace facebook::jsi {
16
16
  class Runtime;
17
17
  }
@@ -45,7 +45,7 @@ class CallInvoker {
45
45
  invokeSync([func](jsi::Runtime&) { func(); });
46
46
  }
47
47
 
48
- virtual ~CallInvoker() {}
48
+ virtual ~CallInvoker() = default;
49
49
  };
50
50
 
51
51
  using NativeMethodCallFunc = std::function<void()>;
@@ -58,7 +58,7 @@ class NativeMethodCallInvoker {
58
58
  virtual void invokeSync(
59
59
  const std::string& methodName,
60
60
  NativeMethodCallFunc&& func) = 0;
61
- virtual ~NativeMethodCallInvoker() {}
61
+ virtual ~NativeMethodCallInvoker() = default;
62
62
  };
63
63
 
64
64
  } // namespace facebook::react
@@ -7,8 +7,6 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <chrono>
11
-
12
10
  namespace facebook::react {
13
11
 
14
12
  enum class SchedulerPriority : int {
@@ -35,23 +35,4 @@ jsi::Value createPromiseAsJSIValue(
35
35
  jsi::Runtime& rt,
36
36
  PromiseSetupFunctionType&& func);
37
37
 
38
- // Deprecated. Use AsyncCallback instead.
39
- class RAIICallbackWrapperDestroyer {
40
- public:
41
- RAIICallbackWrapperDestroyer(std::weak_ptr<CallbackWrapper> callbackWrapper)
42
- : callbackWrapper_(callbackWrapper) {}
43
-
44
- ~RAIICallbackWrapperDestroyer() {
45
- auto strongWrapper = callbackWrapper_.lock();
46
- if (!strongWrapper) {
47
- return;
48
- }
49
-
50
- strongWrapper->destroy();
51
- }
52
-
53
- private:
54
- std::weak_ptr<CallbackWrapper> callbackWrapper_;
55
- };
56
-
57
38
  } // namespace facebook::react
@@ -33,14 +33,14 @@ namespace detail {
33
33
  template <typename F>
34
34
  struct function_wrapper;
35
35
 
36
- template <typename C, typename R, typename... Args>
37
- struct function_wrapper<R (C::*)(Args...)> {
38
- using type = std::function<R(Args...)>;
36
+ template <typename ClassT, typename ReturnT, typename... ArgsT>
37
+ struct function_wrapper<ReturnT (ClassT::*)(ArgsT...)> {
38
+ using type = std::function<ReturnT(ArgsT...)>;
39
39
  };
40
40
 
41
- template <typename C, typename R, typename... Args>
42
- struct function_wrapper<R (C::*)(Args...) const> {
43
- using type = std::function<R(Args...)>;
41
+ template <typename ClassT, typename ReturnT, typename... ArgsT>
42
+ struct function_wrapper<ReturnT (ClassT::*)(ArgsT...) const> {
43
+ using type = std::function<ReturnT(ArgsT...)>;
44
44
  };
45
45
 
46
46
  template <typename T, typename = void>
@@ -61,36 +61,47 @@ struct bridging_wrapper<
61
61
  template <typename T>
62
62
  using bridging_t = typename detail::bridging_wrapper<T>::type;
63
63
 
64
- template <typename R, typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
65
- auto fromJs(jsi::Runtime& rt, T&& value, const std::shared_ptr<CallInvoker>&)
66
- -> decltype(static_cast<R>(
67
- std::move(convert(rt, std::forward<T>(value))))) {
68
- return static_cast<R>(std::move(convert(rt, std::forward<T>(value))));
64
+ template <typename ReturnT, typename JSArgT>
65
+ requires is_jsi_v<JSArgT>
66
+ auto fromJs(
67
+ jsi::Runtime& rt,
68
+ JSArgT&& value,
69
+ const std::shared_ptr<CallInvoker>& /*unused*/)
70
+ -> decltype(static_cast<ReturnT>(
71
+ std::move(convert(rt, std::forward<JSArgT>(value)))))
72
+
73
+ {
74
+ return static_cast<ReturnT>(
75
+ std::move(convert(rt, std::forward<JSArgT>(value))));
69
76
  }
70
77
 
71
- template <typename R, typename T>
72
- auto fromJs(jsi::Runtime& rt, T&& value, const std::shared_ptr<CallInvoker>&)
73
- -> decltype(Bridging<remove_cvref_t<R>>::fromJs(
78
+ template <typename ReturnT, typename JSArgT>
79
+ auto fromJs(
80
+ jsi::Runtime& rt,
81
+ JSArgT&& value,
82
+ const std::shared_ptr<CallInvoker>& /*unused*/)
83
+ -> decltype(Bridging<remove_cvref_t<ReturnT>>::fromJs(
74
84
  rt,
75
- convert(rt, std::forward<T>(value)))) {
76
- return Bridging<remove_cvref_t<R>>::fromJs(
77
- rt, convert(rt, std::forward<T>(value)));
85
+ convert(rt, std::forward<JSArgT>(value)))) {
86
+ return Bridging<remove_cvref_t<ReturnT>>::fromJs(
87
+ rt, convert(rt, std::forward<JSArgT>(value)));
78
88
  }
79
89
 
80
- template <typename R, typename T>
90
+ template <typename ReturnT, typename JSArgT>
81
91
  auto fromJs(
82
92
  jsi::Runtime& rt,
83
- T&& value,
93
+ JSArgT&& value,
84
94
  const std::shared_ptr<CallInvoker>& jsInvoker)
85
- -> decltype(Bridging<remove_cvref_t<R>>::fromJs(
95
+ -> decltype(Bridging<remove_cvref_t<ReturnT>>::fromJs(
86
96
  rt,
87
- convert(rt, std::forward<T>(value)),
97
+ convert(rt, std::forward<JSArgT>(value)),
88
98
  jsInvoker)) {
89
- return Bridging<remove_cvref_t<R>>::fromJs(
90
- rt, convert(rt, std::forward<T>(value)), jsInvoker);
99
+ return Bridging<remove_cvref_t<ReturnT>>::fromJs(
100
+ rt, convert(rt, std::forward<JSArgT>(value)), jsInvoker);
91
101
  }
92
102
 
93
- template <typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
103
+ template <typename T>
104
+ requires is_jsi_v<T>
94
105
  auto toJs(
95
106
  jsi::Runtime& rt,
96
107
  T&& value,
@@ -143,33 +154,33 @@ inline constexpr bool supportsFromJs<
143
154
  template <typename, typename = jsi::Value, typename = void>
144
155
  inline constexpr bool supportsToJs = false;
145
156
 
146
- template <typename T, typename Ret>
157
+ template <typename JSReturnT, typename ReturnT>
147
158
  inline constexpr bool supportsToJs<
148
- T,
149
- Ret,
159
+ JSReturnT,
160
+ ReturnT,
150
161
  std::void_t<decltype(toJs(
151
162
  std::declval<jsi::Runtime&>(),
152
- std::declval<T>(),
163
+ std::declval<JSReturnT>(),
153
164
  nullptr))>> =
154
165
  std::is_convertible_v<
155
166
  decltype(toJs(
156
167
  std::declval<jsi::Runtime&>(),
157
- std::declval<T>(),
168
+ std::declval<JSReturnT>(),
158
169
  nullptr)),
159
- Ret>;
170
+ ReturnT>;
160
171
 
161
- template <typename T>
172
+ template <typename ReturnT>
162
173
  inline constexpr bool supportsToJs<
163
- T,
174
+ ReturnT,
164
175
  jsi::Value,
165
176
  std::void_t<decltype(toJs(
166
177
  std::declval<jsi::Runtime&>(),
167
- std::declval<T>(),
178
+ std::declval<ReturnT>(),
168
179
  nullptr))>> =
169
180
  std::is_convertible_v<
170
181
  decltype(toJs(
171
182
  std::declval<jsi::Runtime&>(),
172
- std::declval<T>(),
183
+ std::declval<ReturnT>(),
173
184
  nullptr)),
174
185
  jsi::Value>;
175
186
 
@@ -17,7 +17,7 @@ struct Bridging<bool> {
17
17
  return value.asBool();
18
18
  }
19
19
 
20
- static jsi::Value toJs(jsi::Runtime&, bool value) {
20
+ static bool toJs(jsi::Runtime& /*unused*/, bool value) {
21
21
  return value;
22
22
  }
23
23
  };
@@ -15,6 +15,7 @@
15
15
  #include <react/bridging/Error.h>
16
16
  #include <react/bridging/EventEmitter.h>
17
17
  #include <react/bridging/Function.h>
18
+ #include <react/bridging/HighResTimeStamp.h>
18
19
  #include <react/bridging/Number.h>
19
20
  #include <react/bridging/Object.h>
20
21
  #include <react/bridging/Promise.h>