react-native-windows 0.74.11 → 0.75.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 (336) hide show
  1. package/.flowconfig +8 -2
  2. package/Common/Common.vcxproj +8 -0
  3. package/Common/Utilities.cpp +2 -2
  4. package/Directory.Build.targets +5 -0
  5. package/Folly/Folly.vcxproj +10 -2
  6. package/Folly/Folly.vcxproj.filters +0 -7
  7. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
  8. package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
  9. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -0
  11. package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
  12. package/Libraries/Animated/createAnimatedComponent.js +10 -4
  13. package/Libraries/Animated/useAnimatedProps.js +56 -28
  14. package/Libraries/BatchedBridge/MessageQueue.js +1 -0
  15. package/Libraries/Components/Button.js +10 -5
  16. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
  17. package/Libraries/Components/Flyout/Flyout.js +10 -10
  18. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
  19. package/Libraries/Components/Pressable/Pressable.js +13 -6
  20. package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
  21. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
  22. package/Libraries/Components/ScrollView/ScrollView.js +109 -29
  23. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
  24. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
  25. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
  26. package/Libraries/Components/StatusBar/StatusBar.js +1 -21
  27. package/Libraries/Components/Switch/Switch.windows.js +2 -0
  28. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
  29. package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
  30. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
  31. package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
  32. package/Libraries/Components/TextInput/TextInput.js +14 -70
  33. package/Libraries/Components/TextInput/TextInput.windows.js +15 -72
  34. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
  35. package/Libraries/Components/Touchable/Touchable.js +2 -2
  36. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
  37. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
  38. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
  39. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
  40. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
  41. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
  42. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
  43. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
  44. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
  45. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
  46. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  47. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  48. package/Libraries/Components/View/View.js +0 -11
  49. package/Libraries/Components/View/View.windows.js +0 -11
  50. package/Libraries/Components/View/ViewAccessibility.js +4 -4
  51. package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
  52. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
  53. package/Libraries/Components/View/ViewPropTypes.js +7 -0
  54. package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
  55. package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
  56. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
  57. package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
  58. package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
  59. package/Libraries/Core/ErrorHandlers.js +116 -0
  60. package/Libraries/Core/ExceptionsManager.js +2 -2
  61. package/Libraries/Core/ReactNativeVersion.js +3 -3
  62. package/Libraries/Core/setUpDeveloperTools.js +3 -1
  63. package/Libraries/Core/setUpPerformance.js +6 -4
  64. package/Libraries/Core/setUpReactDevTools.js +70 -10
  65. package/Libraries/Core/setUpTimers.js +50 -31
  66. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  67. package/Libraries/Image/Image.android.js +23 -13
  68. package/Libraries/Image/Image.d.ts +14 -15
  69. package/Libraries/Image/Image.ios.js +21 -11
  70. package/Libraries/Image/Image.windows.js +21 -11
  71. package/Libraries/Image/ImageProps.js +16 -5
  72. package/Libraries/Image/ImageTypes.flow.js +7 -2
  73. package/Libraries/Image/ImageUtils.js +1 -0
  74. package/Libraries/Image/ImageViewNativeComponent.js +2 -1
  75. package/Libraries/Inspector/ElementBox.js +6 -3
  76. package/Libraries/Inspector/ElementProperties.js +1 -1
  77. package/Libraries/Interaction/TouchHistoryMath.js +4 -4
  78. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
  79. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  80. package/Libraries/LogBox/Data/LogBoxData.js +39 -29
  81. package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
  82. package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
  83. package/Libraries/LogBox/LogBox.js +29 -12
  84. package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
  85. package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
  86. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  87. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
  88. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  89. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
  90. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
  91. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  92. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
  93. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
  94. package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
  95. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  96. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  97. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  98. package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
  99. package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
  101. package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
  102. package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
  103. package/Libraries/Network/XMLHttpRequest.js +5 -1
  104. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  105. package/Libraries/Pressability/Pressability.js +3 -51
  106. package/Libraries/Pressability/Pressability.windows.js +3 -51
  107. package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
  108. package/Libraries/ReactNative/AppRegistry.js +2 -4
  109. package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
  110. package/Libraries/ReactNative/FabricUIManager.js +0 -51
  111. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
  112. package/Libraries/ReactNative/RendererImplementation.js +20 -2
  113. package/Libraries/ReactNative/UIManager.d.ts +0 -21
  114. package/Libraries/ReactNative/UIManagerProperties.js +0 -3
  115. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
  116. package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
  117. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
  118. package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
  119. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
  120. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
  121. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
  123. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  124. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  125. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  126. package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
  127. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
  128. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  129. package/Libraries/Share/Share.d.ts +16 -10
  130. package/Libraries/Share/Share.js +14 -15
  131. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
  132. package/Libraries/StyleSheet/StyleSheet.js +3 -10
  133. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
  134. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
  135. package/Libraries/StyleSheet/flattenStyle.js +1 -0
  136. package/Libraries/StyleSheet/processFilter.js +132 -0
  137. package/Libraries/StyleSheet/processTransform.js +18 -3
  138. package/Libraries/Text/Text.js +151 -128
  139. package/Libraries/Text/Text.windows.js +144 -127
  140. package/Libraries/Text/TextNativeComponent.js +5 -4
  141. package/Libraries/Text/TextProps.js +6 -6
  142. package/Libraries/Text/TextProps.windows.js +6 -6
  143. package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
  144. package/Libraries/Types/CodegenTypes.js +3 -0
  145. package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
  146. package/Libraries/Utilities/Dimensions.js +1 -0
  147. package/Libraries/Utilities/HMRClient.js +36 -8
  148. package/Libraries/Utilities/HMRClientProdShim.js +1 -0
  149. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  150. package/Libraries/Utilities/Platform.android.js +4 -4
  151. package/Libraries/Utilities/RCTLog.js +1 -0
  152. package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
  153. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
  154. package/Libraries/__tests__/ViewWindows-test.js +6 -6
  155. package/Libraries/promiseRejectionTrackingOptions.js +1 -0
  156. package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
  157. package/Microsoft.ReactNative/ComponentView.idl +0 -17
  158. package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
  159. package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
  160. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +1 -4
  161. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
  162. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
  163. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +0 -10
  164. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +0 -3
  165. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +29 -45
  166. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +1 -3
  167. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -1
  168. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -12
  169. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
  170. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
  171. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
  172. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -18
  173. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -5
  174. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -16
  175. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
  176. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
  177. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
  178. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
  179. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
  180. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
  181. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
  182. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
  183. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  184. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
  185. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
  186. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -17
  187. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  188. package/Microsoft.ReactNative/Timer.idl +1 -3
  189. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
  190. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
  191. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  192. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
  193. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  194. package/Microsoft.ReactNative/packages.lock.json +45 -72
  195. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  196. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
  197. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
  198. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
  199. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
  200. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  201. package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
  202. package/PropertySheets/ARM64EC.props +13 -0
  203. package/PropertySheets/Application/ARM64EC.props +13 -0
  204. package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
  205. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
  206. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  207. package/PropertySheets/JSEngine.props +2 -0
  208. package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
  209. package/README.md +21 -21
  210. package/ReactCommon/ReactCommon.vcxproj +11 -1
  211. package/ReactCommon/ReactCommon.vcxproj.filters +19 -12
  212. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
  213. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
  214. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
  215. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
  216. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
  219. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
  220. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
  221. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
  222. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
  223. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
  224. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
  225. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
  226. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
  227. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
  228. package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
  229. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +4 -0
  230. package/Scripts/rnw-dependencies.ps1 +36 -23
  231. package/Shared/HermesRuntimeHolder.cpp +19 -1
  232. package/Shared/HermesRuntimeHolder.h +8 -1
  233. package/Shared/HermesSamplingProfiler.cpp +1 -2
  234. package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
  235. package/Shared/OInstance.cpp +1 -2
  236. package/Shared/Shared.vcxitems +21 -15
  237. package/Shared/Shared.vcxitems.filters +8 -3
  238. package/Shared/Threading/BatchingQueueThread.cpp +6 -2
  239. package/Shared/Threading/BatchingQueueThread.h +2 -2
  240. package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
  241. package/codegen/NativeAppStateSpec.g.h +8 -8
  242. package/codegen/NativeBlobModuleSpec.g.h +0 -10
  243. package/codegen/NativeDOMSpec.g.h +136 -0
  244. package/codegen/NativeDevSettingsSpec.g.h +11 -5
  245. package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
  246. package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
  247. package/codegen/NativeMicrotasksSpec.g.h +34 -0
  248. package/codegen/NativePerformanceSpec.g.h +35 -7
  249. package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
  250. package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
  251. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
  252. package/codegen/NativeUIManagerSpec.g.h +5 -17
  253. package/codegen/react/components/rnwcore/Props.cpp +1 -1
  254. package/codegen/react/components/rnwcore/Props.h +16 -12
  255. package/codegen/react/components/rnwcore/States.h +0 -26
  256. package/codegen/rnwcoreJSI-generated.cpp +688 -463
  257. package/codegen/rnwcoreJSI.h +1374 -2867
  258. package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
  259. package/fmt/fmt.vcxproj +10 -2
  260. package/jest/mockComponent.js +7 -0
  261. package/jest/renderer.js +25 -14
  262. package/jest/setup.js +19 -13
  263. package/package.json +29 -27
  264. package/rn-get-polyfills.js +1 -0
  265. package/src/private/core/composeStyles.js +27 -0
  266. package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
  267. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  268. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
  269. package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
  270. package/src/private/specs/modules/NativeBlobModule.js +4 -2
  271. package/src/private/specs/modules/NativeDevSettings.js +1 -0
  272. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
  273. package/src/private/specs/modules/NativeUIManager.js +0 -7
  274. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
  275. package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
  276. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
  277. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
  278. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
  279. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  280. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  281. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
  282. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
  283. package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
  284. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  285. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  286. package/src/private/webapis/performance/EventCounts.js +1 -1
  287. package/src/private/webapis/performance/MemoryInfo.js +9 -9
  288. package/src/private/webapis/performance/Performance.js +10 -56
  289. package/src/private/webapis/performance/PerformanceObserver.js +30 -22
  290. package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
  291. package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
  292. package/src/private/webapis/performance/UserTiming.js +63 -0
  293. package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
  294. package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
  295. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
  296. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
  297. package/stubs/glog/logging.h +1 -0
  298. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  299. package/template/cs-lib/proj/MyLib.csproj +1 -1
  300. package/template/metro.config.js +13 -2
  301. package/templates/cpp-app/template.config.js +1 -1
  302. package/templates/cpp-lib/example/metro.config.js +2 -2
  303. package/templates/cpp-lib/template.config.js +1 -1
  304. package/templates/old/generateWrapper.js +4 -1
  305. package/types/modules/globals.d.ts +4 -0
  306. package/Libraries/Lists/FlatList.windows.js +0 -717
  307. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
  308. package/Libraries/Utilities/LoadingView.ios.js +0 -50
  309. package/Libraries/Utilities/LoadingView.js +0 -16
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
  312. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
  313. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
  314. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2377
  315. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.cpp +0 -140
  316. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -92
  317. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  318. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.cpp +0 -48
  319. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -122
  320. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -366
  321. package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
  322. package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
  323. package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
  324. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
  325. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
  326. package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
  327. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
  328. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
  329. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
  330. package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
  331. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
  332. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
  333. package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
  334. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
  335. package/template/metro.devMode.config.js +0 -56
  336. /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
@@ -17,14 +17,11 @@
17
17
  namespace facebook::react {
18
18
 
19
19
  void TextLayoutManager::GetTextLayout(
20
- AttributedStringBox attributedStringBox,
21
- ParagraphAttributes paragraphAttributes,
22
- LayoutConstraints layoutConstraints,
20
+ const AttributedString &attributedString,
21
+ const ParagraphAttributes &paragraphAttributes,
22
+ Size size,
23
23
  winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept {
24
- if (attributedStringBox.getValue().isEmpty())
25
- return;
26
-
27
- auto fragments = attributedStringBox.getValue().getFragments();
24
+ auto fragments = attributedString.getFragments();
28
25
  auto outerFragment = fragments[0];
29
26
 
30
27
  DWRITE_FONT_STYLE style = DWRITE_FONT_STYLE_NORMAL;
@@ -86,14 +83,14 @@ void TextLayoutManager::GetTextLayout(
86
83
  }
87
84
  winrt::check_hresult(spTextFormat->SetTextAlignment(alignment));
88
85
 
89
- auto str = GetTransformedText(attributedStringBox);
86
+ auto str = GetTransformedText(attributedString);
90
87
 
91
88
  winrt::check_hresult(Microsoft::ReactNative::DWriteFactory()->CreateTextLayout(
92
89
  str.c_str(), // The string to be laid out and formatted.
93
90
  static_cast<UINT32>(str.size()), // The length of the string.
94
91
  spTextFormat.get(), // The text format to apply to the string (contains font information, etc).
95
- layoutConstraints.maximumSize.width, // The width of the layout box.
96
- layoutConstraints.maximumSize.height, // The height of the layout box.
92
+ size.width, // The width of the layout box.
93
+ size.height, // The height of the layout box.
97
94
  spTextLayout.put() // The IDWriteTextLayout interface pointer.
98
95
  ));
99
96
 
@@ -129,12 +126,22 @@ void TextLayoutManager::GetTextLayout(
129
126
  }
130
127
  }
131
128
 
129
+ void TextLayoutManager::GetTextLayout(
130
+ const AttributedStringBox &attributedStringBox,
131
+ const ParagraphAttributes &paragraphAttributes,
132
+ LayoutConstraints layoutConstraints,
133
+ winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept {
134
+ if (attributedStringBox.getValue().isEmpty())
135
+ return;
136
+
137
+ GetTextLayout(attributedStringBox.getValue(), paragraphAttributes, layoutConstraints.maximumSize, spTextLayout);
138
+ }
139
+
132
140
  TextMeasurement TextLayoutManager::measure(
133
- AttributedStringBox attributedStringBox,
134
- ParagraphAttributes paragraphAttributes,
141
+ const AttributedStringBox &attributedStringBox,
142
+ const ParagraphAttributes &paragraphAttributes,
135
143
  const TextLayoutContext &layoutContext,
136
- LayoutConstraints layoutConstraints,
137
- std::shared_ptr<void> /* hostTextStorage */) const {
144
+ LayoutConstraints layoutConstraints) const {
138
145
  TextMeasurement measurement{};
139
146
  auto &attributedString = attributedStringBox.getValue();
140
147
  measurement = m_measureCache.get(
@@ -185,31 +192,12 @@ TextMeasurement TextLayoutManager::measure(
185
192
  */
186
193
  TextMeasurement TextLayoutManager::measureCachedSpannableById(
187
194
  int64_t cacheId,
188
- ParagraphAttributes const &paragraphAttributes,
195
+ const ParagraphAttributes &paragraphAttributes,
189
196
  LayoutConstraints layoutConstraints) const {
190
197
  assert(false);
191
198
  return {};
192
199
  }
193
200
 
194
- LinesMeasurements TextLayoutManager::measureLines(
195
- AttributedString attributedString,
196
- ParagraphAttributes paragraphAttributes,
197
- Size size) const {
198
- assert(false);
199
- return {};
200
- }
201
-
202
- std::shared_ptr<void> TextLayoutManager::getHostTextStorage(
203
- AttributedString attributedString,
204
- ParagraphAttributes paragraphAttributes,
205
- LayoutConstraints layoutConstraints) const {
206
- return nullptr;
207
- }
208
-
209
- void *TextLayoutManager::getNativeTextLayoutManager() const {
210
- return (void *)this;
211
- }
212
-
213
201
  Microsoft::ReactNative::TextTransform ConvertTextTransform(std::optional<TextTransform> const &transform) {
214
202
  if (transform) {
215
203
  switch (transform.value()) {
@@ -229,9 +217,92 @@ Microsoft::ReactNative::TextTransform ConvertTextTransform(std::optional<TextTra
229
217
  return Microsoft::ReactNative::TextTransform::Undefined;
230
218
  }
231
219
 
232
- winrt::hstring TextLayoutManager::GetTransformedText(AttributedStringBox const &attributedStringBox) {
220
+ LinesMeasurements TextLayoutManager::measureLines(
221
+ const AttributedString &attributedString,
222
+ const ParagraphAttributes &paragraphAttributes,
223
+ Size size) const {
224
+ LinesMeasurements lineMeasurements{};
225
+
226
+ winrt::com_ptr<IDWriteTextLayout> spTextLayout;
227
+
228
+ GetTextLayout(attributedString, paragraphAttributes, size, spTextLayout);
229
+
230
+ if (spTextLayout) {
231
+ std::vector<DWRITE_LINE_METRICS> lineMetrics;
232
+ uint32_t actualLineCount;
233
+ spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
234
+ lineMetrics.resize(static_cast<size_t>(actualLineCount));
235
+ winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
236
+ uint32_t startRange = 0;
237
+ const auto count = (paragraphAttributes.maximumNumberOfLines > 0)
238
+ ? std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount)
239
+ : actualLineCount;
240
+ for (uint32_t i = 0; i < count; ++i) {
241
+ UINT32 actualHitTestCount = 0;
242
+ spTextLayout->HitTestTextRange(
243
+ startRange,
244
+ lineMetrics[i].length,
245
+ 0, // x
246
+ 0, // y
247
+ NULL,
248
+ 0, // metrics count
249
+ &actualHitTestCount);
250
+
251
+ // Allocate enough room to return all hit-test metrics.
252
+ std::vector<DWRITE_HIT_TEST_METRICS> hitTestMetrics(actualHitTestCount);
253
+ spTextLayout->HitTestTextRange(
254
+ startRange,
255
+ lineMetrics[i].length,
256
+ 0, // x
257
+ 0, // y
258
+ &hitTestMetrics[0],
259
+ static_cast<UINT32>(hitTestMetrics.size()),
260
+ &actualHitTestCount);
261
+
262
+ float width = 0;
263
+ for (auto tm : hitTestMetrics) {
264
+ width += tm.width;
265
+ }
266
+
267
+ std::string str;
268
+ for (const auto &fragment : attributedString.getFragments()) {
269
+ str = str +
270
+ winrt::to_string(Microsoft::ReactNative::TransformableText::TransformText(
271
+ winrt::hstring{Microsoft::Common::Unicode::Utf8ToUtf16(fragment.string)},
272
+ ConvertTextTransform(fragment.textAttributes.textTransform)));
273
+ }
274
+
275
+ lineMeasurements.emplace_back(LineMeasurement(
276
+ str.substr(startRange, lineMetrics[i].length),
277
+ {{hitTestMetrics[0].left, hitTestMetrics[0].top}, // origin
278
+ {width, lineMetrics[i].height}},
279
+ 0.0f, // TODO descender
280
+ 0.0f, // TODO: capHeight
281
+ 0.0f, // TODO ascender
282
+ 0.0f // TODO: xHeight
283
+ ));
284
+
285
+ startRange += lineMetrics[i].length;
286
+ }
287
+ }
288
+
289
+ return lineMeasurements;
290
+ }
291
+
292
+ std::shared_ptr<void> TextLayoutManager::getHostTextStorage(
293
+ const AttributedString &attributedString,
294
+ const ParagraphAttributes &paragraphAttributes,
295
+ LayoutConstraints layoutConstraints) const {
296
+ return nullptr;
297
+ }
298
+
299
+ void *TextLayoutManager::getNativeTextLayoutManager() const {
300
+ return (void *)this;
301
+ }
302
+
303
+ winrt::hstring TextLayoutManager::GetTransformedText(const AttributedString &attributedString) {
233
304
  winrt::hstring result{};
234
- for (const auto &fragment : attributedStringBox.getValue().getFragments()) {
305
+ for (const auto &fragment : attributedString.getFragments()) {
235
306
  result = result +
236
307
  Microsoft::ReactNative::TransformableText::TransformText(
237
308
  winrt::hstring{Microsoft::Common::Unicode::Utf8ToUtf16(fragment.string)},
@@ -35,22 +35,23 @@ class TextLayoutManager {
35
35
  * Measures `attributedStringBox` using native text rendering infrastructure.
36
36
  */
37
37
  TextMeasurement measure(
38
- AttributedStringBox attributedStringBox,
39
- ParagraphAttributes paragraphAttributes,
38
+ const AttributedStringBox &attributedStringBox,
39
+ const ParagraphAttributes &paragraphAttributes,
40
40
  const TextLayoutContext &layoutContext,
41
- LayoutConstraints layoutConstraints,
42
- std::shared_ptr<void> /* hostTextStorage */) const;
41
+ LayoutConstraints layoutConstraints) const;
43
42
 
44
43
  /*
45
44
  * Measures lines of `attributedString` using native text rendering
46
45
  * infrastructure.
47
46
  */
48
- LinesMeasurements measureLines(AttributedString attributedString, ParagraphAttributes paragraphAttributes, Size size)
49
- const;
47
+ LinesMeasurements measureLines(
48
+ const AttributedString &attributedString,
49
+ const ParagraphAttributes &paragraphAttributes,
50
+ Size size) const;
50
51
 
51
52
  std::shared_ptr<void> getHostTextStorage(
52
- AttributedString attributedString,
53
- ParagraphAttributes paragraphAttributes,
53
+ const AttributedString &attributedString,
54
+ const ParagraphAttributes &paragraphAttributes,
54
55
  LayoutConstraints layoutConstraints) const;
55
56
 
56
57
  /**
@@ -59,7 +60,7 @@ class TextLayoutManager {
59
60
  */
60
61
  TextMeasurement measureCachedSpannableById(
61
62
  int64_t cacheId,
62
- ParagraphAttributes const &paragraphAttributes,
63
+ const ParagraphAttributes &paragraphAttributes,
63
64
  LayoutConstraints layoutConstraints) const;
64
65
 
65
66
  /*
@@ -69,15 +70,20 @@ class TextLayoutManager {
69
70
  void *getNativeTextLayoutManager() const;
70
71
 
71
72
  static void GetTextLayout(
72
- AttributedStringBox attributedStringBox,
73
- ParagraphAttributes paragraphAttributes,
73
+ const AttributedStringBox &attributedStringBox,
74
+ const ParagraphAttributes &paragraphAttributes,
74
75
  LayoutConstraints layoutConstraints,
75
76
  winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept;
76
77
 
77
78
  #pragma endregion
78
79
 
79
80
  private:
80
- static winrt::hstring GetTransformedText(AttributedStringBox const &attributedStringBox);
81
+ static winrt::hstring GetTransformedText(const AttributedString &attributedString);
82
+ static void GetTextLayout(
83
+ const AttributedString &attributedString,
84
+ const ParagraphAttributes &paragraphAttributes,
85
+ Size size,
86
+ winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept;
81
87
 
82
88
  ContextContainer::Shared m_contextContainer;
83
89
  #pragma warning(push)
@@ -50,6 +50,10 @@ void DevSettings::toggleElementInspector() noexcept {
50
50
  "RCTDeviceEventEmitter", "emit", folly::dynamic::array("toggleElementInspector", nullptr));
51
51
  }
52
52
 
53
+ void DevSettings::openDebugger() noexcept {
54
+ assert(false);
55
+ }
56
+
53
57
  void DevSettings::addMenuItem(std::string title) noexcept {
54
58
  assert(false);
55
59
  }
@@ -24,6 +24,7 @@ struct DevSettings {
24
24
  REACT_METHOD(setIsDebuggingRemotely) void setIsDebuggingRemotely(bool isDebuggingRemotelyEnabled) noexcept;
25
25
  REACT_METHOD(setProfilingEnabled) void setProfilingEnabled(bool isProfilingEnabled) noexcept;
26
26
  REACT_METHOD(toggleElementInspector) void toggleElementInspector() noexcept;
27
+ REACT_METHOD(openDebugger) void openDebugger() noexcept;
27
28
  REACT_METHOD(addMenuItem) void addMenuItem(std::string title) noexcept;
28
29
  REACT_METHOD(setIsShakeToShowDevMenuEnabled) void setIsShakeToShowDevMenuEnabled(bool enabled) noexcept;
29
30
 
@@ -78,8 +78,7 @@ winrt::fire_and_forget GetImageSizeAsync(
78
78
  #ifdef USE_FABRIC
79
79
  } else {
80
80
  auto result = wicBitmapSourceFromStream(memoryStream);
81
- auto &errorInfo = std::get<std::string>(result);
82
- if (errorInfo.empty()) {
81
+ if (!std::get<std::shared_ptr<facebook::react::ImageErrorInfo>>(result)) {
83
82
  auto imagingFactory = std::get<winrt::com_ptr<IWICImagingFactory>>(result);
84
83
  auto wicBmpSource = std::get<winrt::com_ptr<IWICBitmapSource>>(result);
85
84
  UINT width, height;
@@ -234,15 +234,18 @@ void NativeUIManager::AddRootView(ShadowNode &shadowNode, facebook::react::IReac
234
234
  Microsoft::ReactNative::SetTag(element, rootTag);
235
235
 
236
236
  // Add listener to size change so we can redo the layout when that happens
237
- m_sizeChangedVector.push_back(view.as<xaml::FrameworkElement>().SizeChanged(
238
- winrt::auto_revoke, [this, rootTag](auto &&, xaml::SizeChangedEventArgs const &args) {
239
- ApplyLayout(rootTag, args.NewSize().Width, args.NewSize().Height);
240
- }));
237
+ m_sizeChangedMap.insert(
238
+ {rootTag,
239
+ view.as<xaml::FrameworkElement>().SizeChanged(
240
+ winrt::auto_revoke, [this, rootTag](auto &&, xaml::SizeChangedEventArgs const &args) {
241
+ ApplyLayout(rootTag, args.NewSize().Width, args.NewSize().Height);
242
+ })});
241
243
  }
242
244
 
243
245
  void NativeUIManager::removeRootView(Microsoft::ReactNative::ShadowNode &shadow) {
244
246
  SystraceSection s("NativeUIManager::removeRootView");
245
247
  m_tagsToXamlReactControl.erase(shadow.m_tag);
248
+ m_sizeChangedMap.erase(shadow.m_tag);
246
249
  RemoveView(shadow, true);
247
250
  }
248
251
 
@@ -118,7 +118,7 @@ class NativeUIManager final : public INativeUIManager {
118
118
 
119
119
  std::unordered_map<int64_t, YogaNodePtr> m_tagsToYogaNodes;
120
120
  std::unordered_map<int64_t, std::unique_ptr<YogaContext>> m_tagsToYogaContext;
121
- std::vector<xaml::FrameworkElement::SizeChanged_revoker> m_sizeChangedVector;
121
+ std::unordered_map<int64_t, xaml::FrameworkElement::SizeChanged_revoker> m_sizeChangedMap;
122
122
  std::vector<std::function<void()>> m_batchCompletedCallbacks;
123
123
  std::vector<int64_t> m_extraLayoutNodes;
124
124
 
@@ -10,8 +10,8 @@
10
10
 
11
11
  namespace Microsoft::ReactNative {
12
12
 
13
- ReactNativeSpecs::PlatformConstantsWinSpec_PlatformConstantsWindows PlatformConstants::GetConstants() noexcept {
14
- ReactNativeSpecs::PlatformConstantsWinSpec_PlatformConstantsWindows constants;
13
+ ReactNativeSpecs::PlatformConstantsWindowsSpec_PlatformConstantsWindows PlatformConstants::GetConstants() noexcept {
14
+ ReactNativeSpecs::PlatformConstantsWindowsSpec_PlatformConstantsWindows constants;
15
15
 
16
16
  // We don't currently treat Native code differently in a test environment
17
17
  constants.isTesting = false;
@@ -2,17 +2,17 @@
2
2
  // Licensed under the MIT License.
3
3
  #pragma once
4
4
 
5
- #include "codegen/NativePlatformConstantsWinSpec.g.h"
5
+ #include "codegen/NativePlatformConstantsWindowsSpec.g.h"
6
6
  #include <NativeModules.h>
7
7
 
8
8
  namespace Microsoft::ReactNative {
9
9
 
10
10
  REACT_MODULE(PlatformConstants)
11
11
  struct PlatformConstants {
12
- using ModuleSpec = ReactNativeSpecs::PlatformConstantsWinSpec;
12
+ using ModuleSpec = ReactNativeSpecs::PlatformConstantsWindowsSpec;
13
13
 
14
14
  REACT_GET_CONSTANTS(GetConstants)
15
- ReactNativeSpecs::PlatformConstantsWinSpec_PlatformConstantsWindows GetConstants() noexcept;
15
+ ReactNativeSpecs::PlatformConstantsWindowsSpec_PlatformConstantsWindows GetConstants() noexcept;
16
16
  };
17
17
 
18
18
  } // namespace Microsoft::ReactNative
@@ -608,8 +608,8 @@ void ReactInstanceWin::InitializeBridgeless() noexcept {
608
608
  auto timerManager = std::make_shared<facebook::react::TimerManager>(std::move(timerRegistry));
609
609
  timerRegistryRaw->setTimerManager(timerManager);
610
610
 
611
- auto jsErrorHandlingFunc = [this](facebook::react::MapBuffer errorMap) noexcept {
612
- OnJSError(std::move(errorMap));
611
+ auto jsErrorHandlingFunc = [this](const facebook::react::JsErrorHandler::ParsedError &error) noexcept {
612
+ OnJSError(std::move(error));
613
613
  };
614
614
 
615
615
  if (devSettings->useDirectDebugger) {
@@ -1239,24 +1239,18 @@ void ReactInstanceWin::OnError(const Mso::ErrorCode &errorCode) noexcept {
1239
1239
  }
1240
1240
 
1241
1241
  #ifdef USE_FABRIC
1242
- void ReactInstanceWin::OnJSError(facebook::react::MapBuffer errorMap) noexcept {
1242
+ void ReactInstanceWin::OnJSError(const facebook::react::JsErrorHandler::ParsedError &error) noexcept {
1243
1243
  ErrorInfo errorInfo;
1244
- errorInfo.Message = errorMap.getString(facebook::react::JSErrorHandlerKey::kErrorMessage);
1244
+ errorInfo.Message = error.message;
1245
1245
  auto errorCode = Mso::React::ReactErrorProvider().MakeErrorCode(Mso::React::ReactError{errorInfo.Message.c_str()});
1246
1246
 
1247
- std::vector<facebook::react::MapBuffer> frames =
1248
- errorMap.getMapBufferList(facebook::react::JSErrorHandlerKey::kAllStackFrames);
1249
- for (const facebook::react::MapBuffer &mapBuffer : frames) {
1250
- errorInfo.Callstack.push_back(
1251
- {mapBuffer.getString(facebook::react::JSErrorHandlerKey::kFrameFileName),
1252
- mapBuffer.getString(facebook::react::JSErrorHandlerKey::kFrameMethodName),
1253
- mapBuffer.getInt(facebook::react::JSErrorHandlerKey::kFrameLineNumber),
1254
- mapBuffer.getInt(facebook::react::JSErrorHandlerKey::kFrameColumnNumber)});
1247
+ for (const facebook::react::JsErrorHandler::ParsedError::StackFrame &frame : error.frames) {
1248
+ errorInfo.Callstack.push_back({frame.fileName, frame.methodName, frame.lineNumber, frame.columnNumber});
1255
1249
  }
1256
- errorInfo.Id = errorMap.getInt(facebook::react::JSErrorHandlerKey::kExceptionId);
1257
- errorInfo.Id = errorMap.getInt(facebook::react::JSErrorHandlerKey::kExceptionId);
1258
1250
 
1259
- bool isFatal = errorMap.getBool(facebook::react::JSErrorHandlerKey::kIsFatal);
1251
+ errorInfo.Id = error.exceptionId;
1252
+
1253
+ bool isFatal = error.isFatal;
1260
1254
 
1261
1255
  m_state = ReactInstanceState::HasError;
1262
1256
  AbandonJSCallQueue();
@@ -1325,7 +1319,7 @@ void ReactInstanceWin::DrainJSCallQueue() noexcept {
1325
1319
 
1326
1320
  #ifdef USE_FABRIC
1327
1321
  if (m_bridgelessReactInstance) {
1328
- m_bridgelessReactInstance->callFunctionOnModule(entry.ModuleName, entry.MethodName, entry.Args);
1322
+ m_bridgelessReactInstance->callFunctionOnModule(entry.ModuleName, entry.MethodName, std::move(entry.Args));
1329
1323
  } else
1330
1324
  #endif
1331
1325
  if (auto instance = m_instance.LoadWithLock()) {
@@ -1364,7 +1358,7 @@ void ReactInstanceWin::CallJsFunction(
1364
1358
  if (shouldCall) {
1365
1359
  #ifdef USE_FABRIC
1366
1360
  if (m_bridgelessReactInstance) {
1367
- m_bridgelessReactInstance->callFunctionOnModule(moduleName, method, params);
1361
+ m_bridgelessReactInstance->callFunctionOnModule(moduleName, method, std::move(params));
1368
1362
  } else
1369
1363
  #endif
1370
1364
  if (auto instance = m_instance.LoadWithLock()) {
@@ -141,7 +141,7 @@ class ReactInstanceWin final : public Mso::ActiveObject<IReactInstanceInternal>
141
141
  void OnError(const Mso::ErrorCode &errorcode) noexcept;
142
142
  void OnErrorWithMessage(const std::string &errorMessage) noexcept;
143
143
  #ifdef USE_FABRIC
144
- void OnJSError(facebook::react::MapBuffer errorMap) noexcept;
144
+ void OnJSError(const facebook::react::JsErrorHandler::ParsedError &error) noexcept;
145
145
  #endif
146
146
  void OnLiveReload() noexcept;
147
147
  void OnWaitingForDebugger() noexcept;
@@ -2,9 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
 
4
4
  #include "DocString.h"
5
- import "IJSValueReader.idl";
6
- import "IJSValueWriter.idl";
7
- import "Theme.idl";
5
+ import "IReactPropertyBag.idl";
8
6
 
9
7
  namespace Microsoft.ReactNative {
10
8
 
@@ -147,7 +147,7 @@ void BatchingEventEmitter::OnFrameUI() noexcept {
147
147
  });
148
148
 
149
149
  // Don't leave the callback continuously registered as it can waste power.
150
- // See https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.compositiontarget.rendering?view=winrt-19041
150
+ // See https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.compositiontarget.rendering?view=winrt-22621
151
151
  m_renderingRevoker.revoke();
152
152
  }
153
153
 
@@ -59,11 +59,10 @@ std::future<std::string> LocalBundleReader::LoadBundleAsync(const std::wstring b
59
59
  winrt::Windows::Storage::StorageFile file{nullptr};
60
60
 
61
61
  // Supports "ms-appx://" or "ms-appdata://"
62
- // TODO: Replace call to private string function with C++ 20 `starts_with`
63
- if (bundleUri._Starts_with(L"ms-app")) {
62
+ if (bundleUri.starts_with(L"ms-app")) {
64
63
  winrt::Windows::Foundation::Uri uri(bundleUri);
65
64
  file = co_await winrt::Windows::Storage::StorageFile::GetFileFromApplicationUriAsync(uri);
66
- } else if (bundleUri._Starts_with(L"resource://")) {
65
+ } else if (bundleUri.starts_with(L"resource://")) {
67
66
  winrt::Windows::Foundation::Uri uri(bundleUri);
68
67
  co_return GetBundleFromEmbeddedResource(uri);
69
68
  } else {
@@ -200,7 +200,7 @@ REACTWINDOWS_API_(winrt::Color) ColorFrom(const folly::dynamic &d) {
200
200
  return ColorFromNumber(static_cast<UINT>(d.asInt()));
201
201
  }
202
202
 
203
- winrt::Color ColorFrom(const winrt::Microsoft::ReactNative::JSValue &v) {
203
+ REACTWINDOWS_API_(winrt::Color) ColorFrom(const winrt::Microsoft::ReactNative::JSValue &v) {
204
204
  if (v.Type() != winrt::Microsoft::ReactNative::JSValueType::Int64 &&
205
205
  v.Type() != winrt::Microsoft::ReactNative::JSValueType::Double)
206
206
  return winrt::Colors::Transparent();
@@ -445,14 +445,14 @@ void DynamicAutomationPeer::SetValue(double value) {
445
445
 
446
446
  // Doesn't have a React Native analog.
447
447
  // Return default value for XAML Slider.
448
- // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.rangebase.smallchange?view=winrt-19041
448
+ // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.rangebase.smallchange?view=winrt-22621
449
449
  double DynamicAutomationPeer::SmallChange() {
450
450
  return 1;
451
451
  }
452
452
 
453
453
  // Doesn't have a React Native analog.
454
454
  // Return default value for XAML Slider.
455
- // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.rangebase.largechange?view=winrt-19041
455
+ // https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.primitives.rangebase.largechange?view=winrt-22621
456
456
  double DynamicAutomationPeer::LargeChange() {
457
457
  return 10;
458
458
  }
@@ -319,7 +319,7 @@ void TextInputShadowNode::registerEvents() {
319
319
  }
320
320
  }
321
321
 
322
- auto contentElement = control.GetTemplateChild(L"ContentElement");
322
+ auto contentElement = control.as<xaml::Controls::IControlProtected>().GetTemplateChild(L"ContentElement");
323
323
  auto textBoxView = contentElement.as<xaml::Controls::ScrollViewer>();
324
324
  if (textBoxView) {
325
325
  m_scrollViewerViewChangingRevoker = textBoxView.ViewChanging(