react-native-windows 0.84.0 → 0.85.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 (461) hide show
  1. package/.flowconfig +1 -5
  2. package/Directory.Build.props +1 -16
  3. package/Directory.Build.targets +12 -4
  4. package/Folly/ThreadNameStub.cpp +4 -6
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  6. package/Libraries/Animated/Animated.d.ts +8 -1
  7. package/Libraries/Animated/AnimatedEvent.js +4 -4
  8. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  9. package/Libraries/Animated/animations/Animation.js +3 -3
  10. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  11. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  12. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  13. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  14. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  17. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  18. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  19. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  20. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  21. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  22. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  23. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  24. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  25. package/Libraries/Animated/useAnimatedColor.js +25 -0
  26. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  28. package/Libraries/AppState/AppState.js +1 -1
  29. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  30. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  33. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  34. package/Libraries/Components/Button.js +2 -2
  35. package/Libraries/Components/Button.windows.js +2 -2
  36. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  37. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  38. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  39. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  40. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  41. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  42. package/Libraries/Components/Pressable/Pressable.js +3 -3
  43. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  44. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  45. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  46. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  47. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  48. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  49. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  50. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  51. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  52. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  53. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  54. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  56. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  57. package/Libraries/Components/StaticRenderer.js +1 -1
  58. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  59. package/Libraries/Components/Switch/Switch.js +3 -3
  60. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  61. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  62. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  63. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  64. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  65. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  66. package/Libraries/Components/TextInput/TextInput.js +8 -4
  67. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  68. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  69. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  70. package/Libraries/Components/Touchable/Touchable.js +2 -2
  71. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  72. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  73. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  74. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  75. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  76. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  77. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  78. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  79. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  80. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  81. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  82. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  83. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  84. package/Libraries/Components/View/View.windows.js +1 -1
  85. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  86. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  87. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  88. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  89. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  90. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  91. package/Libraries/Core/ExceptionsManager.js +2 -2
  92. package/Libraries/Core/ExtendedError.js +3 -3
  93. package/Libraries/Core/RawEventEmitter.js +1 -1
  94. package/Libraries/Core/ReactNativeVersion.js +2 -2
  95. package/Libraries/Core/Timers/JSTimers.js +3 -2
  96. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  97. package/Libraries/Core/setUpErrorHandling.js +4 -2
  98. package/Libraries/Core/setUpReactDevTools.js +23 -6
  99. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  100. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  101. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  102. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  103. package/Libraries/Image/AssetSourceResolver.js +1 -1
  104. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  105. package/Libraries/Image/Image.android.js +172 -306
  106. package/Libraries/Image/ImageProps.js +9 -11
  107. package/Libraries/Image/ImageSource.js +2 -2
  108. package/Libraries/Image/ImageSourceUtils.js +8 -4
  109. package/Libraries/Image/ImageTypes.flow.js +2 -2
  110. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  111. package/Libraries/Image/nativeImageSource.js +1 -1
  112. package/Libraries/Interaction/InteractionManager.js +5 -4
  113. package/Libraries/Interaction/PanResponder.js +1 -1
  114. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  115. package/Libraries/Linking/Linking.js +1 -1
  116. package/Libraries/Lists/FlatList.js +3 -3
  117. package/Libraries/Lists/SectionList.js +1 -1
  118. package/Libraries/Lists/SectionListModern.js +2 -2
  119. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  120. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  121. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  122. package/Libraries/LogBox/LogBox.js +42 -19
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  126. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  128. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  129. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  135. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  136. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  137. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  138. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  139. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  140. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  142. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  143. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  144. package/Libraries/Modal/Modal.d.ts +4 -0
  145. package/Libraries/Modal/Modal.js +3 -3
  146. package/Libraries/Modal/Modal.windows.js +7 -3
  147. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  148. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  149. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  150. package/Libraries/Network/RCTNetworking.android.js +1 -1
  151. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  152. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  153. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  154. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  155. package/Libraries/Network/XMLHttpRequest.js +1 -1
  156. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  157. package/Libraries/Pressability/Pressability.js +5 -5
  158. package/Libraries/Pressability/Pressability.windows.js +5 -5
  159. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  160. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  161. package/Libraries/Pressability/usePressability.js +3 -14
  162. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  163. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  164. package/Libraries/ReactNative/AppContainer.js +1 -1
  165. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  166. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  167. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  168. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  169. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  170. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  171. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  173. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  174. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  175. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  176. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  178. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  179. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  180. package/Libraries/StyleSheet/PointPropType.js +1 -1
  181. package/Libraries/StyleSheet/Rect.js +1 -1
  182. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  183. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  185. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  186. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  187. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  188. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  189. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  190. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  191. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  192. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  193. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  194. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  195. package/Libraries/StyleSheet/processColorArray.js +2 -2
  196. package/Libraries/StyleSheet/processFilter.js +2 -2
  197. package/Libraries/Text/Text.js +295 -627
  198. package/Libraries/Text/Text.windows.js +342 -717
  199. package/Libraries/Text/TextNativeComponent.js +14 -7
  200. package/Libraries/Text/TextProps.js +4 -4
  201. package/Libraries/Text/TextProps.windows.js +4 -4
  202. package/Libraries/Types/CodegenTypes.js +1 -1
  203. package/Libraries/Types/CoreEventTypes.js +21 -21
  204. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  205. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  206. package/Libraries/Utilities/Appearance.js +6 -1
  207. package/Libraries/Utilities/Dimensions.js +1 -1
  208. package/Libraries/Utilities/HMRClient.js +32 -5
  209. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  210. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  211. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  212. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  213. package/Libraries/Utilities/logError.js +1 -1
  214. package/Libraries/Utilities/stringifySafe.js +3 -3
  215. package/Libraries/Utilities/useMergeRefs.js +2 -2
  216. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  217. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  218. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  219. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  220. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  221. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  222. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  223. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  225. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +4 -4
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  229. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  231. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +3 -1
  232. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  233. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  234. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  235. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  236. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  237. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  238. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +2 -7
  239. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  240. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -61
  241. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  242. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  243. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  244. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  245. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  246. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  247. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  248. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  249. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  250. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  251. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  252. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  253. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  254. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  255. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  256. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  257. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  258. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  259. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  260. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  261. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  262. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  263. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  264. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  265. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  266. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  267. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  268. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  269. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  270. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  271. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  272. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  273. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  274. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  275. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  276. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  277. package/PropertySheets/Autolink.props +1 -1
  278. package/PropertySheets/Bundle.props +1 -1
  279. package/PropertySheets/Codegen.props +1 -1
  280. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  281. package/PropertySheets/NuGet.LockFile.props +8 -0
  282. package/PropertySheets/React.Cpp.props +4 -4
  283. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  284. package/ReactCommon/ReactCommon.vcxproj +5 -6
  285. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  286. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  287. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  288. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  289. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  290. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  291. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  292. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  293. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  294. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  295. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  296. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  297. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  298. package/Scripts/creaternwapp.cmd +1 -9
  299. package/Scripts/creaternwlib.cmd +4 -24
  300. package/Shared/DevSettings.h +0 -3
  301. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  302. package/Shared/Networking/WinRTWebSocketResource.h +3 -119
  303. package/Shared/Shared.vcxitems +63 -38
  304. package/Shared/Shared.vcxitems.filters +54 -0
  305. package/Shared/Utils.cpp +0 -88
  306. package/Shared/Utils.h +0 -14
  307. package/Shared/WebSocketResourceFactory.cpp +28 -0
  308. package/Shared/tracing/fbsystrace.h +1 -0
  309. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  310. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  311. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  312. package/codegen/react/components/rnwcore/Props.h +3 -1
  313. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  314. package/codegen/rnwcoreJSI.h +93 -77
  315. package/index.js +9 -0
  316. package/index.windows.js +9 -0
  317. package/jest/RefreshControlMock.js +2 -2
  318. package/jest/assetFileTransformer.js +8 -3
  319. package/jest/mockComponent.js +3 -4
  320. package/jest/mockNativeComponent.js +1 -1
  321. package/jest/mocks/ActivityIndicator.js +2 -2
  322. package/jest/mocks/Image.js +2 -2
  323. package/jest/mocks/Modal.js +2 -2
  324. package/jest/mocks/RefreshControl.js +3 -3
  325. package/jest/mocks/RendererProxy.js +2 -2
  326. package/jest/mocks/ScrollView.js +5 -5
  327. package/jest/mocks/Text.js +2 -2
  328. package/jest/mocks/TextInput.js +2 -2
  329. package/jest/mocks/View.js +2 -2
  330. package/jest/mocks/ViewNativeComponent.js +1 -1
  331. package/jest/mocks/requireNativeComponent.js +1 -1
  332. package/jest/mocks/useColorScheme.js +1 -1
  333. package/jest/setup.js +68 -31
  334. package/package.json +27 -22
  335. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  336. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  337. package/src/private/components/virtualview/VirtualView.js +14 -21
  338. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  339. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  340. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  341. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  342. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  343. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  344. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  345. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  346. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  347. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  348. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  349. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  350. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  351. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  352. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  353. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  354. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  355. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  356. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  357. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  358. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  359. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  360. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  361. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  362. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  363. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  364. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  365. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  366. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  367. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  368. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  369. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  370. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  371. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  372. package/src/private/styles/composeStyles.js +1 -1
  373. package/src/private/utilities/toError.js +27 -0
  374. package/src/private/utilities/toExtendedError.js +30 -0
  375. package/src/private/webapis/dom/events/Event.js +1 -1
  376. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  377. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  378. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  379. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  380. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  381. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  382. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  383. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  384. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  385. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  386. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  387. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  388. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  389. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  390. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  391. package/src/private/webapis/performance/LongTasks.js +3 -3
  392. package/src/private/webapis/performance/Performance.js +4 -4
  393. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  394. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  395. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  396. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  397. package/src/types/globals.d.ts +4 -4
  398. package/template/cpp-lib/proj/MyLib.sln +0 -33
  399. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  400. package/template/cs-lib/proj/MyLib.sln +0 -33
  401. package/template/metro.config.js +12 -2
  402. package/templates/cpp-app/metro.config.js +12 -2
  403. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  404. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +1 -1
  405. package/templates/cpp-app/windows/MyApp.sln +0 -33
  406. package/templates/cpp-lib/example/metro.config.js +12 -2
  407. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +1 -1
  408. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  409. package/types/index.d.ts +2 -0
  410. package/Folly/.clang-format +0 -2
  411. package/Folly/Folly.natvis +0 -25
  412. package/Folly/Folly.vcxproj +0 -378
  413. package/Folly/Folly.vcxproj.filters +0 -558
  414. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  415. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  416. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  417. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  418. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  419. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  420. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  421. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  422. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  423. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  424. package/Folly/cgmanifest.json +0 -25
  425. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  426. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  427. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  428. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  429. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  430. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  431. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  432. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  433. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  434. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  435. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  436. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  437. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -23
  438. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  439. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  440. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  452. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  453. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  454. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  455. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  456. package/fmt/.clang-format +0 -2
  457. package/fmt/cgmanifest.json +0 -15
  458. package/fmt/fmt.vcxproj +0 -153
  459. package/fmt/fmt.vcxproj.filters +0 -59
  460. package/fmt/pch.cpp +0 -4
  461. package/fmt/pch.h +0 -2
@@ -1,188 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- #pragma once
18
-
19
- #include <cstdint>
20
- #include <utility>
21
-
22
- #include <folly/CppAttributes.h>
23
- #include <folly/Portability.h>
24
- #include <folly/Preprocessor.h>
25
- #include <folly/lang/CArray.h>
26
-
27
- #define FOLLY_DETAIL_SAFE_CHECK_IMPL(d, p, u, expr, ...) \
28
- do { \
29
- if ((!d || ::folly::kIsDebug || ::folly::kIsSanitize) && \
30
- !static_cast<bool>(expr)) { \
31
- static constexpr auto __folly_detail_safe_assert_fun = __func__; \
32
- static constexpr ::folly::detail::safe_assert_arg \
33
- __folly_detail_safe_assert_arg{ \
34
- u ? nullptr : #expr, \
35
- __FILE__, \
36
- FOLLY_PP_CONSTINIT_LINE_UNSIGNED, \
37
- __folly_detail_safe_assert_fun, \
38
- ::folly::detail::safe_assert_msg_types< \
39
- decltype(::folly::detail::safe_assert_msg_types_seq_of( \
40
- __VA_ARGS__))>::value.data}; \
41
- constexpr ::folly::detail::safe_assert_terminate_w<p> \
42
- __folly_detail_safe_assert_terminate_w{ \
43
- __folly_detail_safe_assert_arg}; \
44
- __folly_detail_safe_assert_terminate_w(__VA_ARGS__); \
45
- } \
46
- } while (false)
47
-
48
- // FOLLY_SAFE_CHECK
49
- //
50
- // If expr evaluates to false after explicit conversion to bool, prints context
51
- // information to stderr and aborts. Context information includes the remaining
52
- // variadic arguments.
53
- //
54
- // When the remaining variadic arguments are printed to stderr, there are two
55
- // supported types after implicit conversions: char const* and uint64_t. This
56
- // facility is intentionally not extensible to custom types.
57
- //
58
- // multi-thread-safe
59
- // async-signal-safe
60
- #define FOLLY_SAFE_CHECK(expr, ...) \
61
- FOLLY_DETAIL_SAFE_CHECK_IMPL(0, 0, 0, expr, __VA_ARGS__)
62
-
63
- // FOLLY_SAFE_DCHECK
64
- //
65
- // Equivalent to FOLLY_SAFE_CHECK when in debug or instrumented builds, where
66
- // debug builds are signalled by NDEBUG being undefined and instrumented builds
67
- // include sanitizer builds.
68
- //
69
- // multi-thread-safe
70
- // async-signal-safe
71
- #define FOLLY_SAFE_DCHECK(expr, ...) \
72
- FOLLY_DETAIL_SAFE_CHECK_IMPL(1, 0, 0, expr, __VA_ARGS__)
73
-
74
- // FOLLY_SAFE_PCHECK
75
- //
76
- // Equivalent to FOLLY_SAFE_CHECK but includes errno in the contextual
77
- // information printed to stderr.
78
- //
79
- // multi-thread-safe
80
- // async-signal-safe
81
- #define FOLLY_SAFE_PCHECK(expr, ...) \
82
- FOLLY_DETAIL_SAFE_CHECK_IMPL(0, 1, 0, expr, __VA_ARGS__)
83
-
84
- // FOLLY_SAFE_DPCHECK
85
- //
86
- // Equivalent to FOLLY_SAFE_DCHECK but includes errno in the contextual
87
- // information printed to stderr.
88
- //
89
- // multi-thread-safe
90
- // async-signal-safe
91
- #define FOLLY_SAFE_DPCHECK(expr, ...) \
92
- FOLLY_DETAIL_SAFE_CHECK_IMPL(1, 1, 0, expr, __VA_ARGS__)
93
-
94
- // FOLLY_SAFE_FATAL
95
- //
96
- // Equivalent to FOLLY_SAFE_CHECK(false, ...) but excludes any failing
97
- // expression from the contextual information printed to stderr.
98
- //
99
- // multi-thread-safe
100
- // async-signal-safe
101
- #define FOLLY_SAFE_FATAL(...) \
102
- FOLLY_DETAIL_SAFE_CHECK_IMPL(0, 0, 1, false, __VA_ARGS__)
103
-
104
- // FOLLY_SAFE_DFATAL
105
- //
106
- // Equivalent to FOLLY_SAFE_DCHECK(false, ...) but excludes any failing
107
- // expression from the contextual information printed to stderr.
108
- //
109
- // multi-thread-safe
110
- // async-signal-safe
111
- #define FOLLY_SAFE_DFATAL(...) \
112
- FOLLY_DETAIL_SAFE_CHECK_IMPL(1, 0, 1, false, __VA_ARGS__)
113
-
114
- namespace folly {
115
- namespace detail {
116
-
117
- enum class safe_assert_msg_type : char { term, cstr, ui64 };
118
-
119
- template <safe_assert_msg_type... A>
120
- struct safe_assert_msg_type_s {};
121
-
122
- struct safe_assert_msg_types_one_fn {
123
- template <safe_assert_msg_type A>
124
- using c = std::integral_constant<safe_assert_msg_type, A>;
125
- // only used in unevaluated contexts:
126
- c<safe_assert_msg_type::cstr> operator()(char const*) const;
127
- c<safe_assert_msg_type::ui64> operator()(uint64_t) const;
128
- };
129
- inline constexpr safe_assert_msg_types_one_fn
130
- safe_assert_msg_types_one{}; // a function object to prevent extensions
131
-
132
- template <typename... A>
133
- safe_assert_msg_type_s<decltype(safe_assert_msg_types_one((A)A{}))::value...>
134
- safe_assert_msg_types_seq_of(A...); // only used in unevaluated contexts
135
-
136
- template <typename>
137
- struct safe_assert_msg_types;
138
- template <safe_assert_msg_type... A>
139
- struct safe_assert_msg_types<safe_assert_msg_type_s<A...>> {
140
- using value_type = c_array<safe_assert_msg_type, sizeof...(A) + 1>;
141
- static constexpr value_type value = {{A..., safe_assert_msg_type::term}};
142
- };
143
-
144
- struct safe_assert_arg {
145
- char const* expr;
146
- char const* file;
147
- unsigned int line;
148
- char const* function;
149
- safe_assert_msg_type const* msg_types;
150
- };
151
-
152
- struct safe_assert_msg_cast_one_fn {
153
- FOLLY_ERASE auto operator()(char const* const a) const { return a; }
154
- FOLLY_ERASE auto operator()(uint64_t const a) const { return a; }
155
- };
156
- inline constexpr safe_assert_msg_cast_one_fn
157
- safe_assert_msg_cast_one{}; // a function object to prevent extensions
158
-
159
- template <bool P>
160
- [[noreturn, FOLLY_ATTR_GNU_COLD]] FOLLY_NOINLINE void safe_assert_terminate(
161
- safe_assert_arg const* arg, ...) noexcept; // the true backing function
162
-
163
- // [Win - Fixes Error C2908 explicit specialization; 'void folly::detail::safe_assert_terminate<false>(const folly::detail::safe_assert_arg *,...) noexcept' has already been instantiated
164
- template <>
165
- [[noreturn, FOLLY_ATTR_GNU_COLD]] FOLLY_NOINLINE void safe_assert_terminate<0>(
166
- safe_assert_arg const* arg, ...) noexcept;
167
-
168
- template <>
169
- [[noreturn, FOLLY_ATTR_GNU_COLD]] FOLLY_NOINLINE void safe_assert_terminate<1>(
170
- safe_assert_arg const* arg, ...) noexcept;
171
- // Win]
172
-
173
- template <bool P>
174
- struct safe_assert_terminate_w {
175
- safe_assert_arg const& arg;
176
-
177
- FOLLY_ERASE constexpr safe_assert_terminate_w(
178
- safe_assert_arg const& arg_) noexcept
179
- : arg{arg_} {}
180
-
181
- template <typename... A>
182
- [[noreturn]] FOLLY_ERASE void operator()(A... a) const noexcept {
183
- safe_assert_terminate<P>(&arg, safe_assert_msg_cast_one(a)...);
184
- }
185
- };
186
-
187
- } // namespace detail
188
- } // namespace folly
@@ -1,348 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- #include <folly/lang/ToAscii.h>
18
-
19
- namespace folly {
20
-
21
- namespace detail {
22
-
23
- template <uint64_t Base, typename Alphabet>
24
- struct to_ascii_array {
25
- using data_type_ = c_array<uint8_t, Base>;
26
- static constexpr data_type_ data_() {
27
- data_type_ result{};
28
- Alphabet alpha;
29
- // [Windows #12703 - CodeQL patch]
30
- for (uint64_t i = 0; i < Base; ++i) {
31
- result.data[i] = alpha(static_cast<uint8_t>(i));
32
- }
33
- return result;
34
- }
35
- // @lint-ignore CLANGTIDY
36
- static data_type_ const data;
37
- constexpr char operator()(uint8_t index) const { // also an alphabet
38
- return data.data[index];
39
- }
40
- };
41
- template <uint64_t Base, typename Alphabet>
42
- alignas(kIsMobile ? sizeof(size_t) : hardware_constructive_interference_size)
43
- typename to_ascii_array<Base, Alphabet>::data_type_ const
44
- to_ascii_array<Base, Alphabet>::data =
45
- to_ascii_array<Base, Alphabet>::data_();
46
-
47
- extern template to_ascii_array<8, to_ascii_alphabet_lower>::data_type_ const
48
- to_ascii_array<8, to_ascii_alphabet_lower>::data;
49
- extern template to_ascii_array<10, to_ascii_alphabet_lower>::data_type_ const
50
- to_ascii_array<10, to_ascii_alphabet_lower>::data;
51
- extern template to_ascii_array<16, to_ascii_alphabet_lower>::data_type_ const
52
- to_ascii_array<16, to_ascii_alphabet_lower>::data;
53
- extern template to_ascii_array<8, to_ascii_alphabet_upper>::data_type_ const
54
- to_ascii_array<8, to_ascii_alphabet_upper>::data;
55
- extern template to_ascii_array<10, to_ascii_alphabet_upper>::data_type_ const
56
- to_ascii_array<10, to_ascii_alphabet_upper>::data;
57
- extern template to_ascii_array<16, to_ascii_alphabet_upper>::data_type_ const
58
- to_ascii_array<16, to_ascii_alphabet_upper>::data;
59
-
60
- template <uint64_t Base, typename Alphabet>
61
- struct to_ascii_table {
62
- using data_type_ = c_array<uint16_t, Base * Base>;
63
- static constexpr data_type_ data_() {
64
- data_type_ result{};
65
- Alphabet alpha;
66
- // [Windows #12703 - CodeQL patch]
67
- for (uint64_t i = 0; i < Base * Base; ++i) {
68
- result.data[i] = //
69
- (alpha(uint8_t(i / Base)) << (kIsLittleEndian ? 0 : 8)) |
70
- (alpha(uint8_t(i % Base)) << (kIsLittleEndian ? 8 : 0));
71
- }
72
- return result;
73
- }
74
- // @lint-ignore CLANGTIDY
75
- static data_type_ const data;
76
- };
77
- template <uint64_t Base, typename Alphabet>
78
- alignas(hardware_constructive_interference_size)
79
- typename to_ascii_table<Base, Alphabet>::data_type_ const
80
- to_ascii_table<Base, Alphabet>::data =
81
- to_ascii_table<Base, Alphabet>::data_();
82
-
83
- extern template to_ascii_table<8, to_ascii_alphabet_lower>::data_type_ const
84
- to_ascii_table<8, to_ascii_alphabet_lower>::data;
85
- extern template to_ascii_table<10, to_ascii_alphabet_lower>::data_type_ const
86
- to_ascii_table<10, to_ascii_alphabet_lower>::data;
87
- extern template to_ascii_table<16, to_ascii_alphabet_lower>::data_type_ const
88
- to_ascii_table<16, to_ascii_alphabet_lower>::data;
89
- extern template to_ascii_table<8, to_ascii_alphabet_upper>::data_type_ const
90
- to_ascii_table<8, to_ascii_alphabet_upper>::data;
91
- extern template to_ascii_table<10, to_ascii_alphabet_upper>::data_type_ const
92
- to_ascii_table<10, to_ascii_alphabet_upper>::data;
93
- extern template to_ascii_table<16, to_ascii_alphabet_upper>::data_type_ const
94
- to_ascii_table<16, to_ascii_alphabet_upper>::data;
95
-
96
- template <uint64_t Base, typename Int>
97
- struct to_ascii_powers {
98
- static constexpr size_t size_(Int v) {
99
- return 1 + (v < Base ? 0 : size_(v / Base));
100
- }
101
- static constexpr size_t const size = size_(~Int(0));
102
- using data_type_ = c_array<Int, size>;
103
- static constexpr data_type_ data_() {
104
- data_type_ result{};
105
- for (size_t i = 0; i < size; ++i) {
106
- result.data[i] = constexpr_pow(Base, i);
107
- }
108
- return result;
109
- }
110
- // @lint-ignore CLANGTIDY
111
- static data_type_ const data;
112
- };
113
- #if FOLLY_CPLUSPLUS < 201703L
114
- template <uint64_t Base, typename Int>
115
- constexpr size_t const to_ascii_powers<Base, Int>::size;
116
- #endif
117
- template <uint64_t Base, typename Int>
118
- alignas(hardware_constructive_interference_size)
119
- typename to_ascii_powers<Base, Int>::data_type_ const
120
- to_ascii_powers<Base, Int>::data = to_ascii_powers<Base, Int>::data_();
121
-
122
- extern template to_ascii_powers<8, uint64_t>::data_type_ const
123
- to_ascii_powers<8, uint64_t>::data;
124
- extern template to_ascii_powers<10, uint64_t>::data_type_ const
125
- to_ascii_powers<10, uint64_t>::data;
126
- extern template to_ascii_powers<16, uint64_t>::data_type_ const
127
- to_ascii_powers<16, uint64_t>::data;
128
-
129
- template <uint64_t Base>
130
- FOLLY_ALWAYS_INLINE size_t to_ascii_size_imuls(uint64_t v) {
131
- using powers = to_ascii_powers<Base, uint64_t>;
132
- uint64_t p = 1;
133
- for (size_t i = 0u; i < powers::size; ++i, p *= Base) {
134
- if (FOLLY_UNLIKELY(v < p)) {
135
- return i + size_t(i == 0);
136
- }
137
- }
138
- return powers::size;
139
- }
140
-
141
- template <uint64_t Base>
142
- FOLLY_ALWAYS_INLINE size_t to_ascii_size_idivs(uint64_t v) {
143
- size_t i = 1;
144
- while (v >= Base) {
145
- i += 1;
146
- v /= Base;
147
- }
148
- return i;
149
- }
150
-
151
- template <uint64_t Base>
152
- FOLLY_ALWAYS_INLINE size_t to_ascii_size_array(uint64_t v) {
153
- using powers = to_ascii_powers<Base, uint64_t>;
154
- for (size_t i = 0u; i < powers::size; ++i) {
155
- if (FOLLY_UNLIKELY(v < powers::data.data[i])) {
156
- return i + size_t(i == 0);
157
- }
158
- }
159
- return powers::size;
160
- }
161
-
162
- // For some architectures, we can get a little help from clzll, the "count
163
- // leading zeros" builtin, which is backed by a single performant instruction.
164
- //
165
- // Note that the compiler implements __builtin_clzll on all architectures, but
166
- // only emits a single clzll instruction when the architecture has one.
167
- //
168
- // This implementation may be faster than the basic ones in the general case
169
- // because the time taken to compute this one is constant for non-zero v,
170
- // whereas the basic ones take time proportional to log<2>(v). Whether this one
171
- // is actually faster depends on the emitted code for this implementation and
172
- // on whether the loops in the basic implementations are unrolled.
173
- template <uint64_t Base>
174
- FOLLY_ALWAYS_INLINE size_t to_ascii_size_clzll(uint64_t v) {
175
- using powers = to_ascii_powers<Base, uint64_t>;
176
-
177
- // clzll is undefined for 0; must special case this
178
- if (FOLLY_UNLIKELY(!v)) {
179
- return 1;
180
- }
181
-
182
- // log2 is approx log<2>(v)
183
- size_t const vlog2 = 64 - static_cast<size_t>(__builtin_clzll(v));
184
-
185
- // work around msvc warning C4127 (conditional expression is constant)
186
- bool false_ = false;
187
-
188
- // handle directly when Base is power-of-two
189
- if (false_ || !(Base & (Base - 1))) {
190
- constexpr auto const blog2 = constexpr_log2(Base);
191
- return vlog2 / blog2 + size_t(vlog2 % blog2 != 0);
192
- }
193
-
194
- // blog2r is approx 1 / log<2>(Base), used in log change-of-base just below
195
- constexpr auto const blog2m = constexpr_log2(constexpr_pow(Base, 8));
196
- constexpr auto const blog2r = 8. / double(blog2m);
197
-
198
- // vlogb is approx log<Base>(v) = log<2>(v) / log<2>(Base)
199
- auto const vlogb = vlog2 * size_t(blog2r * 256) / 256;
200
-
201
- // return vlogb, adjusted if necessary
202
- return vlogb + size_t(vlogb < powers::size && v >= powers::data.data[vlogb]);
203
- }
204
-
205
- template <uint64_t Base>
206
- FOLLY_ALWAYS_INLINE size_t to_ascii_size_route(uint64_t v) {
207
- return kIsArchAmd64 && !(Base & (Base - 1)) //
208
- ? to_ascii_size_clzll<Base>(v)
209
- : to_ascii_size_array<Base>(v);
210
- }
211
-
212
- // The straightforward implementation, assuming the size known in advance.
213
- //
214
- // The straightforward implementation without the size known in advance would
215
- // entail emitting the bytes backward and then reversing them at the end, once
216
- // the size is known.
217
- template <uint64_t Base, typename Alphabet>
218
- FOLLY_ALWAYS_INLINE void to_ascii_with_basic(
219
- char* out, size_t size, uint64_t v) {
220
- Alphabet const xlate;
221
- for (auto pos = size - 1; pos; --pos) {
222
- // keep /, % together so a peephole optimization computes them together
223
- auto const q = v / Base;
224
- auto const r = v % Base;
225
- out[pos] = xlate(uint8_t(r));
226
- v = q;
227
- }
228
- out[0] = xlate(uint8_t(v));
229
- }
230
-
231
- // A variant of the straightforward implementation, but using a lookup table.
232
- template <uint64_t Base, typename Alphabet>
233
- FOLLY_ALWAYS_INLINE void to_ascii_with_array(
234
- char* out, size_t size, uint64_t v) {
235
- using array = to_ascii_array<Base, Alphabet>; // also an alphabet
236
- to_ascii_with_basic<Base, array>(out, size, v);
237
- }
238
-
239
- // A trickier implementation which performs half as many divides as the other,
240
- // more straightforward, implementation. On modern hardware, the divides are
241
- // the bottleneck (even when the compiler emits a complicated sequence of add,
242
- // sub, and mul instructions with special constants to simulate a divide by a
243
- // fixed denominator).
244
- //
245
- // The downside of this implementation is that the emitted code is larger,
246
- // especially when the divide is simulated, which affects inlining decisions.
247
- template <uint64_t Base, typename Alphabet>
248
- FOLLY_ALWAYS_INLINE void to_ascii_with_table(
249
- char* out, size_t size, uint64_t v) {
250
- using table = to_ascii_table<Base, Alphabet>;
251
- auto pos = size;
252
- while (FOLLY_UNLIKELY(pos > 2)) {
253
- pos -= 2;
254
- // keep /, % together so a peephole optimization computes them together
255
- auto const q = v / (Base * Base);
256
- auto const r = v % (Base * Base);
257
- auto const val = table::data.data[size_t(r)];
258
- std::memcpy(out + pos, &val, 2);
259
- v = q;
260
- }
261
-
262
- auto const val = table::data.data[size_t(v)];
263
- if (FOLLY_UNLIKELY(pos == 2)) {
264
- std::memcpy(out, &val, 2);
265
- } else {
266
- *out = val >> (kIsLittleEndian ? 8 : 0);
267
- }
268
- }
269
- template <uint64_t Base, typename Alphabet>
270
- FOLLY_ALWAYS_INLINE size_t to_ascii_with_table(char* out, uint64_t v) {
271
- auto const size = to_ascii_size_route<Base>(v);
272
- to_ascii_with_table<Base, Alphabet>(out, size, v);
273
- return size;
274
- }
275
-
276
- // Assumes that size >= number of digits in v. If >, the result is left-padded
277
- // with 0s.
278
- template <uint64_t Base, typename Alphabet>
279
- FOLLY_ALWAYS_INLINE void to_ascii_with_route(
280
- char* outb, size_t size, uint64_t v) {
281
- kIsMobile //
282
- ? to_ascii_with_array<Base, Alphabet>(outb, size, v)
283
- : to_ascii_with_table<Base, Alphabet>(outb, size, v);
284
- }
285
- template <uint64_t Base, typename Alphabet>
286
- FOLLY_ALWAYS_INLINE size_t
287
- to_ascii_with_route(char* outb, char const* oute, uint64_t v) {
288
- auto const size = to_ascii_size_route<Base>(v);
289
- if (FOLLY_UNLIKELY(oute < outb || size_t(oute - outb) < size)) {
290
- return 0;
291
- }
292
- to_ascii_with_route<Base, Alphabet>(outb, size, v);
293
- return size;
294
- }
295
- template <uint64_t Base, typename Alphabet, size_t N>
296
- FOLLY_ALWAYS_INLINE size_t to_ascii_with_route(char (&out)[N], uint64_t v) {
297
- static_assert(N >= to_ascii_powers<Base, decltype(v)>::size, "out too small");
298
- return to_ascii_with_table<Base, Alphabet>(out, v);
299
- }
300
-
301
- size_t to_ascii_size_route<10>(uint64_t v);
302
-
303
-
304
- template to_ascii_array<8, to_ascii_alphabet_lower>::data_type_ const
305
- to_ascii_array<8, to_ascii_alphabet_lower>::data;
306
- template to_ascii_array<10, to_ascii_alphabet_lower>::data_type_ const
307
- to_ascii_array<10, to_ascii_alphabet_lower>::data;
308
- template to_ascii_array<16, to_ascii_alphabet_lower>::data_type_ const
309
- to_ascii_array<16, to_ascii_alphabet_lower>::data;
310
- template to_ascii_array<8, to_ascii_alphabet_upper>::data_type_ const
311
- to_ascii_array<8, to_ascii_alphabet_upper>::data;
312
- template to_ascii_array<10, to_ascii_alphabet_upper>::data_type_ const
313
- to_ascii_array<10, to_ascii_alphabet_upper>::data;
314
- template to_ascii_array<16, to_ascii_alphabet_upper>::data_type_ const
315
- to_ascii_array<16, to_ascii_alphabet_upper>::data;
316
-
317
- template to_ascii_table<8, to_ascii_alphabet_lower>::data_type_ const
318
- to_ascii_table<8, to_ascii_alphabet_lower>::data;
319
- template to_ascii_table<10, to_ascii_alphabet_lower>::data_type_ const
320
- to_ascii_table<10, to_ascii_alphabet_lower>::data;
321
- template to_ascii_table<16, to_ascii_alphabet_lower>::data_type_ const
322
- to_ascii_table<16, to_ascii_alphabet_lower>::data;
323
- template to_ascii_table<8, to_ascii_alphabet_upper>::data_type_ const
324
- to_ascii_table<8, to_ascii_alphabet_upper>::data;
325
- template to_ascii_table<10, to_ascii_alphabet_upper>::data_type_ const
326
- to_ascii_table<10, to_ascii_alphabet_upper>::data;
327
- template to_ascii_table<16, to_ascii_alphabet_upper>::data_type_ const
328
- to_ascii_table<16, to_ascii_alphabet_upper>::data;
329
-
330
- template to_ascii_powers<8, uint64_t>::data_type_ const
331
- to_ascii_powers<8, uint64_t>::data;
332
- template to_ascii_powers<10, uint64_t>::data_type_ const
333
- to_ascii_powers<10, uint64_t>::data;
334
- template to_ascii_powers<16, uint64_t>::data_type_ const
335
- to_ascii_powers<16, uint64_t>::data;
336
-
337
- // [Windows] Code to ensure functions exist to export
338
- void forExports() {
339
- auto b = to_ascii_size_route<10>(0);
340
- char cc[20];
341
- auto a = to_ascii_with_route<10, to_ascii_alphabet<false>, 20>(cc, 0);
342
- char d, e;
343
- auto r = to_ascii_with_route<10, to_ascii_alphabet<false>>(&d, &e, static_cast<uint64_t>(0));
344
- }
345
-
346
- } // namespace detail
347
-
348
- } // namespace folly