react-native-windows 0.78.4 → 0.78.6

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 (191) hide show
  1. package/Directory.Build.props +6 -4
  2. package/Folly/Folly.vcxproj +46 -6
  3. package/Folly/Folly.vcxproj.filters +16 -4
  4. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +26 -18
  5. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +1205 -0
  6. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +155 -0
  7. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +633 -0
  8. package/Folly/TEMP_UntilFollyUpdate/{dynamic-inl.h → json/dynamic-inl.h} +3 -4
  9. package/Folly/TEMP_UntilFollyUpdate/{json.cpp → json/json.cpp} +14 -10
  10. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +7 -14
  11. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +6 -6
  12. package/Folly/ThreadNameStub.cpp +10 -0
  13. package/Folly/cgmanifest.json +11 -1
  14. package/Libraries/Components/View/View.windows.js +107 -56
  15. package/Libraries/Components/View/ViewAccessibility.d.ts +60 -1
  16. package/Libraries/Image/Image.windows.js +42 -21
  17. package/Libraries/Modal/Modal.d.ts +7 -0
  18. package/Libraries/Modal/Modal.windows.js +7 -1
  19. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -0
  20. package/Libraries/Text/Text.d.ts +18 -0
  21. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +4 -25
  22. package/Microsoft.ReactNative/AsynchronousEventBeat.h +0 -3
  23. package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -0
  24. package/Microsoft.ReactNative/CallInvoker.cpp +42 -0
  25. package/Microsoft.ReactNative/CallInvoker.h +34 -0
  26. package/Microsoft.ReactNative/{JSDispatcherWriter.cpp → CallInvokerWriter.cpp} +35 -47
  27. package/Microsoft.ReactNative/CallInvokerWriter.h +74 -0
  28. package/Microsoft.ReactNative/CompositionComponentView.idl +0 -5
  29. package/Microsoft.ReactNative/CompositionSwitcher.idl +7 -0
  30. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +8 -10
  31. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +4 -1
  32. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +12 -2
  33. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +2 -0
  34. package/Microsoft.ReactNative/Fabric/Composition/CompositionAnnotationProvider.cpp +100 -0
  35. package/Microsoft.ReactNative/Fabric/Composition/CompositionAnnotationProvider.h +31 -0
  36. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +77 -11
  37. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +43 -1
  38. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +7 -0
  39. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +86 -56
  40. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +5 -1
  41. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +0 -4
  42. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +0 -2
  43. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +118 -63
  44. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +2 -0
  45. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +133 -8
  46. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +16 -2
  47. package/Microsoft.ReactNative/Fabric/Composition/FocusManager.cpp +4 -2
  48. package/Microsoft.ReactNative/Fabric/Composition/FocusManager.h +9 -1
  49. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +34 -11
  50. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +3 -0
  51. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +133 -135
  52. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +9 -6
  53. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +46 -49
  54. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +6 -1
  55. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +13 -8
  56. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +5 -2
  57. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +146 -25
  58. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +14 -0
  59. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +160 -12
  60. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +6 -0
  61. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.cpp +47 -0
  62. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.h +15 -1
  63. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +6 -2
  64. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +4 -1
  65. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +7 -9
  66. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -1
  67. package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +5 -0
  68. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +40 -36
  69. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +68 -0
  70. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +11 -0
  71. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +70 -13
  72. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +10 -2
  73. package/Microsoft.ReactNative/Fabric/ImageManager.cpp +5 -5
  74. package/Microsoft.ReactNative/Fabric/ImageRequestParams.cpp +26 -0
  75. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +47 -8
  76. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +10 -1
  77. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/CompositionAccessibilityProps.h +67 -0
  78. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +22 -4
  79. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +15 -2
  80. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +20 -0
  81. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +5 -0
  82. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/MouseEvent.h +20 -0
  83. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +5 -8
  84. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorParser.h +1 -2
  85. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +247 -45
  86. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +15 -0
  87. package/Microsoft.ReactNative/Fabric/platform/react/threading/MessageQueueThreadImpl.cpp +39 -0
  88. package/Microsoft.ReactNative/Fabric/platform/react/threading/MessageQueueThreadImpl.h +54 -0
  89. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +126 -0
  90. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +73 -0
  91. package/Microsoft.ReactNative/IReactContext.cpp +17 -0
  92. package/Microsoft.ReactNative/IReactContext.h +1 -0
  93. package/Microsoft.ReactNative/IReactContext.idl +18 -1
  94. package/Microsoft.ReactNative/IReactDispatcher.idl +1 -0
  95. package/Microsoft.ReactNative/IReactModuleBuilder.cpp +12 -0
  96. package/Microsoft.ReactNative/IReactModuleBuilder.h +2 -0
  97. package/Microsoft.ReactNative/IReactModuleBuilder.idl +8 -0
  98. package/Microsoft.ReactNative/JsiApi.cpp +10 -2
  99. package/Microsoft.ReactNative/JsiApi.h +1 -0
  100. package/Microsoft.ReactNative/JsiApi.idl +1 -0
  101. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +0 -3
  102. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -3
  103. package/Microsoft.ReactNative/Modules/AlertModule.cpp +7 -12
  104. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.cpp +2 -1
  105. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +4 -8
  106. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -2
  107. package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +6 -8
  108. package/Microsoft.ReactNative/Modules/ClipboardModule.h +1 -1
  109. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +6 -15
  110. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +13 -24
  111. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -16
  112. package/Microsoft.ReactNative/QuirkSettings.h +0 -3
  113. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +11 -1
  114. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +78 -68
  115. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -2
  116. package/Microsoft.ReactNative/ReactInstanceSettings.cpp +12 -0
  117. package/Microsoft.ReactNative/ReactInstanceSettings.h +2 -0
  118. package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
  119. package/Microsoft.ReactNative/ReactNativeIsland.idl +3 -0
  120. package/Microsoft.ReactNative/ReactSupport.cpp +44 -11
  121. package/Microsoft.ReactNative/RedBox.cpp +30 -1
  122. package/Microsoft.ReactNative/SchedulerSettings.cpp +4 -4
  123. package/Microsoft.ReactNative/SchedulerSettings.h +1 -1
  124. package/Microsoft.ReactNative/TurboModulesProvider.cpp +30 -12
  125. package/Microsoft.ReactNative/Utils/ImageUtils.h +1 -0
  126. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +37 -31
  127. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +1 -0
  128. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +2 -0
  129. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +1 -1
  130. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +94 -27
  131. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +27 -6
  132. package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +45 -11
  133. package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.h +6 -0
  134. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +220 -0
  135. package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +28 -0
  136. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +6 -0
  137. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +241 -4
  138. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +207 -19
  139. package/Microsoft.ReactNative.Cxx/JSValue.cpp +19 -3
  140. package/Microsoft.ReactNative.Cxx/JSValue.h +15 -7
  141. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  142. package/Microsoft.ReactNative.Cxx/NativeModules.h +60 -2
  143. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +1267 -614
  144. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +4 -2
  145. package/Microsoft.ReactNative.Cxx/ReactContext.h +7 -0
  146. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +11 -13
  147. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -3
  148. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +81 -20
  149. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +47 -2
  150. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +13 -0
  151. package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +1 -1
  152. package/Microsoft.ReactNative.Managed/ReactContext.cs +3 -1
  153. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  154. package/PropertySheets/JSEngine.props +1 -1
  155. package/PropertySheets/React.Cpp.props +2 -1
  156. package/PropertySheets/WebView2.props +1 -1
  157. package/PropertySheets/WinUI.props +2 -2
  158. package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +429 -0
  159. package/ReactCommon/cgmanifest.json +1 -1
  160. package/Shared/HermesRuntimeHolder.cpp +6 -0
  161. package/Shared/JSI/ChakraRuntime.cpp +4 -0
  162. package/Shared/JSI/ChakraRuntime.h +2 -0
  163. package/Shared/Modules/BlobModule.cpp +14 -16
  164. package/Shared/Modules/BlobModule.h +3 -1
  165. package/Shared/Networking/WinRTWebSocketResource.cpp +82 -101
  166. package/Shared/Networking/WinRTWebSocketResource.h +91 -7
  167. package/Shared/Shared.vcxitems +11 -7
  168. package/Shared/Shared.vcxitems.filters +6 -1
  169. package/Shared/TurboModuleManager.cpp +0 -15
  170. package/codegen/react/components/rnwcore/ActivityIndicatorView.g.h +6 -6
  171. package/codegen/react/components/rnwcore/AndroidDrawerLayout.g.h +6 -6
  172. package/codegen/react/components/rnwcore/AndroidHorizontalScrollContentView.g.h +6 -6
  173. package/codegen/react/components/rnwcore/AndroidProgressBar.g.h +6 -6
  174. package/codegen/react/components/rnwcore/AndroidSwipeRefreshLayout.g.h +6 -6
  175. package/codegen/react/components/rnwcore/AndroidSwitch.g.h +6 -6
  176. package/codegen/react/components/rnwcore/DebuggingOverlay.g.h +6 -6
  177. package/codegen/react/components/rnwcore/InputAccessory.g.h +6 -6
  178. package/codegen/react/components/rnwcore/ModalHostView.g.h +11 -7
  179. package/codegen/react/components/rnwcore/Props.cpp +2 -1
  180. package/codegen/react/components/rnwcore/Props.h +1 -0
  181. package/codegen/react/components/rnwcore/PullToRefreshView.g.h +6 -6
  182. package/codegen/react/components/rnwcore/SafeAreaView.g.h +6 -6
  183. package/codegen/react/components/rnwcore/Switch.g.h +6 -6
  184. package/codegen/react/components/rnwcore/UnimplementedNativeView.g.h +6 -6
  185. package/index.windows.js +4 -2
  186. package/package.json +3 -4
  187. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  188. package/stubs/glog/logging.h +1 -1
  189. package/Microsoft.ReactNative/JSDispatcherWriter.h +0 -47
  190. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +0 -51
  191. package/Microsoft.ReactNative/SynchronousEventBeat.h +0 -31
@@ -19,14 +19,16 @@
19
19
  -->
20
20
  <EnableSourceLink Condition="'$(EnableSourceLink)' == '' AND '$(BuildingInRnwRepo)' == 'true'">true</EnableSourceLink>
21
21
  <EnableSourceLink Condition="'$(EnableSourceLink)' == ''">false</EnableSourceLink>
22
- <!-- When bumping the Folly version, be sure to bump the git hash of that version's commit and build Folly.vcxproj (to update its cgmanifest.json) too. -->
23
- <FollyVersion>2024.01.01.00</FollyVersion>
24
- <FollyCommitHash>234d39a36a43106747d10cc19efada72fd810dd3</FollyCommitHash>
22
+ <!-- When bumping the Folly version, be sure to bump the git hash of that version's commit, find the matching fastfloat dependency and build Folly.vcxproj (to update its cgmanifest.json) too. -->
23
+ <FollyVersion>2024.10.14.00</FollyVersion>
24
+ <FastFloatVersion>6.1.4</FastFloatVersion>
25
+ <FollyCommitHash>ad90720829db5ba0c3d0e44994856dcce33d7940</FollyCommitHash>
26
+ <FastFloatCommitHash>ad90720829db5ba0c3d0e44994856dcce33d7940</FastFloatCommitHash>
25
27
  <!-- When bumping the fmt version, be sure to bump the git hash of that version's commit and build fmt.vcxproj (to update its cgmanifest.json) too. -->
26
28
  <FmtVersion>10.1.0</FmtVersion>
27
29
  <FmtCommitHash>ca2e3685b160617d3d95fcd9e789c4e06ca88</FmtCommitHash>
28
30
  <!-- Commit hash for https://github.com/microsoft/node-api-jsi code. -->
29
- <NodeApiJsiCommitHash>83cfef428a97627c9185c73da097e42742de56eb</NodeApiJsiCommitHash>
31
+ <NodeApiJsiCommitHash>980cb60d7911237d0f647fc566543ef627adac70</NodeApiJsiCommitHash>
30
32
  </PropertyGroup>
31
33
 
32
34
  <!--
@@ -50,6 +50,7 @@
50
50
  <ConfigurationType>StaticLibrary</ConfigurationType>
51
51
  </PropertyGroup>
52
52
  <ItemGroup Condition="'$(UseFabric)' == 'true'">
53
+ <ClCompile Include="$(MSBuildThisFileDirectory)\ThreadNameStub.cpp" />
53
54
  <ClCompile Include="$(FollyDir)\folly\SharedMutex.cpp" />
54
55
  <ClCompile Include="$(FollyDir)\folly\concurrency\CacheLocality.cpp" />
55
56
  <ClCompile Include="$(FollyDir)\folly\detail\Futex.cpp" />
@@ -63,7 +64,7 @@
63
64
  <ClCompile Include="$(FollyDir)\folly\system\ThreadId.cpp" />
64
65
  <ClCompile Include="$(FollyDir)\folly\lang\SafeAssert.cpp" />
65
66
  <ClCompile Include="$(FollyDir)\folly\lang\ToAscii.cpp" />
66
- <ClCompile Include="$(FollyDir)\folly\json_pointer.cpp" />
67
+ <ClCompile Include="$(FollyDir)\folly\json\json_pointer.cpp" />
67
68
  <ClCompile Include="$(FollyDir)\folly\Format.cpp" />
68
69
  <ClCompile Include="$(FollyDir)\folly\String.cpp" />
69
70
  <ClCompile Include="$(FollyDir)\folly\container\detail\F14Table.cpp" />
@@ -72,8 +73,8 @@
72
73
  <ObjectFileName>$(IntDir)\portabilityString.obj</ObjectFileName>
73
74
  </ClCompile>
74
75
  <ClCompile Include="$(FollyDir)\folly\Demangle.cpp" />
75
- <ClCompile Include="$(FollyDir)\folly\dynamic.cpp" />
76
- <ClCompile Include="$(FollyDir)\folly\json.cpp" />
76
+ <ClCompile Include="$(FollyDir)\folly\json\dynamic.cpp" />
77
+ <ClCompile Include="$(FollyDir)\folly\json\json.cpp" />
77
78
  <ClCompile Include="$(FollyDir)\folly\hash\SpookyHashV2.cpp" />
78
79
  <ClCompile Include="$(FollyDir)\folly\ScopeGuard.cpp" />
79
80
  <ClCompile Include="$(FollyDir)\folly\Unicode.cpp" />
@@ -105,7 +106,7 @@
105
106
  <ClInclude Include="$(FollyDir)\folly\Demangle.h" />
106
107
  <ClInclude Include="$(FollyDir)\folly\detail\AtomicHashUtils.h" />
107
108
  <ClInclude Include="$(FollyDir)\folly\detail\AtomicUnorderedMapUtils.h" />
108
- <ClInclude Include="$(FollyDir)\folly\detail\CacheLocality.h" />
109
+ <ClInclude Include="$(FollyDir)\folly\concurrency\CacheLocality.h" />
109
110
  <ClInclude Include="$(FollyDir)\folly\detail\DiscriminatedPtrDetail.h" />
110
111
  <ClInclude Include="$(FollyDir)\folly\detail\FileUtilDetail.h" />
111
112
  <ClInclude Include="$(FollyDir)\folly\detail\FingerprintPolynomial.h" />
@@ -126,6 +127,9 @@
126
127
  <ClInclude Include="$(FollyDir)\folly\dynamic-inl.h" />
127
128
  <ClInclude Include="$(FollyDir)\folly\dynamic.h" />
128
129
  <ClInclude Include="$(FollyDir)\folly\DynamicConverter.h" />
130
+ <ClInclude Include="$(FollyDir)\folly\json\dynamic-inl.h" />
131
+ <ClInclude Include="$(FollyDir)\folly\json\dynamic.h" />
132
+ <ClInclude Include="$(FollyDir)\folly\json\DynamicConverter.h" />
129
133
  <ClInclude Include="$(FollyDir)\folly\Exception.h" />
130
134
  <ClInclude Include="$(FollyDir)\folly\ExceptionString.h" />
131
135
  <ClInclude Include="$(FollyDir)\folly\ExceptionWrapper.h" />
@@ -150,7 +154,7 @@
150
154
  <ClInclude Include="$(FollyDir)\folly\IPAddressException.h" />
151
155
  <ClInclude Include="$(FollyDir)\folly\IPAddressV4.h" />
152
156
  <ClInclude Include="$(FollyDir)\folly\IPAddressV6.h" />
153
- <ClInclude Include="$(FollyDir)\folly\json.h" />
157
+ <ClInclude Include="$(FollyDir)\folly\json\json.h" />
154
158
  <ClInclude Include="$(FollyDir)\folly\lang\ToAscii.h" />
155
159
  <ClInclude Include="$(FollyDir)\folly\Lazy.h" />
156
160
  <ClInclude Include="$(FollyDir)\folly\Likely.h" />
@@ -219,6 +223,10 @@
219
223
  <ClInclude Include="$(FollyDir)\folly\SpinLock.h" />
220
224
  <ClInclude Include="$(FollyDir)\folly\stop_watch.h" />
221
225
  <ClInclude Include="$(FollyDir)\folly\String-inl.h" />
226
+ <ClInclude Include="$(FollyDir)\hash\MurmurHash.h" />
227
+ <ClInclude Include="$(FollyDir)\hash\SpookyHashV1.h" />
228
+ <ClInclude Include="$(FollyDir)\hash\SpookyHashV2.h" />
229
+ <ClInclude Include="$(FollyDir)\functional\ApplyTuple.h" />
222
230
  <ClInclude Include="$(FollyDir)\folly\String.h" />
223
231
  <ClInclude Include="$(FollyDir)\folly\Subprocess.h" />
224
232
  <ClInclude Include="$(FollyDir)\folly\Synchronized.h" />
@@ -233,7 +241,9 @@
233
241
  <ClInclude Include="$(FollyDir)\folly\Unit.h" />
234
242
  <ClInclude Include="$(FollyDir)\folly\Uri-inl.h" />
235
243
  <ClInclude Include="$(FollyDir)\folly\Uri.h" />
244
+ <ClInclude Include="$(FollyDir)\folly\Utility.h" />
236
245
  <ClInclude Include="$(FollyDir)\folly\Varint.h" />
246
+ <ClInclude Include="$(FollyDir)\..\fast_float-6.1.4\include\fast_float\fast_float.h" />
237
247
  <ClInclude Include="pch.h" />
238
248
  </ItemGroup>
239
249
  <ItemGroup>
@@ -261,7 +271,7 @@
261
271
  <PrecompiledHeader>Use</PrecompiledHeader>
262
272
  <CompileAsWinRT>false</CompileAsWinRT>
263
273
  <SDLCheck>true</SDLCheck>
264
- <AdditionalIncludeDirectories>$(ReactNativeWindowsDir)stubs;$(FollyDir);$(FmtDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
274
+ <AdditionalIncludeDirectories>$(ReactNativeWindowsDir)stubs;$(FollyDir);$(FollyDir)\..\fast_float-6.1.4\include;$(FmtDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
265
275
  <PreprocessorDefinitions>FOLLY_CFG_NO_COROUTINES;FOLLY_NO_CONFIG;NOMINMAX;_CRT_SECURE_NO_WARNINGS;WINAPI_PARTITION_APP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
266
276
  <ForcedUsingFiles />
267
277
  <DisableSpecificWarnings>4251;4293;4305;4800;4804;4310;%(DisableSpecificWarnings)</DisableSpecificWarnings>
@@ -281,6 +291,10 @@
281
291
  <FollyZipFile>$(FollyZipDir)\folly-$(FollyVersion).zip</FollyZipFile>
282
292
  <CGManifestFile>$(MSBuildThisFileDirectory)cgmanifest.json</CGManifestFile>
283
293
  </PropertyGroup>
294
+ <PropertyGroup>
295
+ <FastFloatZipDir>$(FollyDir)..\.fastfloatzip</FastFloatZipDir>
296
+ <FastFloatZipFile>$(FollyDir)..\.fastfloatzip\fastfloat.zip</FastFloatZipFile>
297
+ </PropertyGroup>
284
298
  <Target Name="DownloadFolly" BeforeTargets="PrepareForBuild" Inputs="$(FollyZipFile)" Outputs="$(FollyZipFile)">
285
299
  <Message Importance="High" Text="Downloading folly..." />
286
300
  <DownloadFile
@@ -289,6 +303,14 @@
289
303
  DestinationFolder="$(FollyZipDir)"
290
304
  Retries="10" />
291
305
  </Target>
306
+ <Target Name="DownloadFastFloat" BeforeTargets="PrepareForBuild" Inputs="$(FastFloatZipFile)" Outputs="$(FastFloatZipFile)">
307
+ <Message Importance="High" Text="Downloading FastFloat (folly dependency)..." />
308
+ <DownloadFile
309
+ SourceUrl="https://github.com/fastfloat/fast_float/archive/refs/tags/v$(FastFloatVersion).zip"
310
+ DestinationFileName="$(FastFloatZipFile)"
311
+ DestinationFolder="$(FastFloatZipDir)"
312
+ Retries="10" />
313
+ </Target>
292
314
  <Target Name="UnzipFolly" BeforeTargets="PrepareForBuild" DependsOnTargets="DownloadFolly">
293
315
  <Message Condition="!Exists('$(FollyDir)folly\dynamic.h')" Importance="High" Text="Unzipping folly to $([MSBuild]::NormalizePath($(FollyDir)..))." />
294
316
  <Unzip
@@ -297,6 +319,14 @@
297
319
  DestinationFolder="$([MSBuild]::NormalizePath($(FollyDir)..))"
298
320
  OverwriteReadOnlyFiles="true" />
299
321
  </Target>
322
+ <Target Name="UnzipFastFloat" BeforeTargets="PrepareForBuild" DependsOnTargets="DownloadFastFloat">
323
+ <Message Condition="!Exists('$(FastFloatZipDir)\include\fast_float.h')" Importance="High" Text="Unzipping FastFloat to $([MSBuild]::NormalizePath($(FastFloatZipDir)..))." />
324
+ <Unzip
325
+ Condition="!Exists('$(FastFloatZipDir)\include\fast_float.h')"
326
+ SourceFiles="$(FastFloatZipFile)"
327
+ DestinationFolder="$([MSBuild]::NormalizePath($(FollyDir)..))"
328
+ OverwriteReadOnlyFiles="true" />
329
+ </Target>
300
330
  <Target Name="WriteCGManifest" BeforeTargets="PrepareForBuild" DependsOnTargets="DownloadFolly" Inputs="$(FollyZipFile)" Outputs="$(CGManifestFile)">
301
331
  <PropertyGroup>
302
332
  <CGManifestText>{
@@ -311,6 +341,16 @@
311
341
  }
312
342
  },
313
343
  "DevelopmentDependency": false
344
+ },
345
+ {
346
+ "Component": {
347
+ "Type": "git",
348
+ "Git": {
349
+ "RepositoryUrl": "https://github.com/fastfloat/fast_float",
350
+ "CommitHash": "$(FastFloatCommitHash)"
351
+ }
352
+ },
353
+ "DevelopmentDependency": false
314
354
  }
315
355
  ]
316
356
  }</CGManifestText>
@@ -48,16 +48,16 @@
48
48
  <ClCompile Include="$(FollyDir)\folly\Demangle.cpp">
49
49
  <Filter>Source Files</Filter>
50
50
  </ClCompile>
51
- <ClCompile Include="$(FollyDir)\folly\dynamic.cpp">
51
+ <ClCompile Include="$(FollyDir)\folly\json\dynamic.cpp">
52
52
  <Filter>Source Files</Filter>
53
53
  </ClCompile>
54
54
  <ClCompile Include="$(FollyDir)\folly\container\detail\F14Table.cpp">
55
55
  <Filter>Source Files\container\detail</Filter>
56
56
  </ClCompile>
57
- <ClCompile Include="$(FollyDir)\folly\json_pointer.cpp">
57
+ <ClCompile Include="$(FollyDir)\folly\json\json_pointer.cpp">
58
58
  <Filter>Source Files</Filter>
59
59
  </ClCompile>
60
- <ClCompile Include="$(FollyDir)\folly\json.cpp">
60
+ <ClCompile Include="$(FollyDir)\folly\json\json.cpp">
61
61
  <Filter>Source Files</Filter>
62
62
  </ClCompile>
63
63
  <ClCompile Include="$(FollyDir)\folly\Format.cpp">
@@ -151,6 +151,9 @@
151
151
  <ClInclude Include="$(FollyDir)\folly\ConcurrentSkipList.h">
152
152
  <Filter>Header Files</Filter>
153
153
  </ClInclude>
154
+ <ClInclude Include="$(FollyDir)\..\fast_float-6.1.4\include\fast_float\fast_float.h">
155
+ <Filter>Header Files</Filter>
156
+ </ClInclude>
154
157
  <ClInclude Include="$(FollyDir)\folly\portability\Constexpr.h">
155
158
  <Filter>Header Files\portability</Filter>
156
159
  </ClInclude>
@@ -183,10 +186,19 @@
183
186
  </ClInclude>
184
187
  <ClInclude Include="$(FollyDir)\folly\dynamic-inl.h">
185
188
  <Filter>Header Files</Filter>
189
+ </ClInclude>
190
+ <ClInclude Include="$(FollyDir)\folly\json\dynamic.h">
191
+ <Filter>Header Files</Filter>
192
+ </ClInclude>
193
+ <ClInclude Include="$(FollyDir)\folly\json\dynamic-inl.h">
194
+ <Filter>Header Files</Filter>
186
195
  </ClInclude>
187
196
  <ClInclude Include="$(FollyDir)\folly\DynamicConverter.h">
188
197
  <Filter>Header Files</Filter>
189
198
  </ClInclude>
199
+ <ClInclude Include="$(FollyDir)\folly\json\DynamicConverter.h">
200
+ <Filter>Header Files</Filter>
201
+ </ClInclude>
190
202
  <ClInclude Include="$(FollyDir)\folly\portability\Event.h">
191
203
  <Filter>Header Files\portability</Filter>
192
204
  </ClInclude>
@@ -268,7 +280,7 @@
268
280
  <ClInclude Include="$(FollyDir)\folly\IPAddressV6.h">
269
281
  <Filter>Header Files</Filter>
270
282
  </ClInclude>
271
- <ClInclude Include="$(FollyDir)\folly\json.h">
283
+ <ClInclude Include="$(FollyDir)\folly\json\json.h">
272
284
  <Filter>Header Files</Filter>
273
285
  </ClInclude>
274
286
  <ClInclude Include="$(FollyDir)\folly\Lazy.h">
@@ -24,6 +24,8 @@
24
24
  #include <type_traits>
25
25
 
26
26
  #include <folly/Portability.h>
27
+ #include <folly/lang/CheckedMath.h>
28
+ #include <folly/portability/Constexpr.h>
27
29
 
28
30
  namespace folly {
29
31
 
@@ -42,25 +44,25 @@ using enable_if_floating_t =
42
44
  ///
43
45
  /// mimic: std::numbers::e_v, C++20
44
46
  template <typename T>
45
- FOLLY_INLINE_VARIABLE constexpr T e_v = detail::enable_if_floating_t<T>(
47
+ inline constexpr T e_v = detail::enable_if_floating_t<T>(
46
48
  2.71828182845904523536028747135266249775724709369995L);
47
49
 
48
50
  /// ln2_v
49
51
  ///
50
52
  /// mimic: std::numbers::ln2_v, C++20
51
53
  template <typename T>
52
- FOLLY_INLINE_VARIABLE constexpr T ln2_v = detail::enable_if_floating_t<T>(
54
+ inline constexpr T ln2_v = detail::enable_if_floating_t<T>(
53
55
  0.69314718055994530941723212145817656807550013436025L);
54
56
 
55
57
  /// e
56
58
  ///
57
59
  /// mimic: std::numbers::e, C++20
58
- FOLLY_INLINE_VARIABLE constexpr double e = e_v<double>;
60
+ inline constexpr double e = e_v<double>;
59
61
 
60
62
  /// ln2
61
63
  ///
62
64
  /// mimic: std::numbers::ln2, C++20
63
- FOLLY_INLINE_VARIABLE constexpr double ln2 = ln2_v<double>;
65
+ inline constexpr double ln2 = ln2_v<double>;
64
66
 
65
67
  } // namespace numbers
66
68
 
@@ -75,11 +77,6 @@ struct floating_point_integral_constant {
75
77
  constexpr operator value_type() const noexcept { return value; }
76
78
  constexpr value_type operator()() const noexcept { return value; }
77
79
  };
78
- #if FOLLY_CPLUSPLUS < 201703L
79
- template <typename T, typename S, S Value>
80
- constexpr typename floating_point_integral_constant<T, S, Value>::value_type
81
- floating_point_integral_constant<T, S, Value>::value;
82
- #endif
83
80
 
84
81
  // ----
85
82
 
@@ -105,7 +102,7 @@ constexpr size_t constexpr_iterated_squares_desc_size_(T const base) {
105
102
  ///
106
103
  /// For use with constexpr_iterated_squares_desc below.
107
104
  template <typename Base>
108
- FOLLY_INLINE_VARIABLE constexpr size_t constexpr_iterated_squares_desc_size_v =
105
+ inline constexpr size_t constexpr_iterated_squares_desc_size_v =
109
106
  detail::constexpr_iterated_squares_desc_size_(Base::value);
110
107
 
111
108
  /// constexpr_iterated_squares_desc
@@ -225,18 +222,13 @@ struct constexpr_iterated_squares_desc {
225
222
  return {power, scale};
226
223
  }
227
224
  };
228
- #if FOLLY_CPLUSPLUS < 201703L
229
- template <typename T, std::size_t Size>
230
- constexpr typename constexpr_iterated_squares_desc<T, Size>::size_type
231
- constexpr_iterated_squares_desc<T, Size>::size;
232
- #endif
233
225
 
234
226
  /// constexpr_iterated_squares_desc_v
235
227
  ///
236
228
  /// An instance of constexpr_iterated_squares_desc of max size with the given
237
229
  /// base.
238
230
  template <typename Base>
239
- FOLLY_INLINE_VARIABLE constexpr auto constexpr_iterated_squares_desc_v =
231
+ inline constexpr auto constexpr_iterated_squares_desc_v =
240
232
  constexpr_iterated_squares_desc<
241
233
  typename Base::value_type,
242
234
  constexpr_iterated_squares_desc_size_v<Base>>{Base::value};
@@ -422,7 +414,7 @@ template <typename T>
422
414
  constexpr T constexpr_ceil(T t, T round) {
423
415
  return round == T(0)
424
416
  ? t
425
- : ((t + (t < T(0) ? T(0) : round - T(1))) / round) * round;
417
+ : ((t + (t <= T(0) ? T(0) : round - T(1))) / round) * round;
426
418
  }
427
419
 
428
420
  /// constexpr_mult
@@ -765,6 +757,22 @@ constexpr T constexpr_add_overflow_clamped(T a, T b) {
765
757
  static_assert(
766
758
  !std::is_integral<T>::value || sizeof(T) <= sizeof(M),
767
759
  "Integral type too large!");
760
+ if (!folly::is_constant_evaluated_or(true)) {
761
+ if constexpr (std::is_integral_v<T>) {
762
+ T ret{};
763
+ if (FOLLY_UNLIKELY(!checked_add(&ret, a, b))) {
764
+ if constexpr (std::is_signed_v<T>) {
765
+ // Could be either overflow or underflow for signed types.
766
+ // Can only be underflow if both inputs are negative.
767
+ if (a < 0 && b < 0) {
768
+ return L::min();
769
+ }
770
+ }
771
+ return L::max();
772
+ }
773
+ return ret;
774
+ }
775
+ }
768
776
  // clang-format off
769
777
  return
770
778
  // don't do anything special for non-integral types.
@@ -780,7 +788,7 @@ constexpr T constexpr_add_overflow_clamped(T a, T b) {
780
788
  // a < 0 && b >= 0, `a + b` will always be in valid range of type T.
781
789
  !(b < 0) ? a + b :
782
790
  // a < 0 && b < 0, keep the result >= MIN.
783
- a + constexpr_max(b, T(L::min() - a));
791
+ a + constexpr_max(b, T(L::min() - a));
784
792
  // clang-format on
785
793
  }
786
794