react-native-windows 0.69.6 → 0.70.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 (296) hide show
  1. package/.flowconfig +5 -1
  2. package/Chakra/ChakraHelpers.cpp +1 -1
  3. package/Chakra/ChakraPlatform.cpp +1 -1
  4. package/Chakra/ChakraValue.cpp +6 -3
  5. package/Chakra/ChakraValue.h +1 -1
  6. package/Directory.Build.props +7 -7
  7. package/Folly/Folly.vcxproj +20 -13
  8. package/Folly/cgmanifest.json +14 -0
  9. package/Libraries/Alert/Alert.js +18 -4
  10. package/Libraries/Alert/Alert.windows.js +4 -0
  11. package/Libraries/Alert/NativeAlertManager.js +1 -0
  12. package/Libraries/Animated/Animated.js +2 -2
  13. package/Libraries/Animated/AnimatedEvent.js +7 -4
  14. package/Libraries/Animated/AnimatedImplementation.js +17 -3
  15. package/Libraries/Animated/AnimatedMock.js +7 -2
  16. package/Libraries/Animated/NativeAnimatedHelper.js +220 -95
  17. package/Libraries/Animated/NativeAnimatedModule.js +3 -0
  18. package/Libraries/Animated/NativeAnimatedTurboModule.js +3 -0
  19. package/Libraries/Animated/animations/SpringAnimation.js +3 -3
  20. package/Libraries/Animated/animations/TimingAnimation.js +3 -3
  21. package/Libraries/Animated/createAnimatedComponent.js +8 -1
  22. package/Libraries/Animated/nodes/AnimatedAddition.js +3 -1
  23. package/Libraries/Animated/nodes/AnimatedColor.js +50 -29
  24. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +3 -1
  25. package/Libraries/Animated/nodes/AnimatedDivision.js +3 -1
  26. package/Libraries/Animated/nodes/AnimatedInterpolation.js +22 -21
  27. package/Libraries/Animated/nodes/AnimatedModulo.js +3 -1
  28. package/Libraries/Animated/nodes/AnimatedMultiplication.js +3 -2
  29. package/Libraries/Animated/nodes/AnimatedProps.js +20 -12
  30. package/Libraries/Animated/nodes/AnimatedStyle.js +19 -16
  31. package/Libraries/Animated/nodes/AnimatedSubtraction.js +3 -1
  32. package/Libraries/Animated/nodes/AnimatedTransform.js +5 -5
  33. package/Libraries/Animated/nodes/AnimatedValue.js +14 -5
  34. package/Libraries/Animated/nodes/AnimatedValueXY.js +28 -1
  35. package/Libraries/Animated/useAnimatedProps.js +1 -0
  36. package/Libraries/AppState/AppState.js +0 -32
  37. package/Libraries/AppTheme/AppTheme.js +14 -8
  38. package/Libraries/AppTheme/AppThemeTypes.d.ts +0 -3
  39. package/Libraries/BatchedBridge/MessageQueue.js +21 -15
  40. package/Libraries/BatchedBridge/NativeModules.js +3 -4
  41. package/Libraries/Blob/FileReader.js +0 -6
  42. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +0 -20
  43. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +0 -20
  44. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  45. package/Libraries/Components/Keyboard/Keyboard.js +0 -11
  46. package/Libraries/Components/Pressable/Pressable.js +2 -0
  47. package/Libraries/Components/Pressable/Pressable.windows.js +2 -0
  48. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -3
  49. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -30
  50. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +4 -30
  51. package/Libraries/Components/ScrollView/ScrollView.js +13 -11
  52. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -3
  53. package/Libraries/Components/StatusBar/StatusBar.js +10 -7
  54. package/Libraries/Components/TextInput/InputAccessoryView.js +14 -13
  55. package/Libraries/Components/TextInput/TextInput.js +12 -2
  56. package/Libraries/Components/TextInput/TextInput.windows.js +12 -2
  57. package/Libraries/Components/Touchable/PooledClass.js +16 -4
  58. package/Libraries/Components/Touchable/Touchable.js +50 -1
  59. package/Libraries/Components/Touchable/Touchable.windows.js +972 -0
  60. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -2
  61. package/Libraries/Components/View/ReactNativeStyleAttributes.js +0 -7
  62. package/Libraries/Components/View/ViewPropTypes.js +3 -8
  63. package/Libraries/Components/View/ViewPropTypes.windows.js +3 -8
  64. package/Libraries/Core/ExceptionsManager.js +2 -0
  65. package/Libraries/Core/ReactNativeVersion.js +2 -2
  66. package/Libraries/Core/Timers/JSTimers.js +2 -2
  67. package/Libraries/Core/polyfillPromise.js +0 -32
  68. package/Libraries/Core/setUpBatchedBridge.js +5 -1
  69. package/Libraries/Core/setUpPerformance.js +1 -1
  70. package/Libraries/EventEmitter/NativeEventEmitter.js +0 -13
  71. package/Libraries/Image/AssetSourceResolver.js +2 -2
  72. package/Libraries/Image/Image.android.js +5 -3
  73. package/Libraries/Image/Image.ios.js +6 -3
  74. package/Libraries/Image/Image.windows.js +6 -3
  75. package/Libraries/Image/ImageSource.js +7 -5
  76. package/Libraries/Inspector/ElementBox.js +2 -2
  77. package/Libraries/Inspector/NetworkOverlay.js +13 -8
  78. package/Libraries/Interaction/PanResponder.js +16 -14
  79. package/Libraries/Linking/Linking.js +0 -11
  80. package/Libraries/Lists/FlatList.js +3 -2
  81. package/Libraries/Lists/SectionList.js +2 -0
  82. package/Libraries/Lists/ViewabilityHelper.js +7 -3
  83. package/Libraries/Lists/VirtualizeUtils.js +33 -20
  84. package/Libraries/Lists/VirtualizedList.js +93 -47
  85. package/Libraries/Lists/VirtualizedListContext.js +1 -0
  86. package/Libraries/Lists/VirtualizedSectionList.js +14 -9
  87. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +19 -18
  88. package/Libraries/Lists/__tests__/VirtualizedList-test.js +10 -6
  89. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  90. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  91. package/Libraries/LogBox/LogBox.js +3 -1
  92. package/Libraries/LogBox/UI/AnsiHighlight.js +2 -0
  93. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +3 -0
  94. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +0 -3
  95. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +8 -3
  96. package/Libraries/NativeComponent/BaseViewConfig.android.js +9 -18
  97. package/Libraries/NativeComponent/BaseViewConfig.ios.js +26 -12
  98. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -12
  99. package/Libraries/Network/XMLHttpRequest.js +9 -11
  100. package/Libraries/Performance/PureComponentDebug.js +1 -0
  101. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +9 -1
  102. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +16 -0
  103. package/Libraries/Pressability/Pressability.js +26 -16
  104. package/Libraries/Pressability/Pressability.windows.js +30 -17
  105. package/Libraries/Promise.js +0 -1
  106. package/Libraries/ReactNative/AppRegistry.js +16 -13
  107. package/Libraries/ReactNative/BridgelessUIManager.js +2 -0
  108. package/Libraries/ReactNative/PaperUIManager.js +9 -9
  109. package/Libraries/ReactNative/PaperUIManager.windows.js +7 -8
  110. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +12 -0
  111. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +68 -0
  112. package/Libraries/ReactNative/getNativeComponentAttributes.js +6 -7
  113. package/Libraries/ReactNative/renderApplication.js +1 -1
  114. package/Libraries/Renderer/implementations/ReactFabric-dev.js +4443 -3615
  115. package/Libraries/Renderer/implementations/ReactFabric-prod.js +1496 -1170
  116. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +1694 -1356
  117. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +4439 -3588
  118. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1583 -1249
  119. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1719 -1372
  120. package/Libraries/Storage/AsyncStorage.js +7 -1
  121. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +8 -0
  122. package/Libraries/StyleSheet/flattenStyle.js +1 -1
  123. package/Libraries/StyleSheet/processTransform.js +2 -0
  124. package/Libraries/StyleSheet/processTransform.windows.js +2 -0
  125. package/Libraries/StyleSheet/splitLayoutProps.js +2 -0
  126. package/Libraries/Text/Text.js +15 -7
  127. package/Libraries/Text/Text.windows.js +14 -7
  128. package/Libraries/Types/CoreEventTypes.js +137 -11
  129. package/Libraries/Types/CoreEventTypes.windows.js +147 -22
  130. package/Libraries/Utilities/Dimensions.js +0 -13
  131. package/Libraries/Utilities/HMRClient.js +3 -3
  132. package/Libraries/Utilities/Platform.ios.js +0 -7
  133. package/Libraries/Utilities/ReactNativeTestTools.js +3 -1
  134. package/Libraries/Utilities/codegenNativeCommands.js +11 -2
  135. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +2 -0
  136. package/Libraries/Utilities/stringifySafe.js +3 -1
  137. package/Libraries/Utilities/truncate.js +1 -1
  138. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +2 -2
  139. package/Libraries/Vibration/Vibration.js +1 -1
  140. package/Libraries/WebSocket/WebSocket.js +1 -0
  141. package/Libraries/vendor/emitter/EventEmitter.js +105 -12
  142. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +73 -117
  143. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +24 -12
  144. package/Microsoft.ReactNative/CoreApp.cpp +303 -0
  145. package/Microsoft.ReactNative/CoreAppPage.cpp +21 -0
  146. package/Microsoft.ReactNative/CoreAppPage.h +15 -0
  147. package/Microsoft.ReactNative/CoreAppPage.idl +12 -0
  148. package/Microsoft.ReactNative/CoreAppPage.xaml +14 -0
  149. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.cpp +1 -2
  150. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.h +1 -1
  151. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -1
  152. package/Microsoft.ReactNative/Fabric/ImageComponentView.cpp +1 -1
  153. package/Microsoft.ReactNative/Fabric/ImageComponentView.h +1 -1
  154. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +1 -1
  155. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.h +1 -1
  156. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +1 -1
  157. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.h +1 -1
  158. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +1 -1
  159. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +1 -1
  160. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +1 -1
  161. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +1 -1
  162. package/Microsoft.ReactNative/Fabric/TextComponentView.cpp +1 -1
  163. package/Microsoft.ReactNative/Fabric/TextComponentView.h +1 -1
  164. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +1 -1
  165. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +1 -1
  166. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +1 -1
  167. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -1
  168. package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -0
  169. package/Microsoft.ReactNative/IReactDispatcher.cpp +18 -0
  170. package/Microsoft.ReactNative/IReactDispatcher.h +18 -3
  171. package/Microsoft.ReactNative/IReactDispatcher.idl +15 -0
  172. package/Microsoft.ReactNative/IReactPropertyBag.cpp +9 -0
  173. package/Microsoft.ReactNative/IReactPropertyBag.h +3 -0
  174. package/Microsoft.ReactNative/IReactPropertyBag.idl +3 -0
  175. package/Microsoft.ReactNative/JsiApi.cpp +41 -1
  176. package/Microsoft.ReactNative/JsiApi.h +3 -0
  177. package/Microsoft.ReactNative/JsiApi.idl +19 -1
  178. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +18 -2
  179. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +7 -7
  180. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
  181. package/Microsoft.ReactNative/Modules/AlertModule.cpp +15 -12
  182. package/Microsoft.ReactNative/Modules/AlertModule.h +1 -1
  183. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +45 -9
  184. package/Microsoft.ReactNative/Modules/AppStateModule.h +9 -3
  185. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.h +1 -1
  186. package/Microsoft.ReactNative/Modules/ClipboardModule.h +1 -1
  187. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -1
  188. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
  189. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
  190. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -1
  191. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +1 -1
  192. package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +1 -1
  193. package/Microsoft.ReactNative/Modules/LogBoxModule.h +1 -1
  194. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +66 -39
  195. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +41 -11
  196. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +1 -1
  197. package/Microsoft.ReactNative/QuirkSettings.cpp +22 -0
  198. package/Microsoft.ReactNative/QuirkSettings.h +10 -0
  199. package/Microsoft.ReactNative/QuirkSettings.idl +7 -0
  200. package/Microsoft.ReactNative/ReactApplication.cpp +44 -0
  201. package/Microsoft.ReactNative/ReactApplication.h +40 -5
  202. package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +5 -2
  203. package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.h +1 -0
  204. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +23 -4
  205. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  206. package/Microsoft.ReactNative/ReactPointerEventArgs.cpp +12 -2
  207. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -0
  208. package/Microsoft.ReactNative/Utils/Helpers.cpp +1 -1
  209. package/Microsoft.ReactNative/Utils/Helpers.h +1 -1
  210. package/Microsoft.ReactNative/Utils/PropertyUtils.h +1 -1
  211. package/Microsoft.ReactNative/Utils/TransformableText.h +1 -1
  212. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +0 -1
  213. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +9 -7
  214. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +3 -3
  215. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +13 -1
  216. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +1 -1
  217. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +63 -13
  218. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  219. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +5 -6
  220. package/Microsoft.ReactNative/Views/Image/ReactImage.h +4 -4
  221. package/Microsoft.ReactNative/Views/Text/TextTransformParentVisitor.h +1 -1
  222. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +21 -2
  223. package/Microsoft.ReactNative/Views/TextViewManager.cpp +6 -3
  224. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
  225. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +7 -1
  226. package/Microsoft.ReactNative/Views/ViewPanel.cpp +4 -0
  227. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +8 -3
  228. package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +2 -0
  229. package/Microsoft.ReactNative/microsoft.reactnative.def +4 -1
  230. package/Microsoft.ReactNative.Cxx/AppModelHelpers.h +17 -0
  231. package/Microsoft.ReactNative.Cxx/CoreApp.h +60 -0
  232. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +65 -0
  233. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +13 -0
  234. package/Microsoft.ReactNative.Cxx/JSI/JsiValueHelpers.cpp +53 -0
  235. package/Microsoft.ReactNative.Cxx/JSI/JsiValueHelpers.h +32 -0
  236. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +14 -2
  237. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +3 -0
  238. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +7 -0
  239. package/Microsoft.ReactNative.Managed/packages.lock.json +1 -24
  240. package/Mso/dispatchQueue/dispatchQueue.h +12 -4
  241. package/Mso/src/dispatchQueue/looperScheduler.cpp +36 -9
  242. package/Mso/src/dispatchQueue/queueService.cpp +2 -2
  243. package/Mso/src/dispatchQueue/queueService.h +2 -2
  244. package/Mso/src/memoryApi/memoryApi.cpp +3 -0
  245. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  246. package/PropertySheets/JSEngine.props +1 -1
  247. package/PropertySheets/Release.props +6 -0
  248. package/ReactCommon/ReactCommon.vcxproj +11 -21
  249. package/ReactCommon/ReactCommon.vcxproj.filters +64 -46
  250. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +145 -0
  251. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +344 -0
  252. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/BaseTextProps.cpp +313 -0
  253. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +455 -0
  254. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +216 -0
  255. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/PropsMacros.h +91 -0
  256. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +100 -0
  257. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/CompactValue.h +3 -1
  258. package/Scripts/Microsoft.ReactNative.nuspec +6 -0
  259. package/Scripts/Microsoft.ReactNative.targets +7 -0
  260. package/Shared/DevSettings.h +4 -0
  261. package/Shared/JSI/ChakraRuntime.cpp +11 -2
  262. package/Shared/JSI/ChakraRuntime.h +2 -0
  263. package/Shared/Modules/BlobModule.cpp +4 -4
  264. package/Shared/Modules/BlobModule.h +1 -1
  265. package/Shared/Modules/FileReaderModule.cpp +3 -2
  266. package/Shared/Modules/IBlobPersistor.h +1 -1
  267. package/Shared/Networking/IHttpResource.h +1 -0
  268. package/Shared/Networking/OriginPolicyHttpFilter.cpp +16 -10
  269. package/Shared/Networking/WinRTHttpResource.cpp +34 -2
  270. package/Shared/OInstance.cpp +14 -6
  271. package/Shared/Threading/BatchingQueueThread.cpp +23 -12
  272. package/Shared/Utils.cpp +2 -5
  273. package/codegen/NativeAlertManagerSpec.g.h +2 -0
  274. package/codegen/NativeAnimatedModuleSpec.g.h +6 -0
  275. package/codegen/NativeAnimatedTurboModuleSpec.g.h +6 -0
  276. package/codegen/react/components/rnwcore/Props.cpp +2 -2
  277. package/codegen/react/components/rnwcore/Props.h +1 -1
  278. package/fmt/cgmanifest.json +14 -0
  279. package/fmt/fmt.vcxproj +25 -11
  280. package/jest/assetFileTransformer.js +3 -2
  281. package/jest/setup.js +4 -0
  282. package/package.json +27 -28
  283. package/rntypes/index.d.ts +0 -1
  284. package/template/cs-app-WinAppSDK/proj/{NuGet.Config → NuGet_Config} +0 -0
  285. package/template/metro.devMode.config.js +49 -2
  286. package/template/shared-app/proj/{NuGet.Config → NuGet_Config} +0 -0
  287. package/template/shared-lib/proj/{NuGet.Config → NuGet_Config} +0 -0
  288. package/Libraries/vendor/emitter/EventSubscription.js +0 -19
  289. package/Libraries/vendor/emitter/_EmitterSubscription.js +0 -62
  290. package/Libraries/vendor/emitter/_EventEmitter.js +0 -184
  291. package/Libraries/vendor/emitter/_EventSubscription.js +0 -45
  292. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +0 -108
  293. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +0 -87
  294. package/Scripts/copyRNLibraries.js +0 -99
  295. package/jest/preprocessor.js +0 -40
  296. package/jest/preprocessor_DO_NOT_USE.js +0 -122
@@ -19,6 +19,7 @@
19
19
  #include <INativeUIManager.h>
20
20
  #include <IReactInstance.h>
21
21
 
22
+ #include <cxxreact/SystraceSection.h>
22
23
  #include <inspectable.h>
23
24
  #include <unicode.h>
24
25
  #include <winrt/Windows.System.h>
@@ -30,6 +31,8 @@
30
31
  #include <winrt/Windows.Foundation.h>
31
32
  #endif
32
33
 
34
+ using namespace facebook::react;
35
+
33
36
  namespace Microsoft::ReactNative {
34
37
 
35
38
  // ViewShadowNode
@@ -528,9 +531,11 @@ void ViewViewManager::TryUpdateView(
528
531
  //
529
532
  // 2. Transfer needed properties from old to new view
530
533
  //
531
-
532
- // Transfer properties from old XamlView to the new one
533
- TransferProperties(oldXamlView, newXamlView);
534
+ {
535
+ SystraceSection s("ViewViewManager::TransferProperties");
536
+ // Transfer properties from old XamlView to the new one
537
+ TransferProperties(oldXamlView, newXamlView);
538
+ }
534
539
 
535
540
  // Since we transferred properties to the new view we need to make the call to
536
541
  // finalize
@@ -56,6 +56,8 @@ namespace Microsoft.ReactNative
56
56
  CountStates
57
57
  };
58
58
 
59
+ // When adding a new numeric value, make sure to increment 'numericValuesCount' in FrameworkElementViewManager
60
+ // updateProperties depends on Min, Max, Now values being 0-2 for indexing. Be careful not to break that logic when adding new values.
59
61
  enum AccessibilityValue
60
62
  {
61
63
  Min = 0,
@@ -1,3 +1,6 @@
1
- EXPORTS
1
+ EXPORTS
2
2
  DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
3
3
  DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE
4
+
5
+ RNCoreAppStart
6
+ RNCoreAppStartFromConfigJson
@@ -0,0 +1,17 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ #pragma once
4
+
5
+ // AppModel helpers
6
+
7
+ #include <appmodel.h>
8
+
9
+ namespace Microsoft::ReactNative {
10
+
11
+ inline bool HasPackageIdentity() noexcept {
12
+ uint32_t length{0};
13
+ const bool isPackagedApp = GetCurrentPackageFullName(&length, nullptr) != APPMODEL_ERROR_NO_PACKAGE;
14
+ return isPackagedApp;
15
+ }
16
+
17
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,60 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ #pragma once
4
+
5
+ struct RNCoreApp {
6
+ /// default value: L"index.windows"
7
+ wchar_t const *jsBundleFile;
8
+ /// default value: L"ms-appx:///Bundle/"
9
+ wchar_t const *bundleRootPath;
10
+ /// Provide the name of your React component here
11
+ wchar_t const *componentName;
12
+
13
+ /// default value: true
14
+ bool useWebDebugger;
15
+ /// default value: true
16
+ bool useFastRefresh;
17
+ /// default value: true
18
+ bool useDeveloperSupport;
19
+ /// default value: false
20
+ bool useDirectDebugger;
21
+ /// default value: true
22
+ bool requestInlineSourceMap;
23
+
24
+ /// default value: false
25
+ bool enableDefaultCrashHandler;
26
+ /// default value: 9229
27
+ unsigned short debuggerPort;
28
+ /// default value: 8081
29
+ unsigned short sourceBundlePort;
30
+ /// default value: L"localhost"
31
+ wchar_t const *sourceBundleHost;
32
+
33
+ /// default value: "chakra", possible values: "chakra", "hermes"
34
+ wchar_t const *jsEngine;
35
+
36
+ /// default value: nullptr
37
+ wchar_t const *viewName;
38
+
39
+ void *resourcesAbi;
40
+ /// Provides the launch arguments back to the CoreApp callback
41
+ wchar_t const *args;
42
+ /// Allocate with CoTaskMemAlloc, will be freed by the framework
43
+ void **packageProvidersAbi;
44
+ unsigned char packageProvidersAbiCount;
45
+ void *propertiesAbi;
46
+ };
47
+
48
+ #ifdef __cplusplus
49
+ #define NORETURN [[noreturn]]
50
+ #else
51
+ #define NORETURN _Noreturn
52
+ #endif
53
+
54
+ typedef void(__cdecl *RNCoreAppCallback)(RNCoreApp *, void *);
55
+
56
+ extern "C" NORETURN void __cdecl RNCoreAppStart(RNCoreAppCallback launched, void *data);
57
+ extern "C" NORETURN void __cdecl RNCoreAppStartFromConfigJson(
58
+ wchar_t const *configJson,
59
+ RNCoreAppCallback launched,
60
+ void *data);
@@ -263,6 +263,13 @@ Runtime::PointerValue *JsiAbiRuntime::cloneSymbol(const Runtime::PointerValue *p
263
263
  throw;
264
264
  }
265
265
 
266
+ Runtime::PointerValue *JsiAbiRuntime::cloneBigInt(const Runtime::PointerValue *pv) try {
267
+ return new BigIntPointerValue{make_weak(m_runtime), m_runtime.CloneBigInt(AsJsiBigIntRef(pv))};
268
+ } catch (hresult_error const &) {
269
+ RethrowJsiError();
270
+ throw;
271
+ }
272
+
266
273
  Runtime::PointerValue *JsiAbiRuntime::cloneString(const Runtime::PointerValue *pv) try {
267
274
  return new StringPointerValue{make_weak(m_runtime), m_runtime.CloneString(AsJsiStringRef(pv))};
268
275
  } catch (hresult_error const &) {
@@ -623,6 +630,13 @@ bool JsiAbiRuntime::strictEquals(const Symbol &a, const Symbol &b) const try {
623
630
  throw;
624
631
  }
625
632
 
633
+ bool JsiAbiRuntime::strictEquals(const BigInt &a, const BigInt &b) const try {
634
+ return m_runtime.BigIntStrictEquals(AsJsiBigIntRef(a), AsJsiBigIntRef(b));
635
+ } catch (hresult_error const &) {
636
+ RethrowJsiError();
637
+ throw;
638
+ }
639
+
626
640
  bool JsiAbiRuntime::strictEquals(const String &a, const String &b) const try {
627
641
  return m_runtime.StringStrictEquals(AsJsiStringRef(a), AsJsiStringRef(b));
628
642
  } catch (hresult_error const &) {
@@ -686,6 +700,10 @@ void JsiAbiRuntime::SetJsiError(std::exception const &nativeException) noexcept
686
700
  return SymbolPointerValue::GetData(pv);
687
701
  }
688
702
 
703
+ /*static*/ JsiBigIntRef const &JsiAbiRuntime::AsJsiBigIntRef(PointerValue const *pv) noexcept {
704
+ return BigIntPointerValue::GetData(pv);
705
+ }
706
+
689
707
  /*static*/ JsiStringRef const &JsiAbiRuntime::AsJsiStringRef(PointerValue const *pv) noexcept {
690
708
  return StringPointerValue::GetData(pv);
691
709
  }
@@ -702,6 +720,10 @@ void JsiAbiRuntime::SetJsiError(std::exception const &nativeException) noexcept
702
720
  return SymbolPointerValue::GetData(getPointerValue(symbol));
703
721
  }
704
722
 
723
+ /*static*/ JsiBigIntRef const &JsiAbiRuntime::AsJsiBigIntRef(BigInt const &bigInt) noexcept {
724
+ return BigIntPointerValue::GetData(getPointerValue(bigInt));
725
+ }
726
+
705
727
  /*static*/ JsiStringRef const &JsiAbiRuntime::AsJsiStringRef(String const &str) noexcept {
706
728
  return StringPointerValue::GetData(getPointerValue(str));
707
729
  }
@@ -722,9 +744,12 @@ void JsiAbiRuntime::SetJsiError(std::exception const &nativeException) noexcept
722
744
  // We assume that the JsiValueRef and Value have the same layout.
723
745
  auto valuePtr = reinterpret_cast<JsiValueRef const *>(&value);
724
746
  // Fix up the data part
747
+ // TODO: JSIVALUECONVERSION - Need to fix JSI kind mapping
725
748
  switch (valuePtr->Kind) {
726
749
  case JsiValueKind::Symbol:
727
750
  return {valuePtr->Kind, SymbolPointerValue::GetData(getPointerValue(value)).Data};
751
+ case JsiValueKind::BigInt:
752
+ return {valuePtr->Kind, BigIntPointerValue::GetData(getPointerValue(value)).Data};
728
753
  case JsiValueKind::String:
729
754
  return {valuePtr->Kind, StringPointerValue::GetData(getPointerValue(value)).Data};
730
755
  case JsiValueKind::Object:
@@ -747,9 +772,12 @@ void JsiAbiRuntime::SetJsiError(std::exception const &nativeException) noexcept
747
772
  // data alive. Thus, we must detach the value.
748
773
  // We assume that the JsiValueRef and Value have the same layout.
749
774
  auto valuePtr = reinterpret_cast<JsiValueRef *>(&value);
775
+ // TODO: JSIVALUECONVERSION - Need to fix JSI kind mapping
750
776
  switch (valuePtr->Kind) {
751
777
  case JsiValueKind::Symbol:
752
778
  return {valuePtr->Kind, SymbolPointerValue::Detach(getPointerValue(value)).Data};
779
+ case JsiValueKind::BigInt:
780
+ return {valuePtr->Kind, BigIntPointerValue::Detach(getPointerValue(value)).Data};
753
781
  case JsiValueKind::String:
754
782
  return {valuePtr->Kind, StringPointerValue::Detach(getPointerValue(value)).Data};
755
783
  case JsiValueKind::Object:
@@ -763,6 +791,10 @@ Runtime::PointerValue *JsiAbiRuntime::MakeSymbolValue(JsiSymbolRef &&symbol) con
763
791
  return new SymbolPointerValue{make_weak(m_runtime), std::move(symbol)};
764
792
  }
765
793
 
794
+ Runtime::PointerValue *JsiAbiRuntime::MakeBigIntValue(JsiBigIntRef &&bigInt) const noexcept {
795
+ return new BigIntPointerValue{make_weak(m_runtime), std::move(bigInt)};
796
+ }
797
+
766
798
  Runtime::PointerValue *JsiAbiRuntime::MakeStringValue(JsiStringRef &&str) const noexcept {
767
799
  return new StringPointerValue{make_weak(m_runtime), std::move(str)};
768
800
  }
@@ -779,6 +811,10 @@ Symbol JsiAbiRuntime::MakeSymbol(JsiSymbolRef &&symbol) const noexcept {
779
811
  return make<Symbol>(MakeSymbolValue(std::move(symbol)));
780
812
  }
781
813
 
814
+ BigInt JsiAbiRuntime::MakeBigInt(JsiBigIntRef &&bigInt) const noexcept {
815
+ return make<BigInt>(MakeBigIntValue(std::move(bigInt)));
816
+ }
817
+
782
818
  String JsiAbiRuntime::MakeString(JsiStringRef &&str) const noexcept {
783
819
  return make<String>(MakeStringValue(std::move(str)));
784
820
  }
@@ -815,6 +851,8 @@ Value JsiAbiRuntime::MakeValue(JsiValueRef &&value) const noexcept {
815
851
  return Value(*reinterpret_cast<double *>(&value.Data));
816
852
  case JsiValueKind::Symbol:
817
853
  return Value(MakeSymbol(JsiSymbolRef{value.Data}));
854
+ case JsiValueKind::BigInt:
855
+ return Value(MakeBigInt(JsiBigIntRef{value.Data}));
818
856
  case JsiValueKind::String:
819
857
  return Value(MakeString(JsiStringRef{value.Data}));
820
858
  case JsiValueKind::Object:
@@ -861,6 +899,32 @@ void JsiAbiRuntime::SymbolPointerValue::invalidate() {
861
899
  return {std::exchange(static_cast<DataPointerValue *>(const_cast<PointerValue *>(pv))->m_data, 0)};
862
900
  }
863
901
 
902
+ //===========================================================================
903
+ // JsiAbiRuntime::BigIntPointerValue implementation
904
+ //===========================================================================
905
+
906
+ JsiAbiRuntime::BigIntPointerValue::BigIntPointerValue(
907
+ winrt::weak_ref<JsiRuntime> &&weakRuntime,
908
+ JsiBigIntRef &&bigInt) noexcept
909
+ : DataPointerValue{std::move(weakRuntime), std::exchange(bigInt.Data, 0)} {}
910
+
911
+ void JsiAbiRuntime::BigIntPointerValue::invalidate() {
912
+ if (m_data) {
913
+ if (auto runtime = m_weakRuntime.get()) {
914
+ m_weakRuntime = nullptr;
915
+ runtime.ReleaseBigInt({m_data});
916
+ }
917
+ }
918
+ }
919
+
920
+ /*static*/ JsiBigIntRef const &JsiAbiRuntime::BigIntPointerValue::GetData(PointerValue const *pv) noexcept {
921
+ return *reinterpret_cast<JsiBigIntRef const *>(&static_cast<DataPointerValue const *>(pv)->m_data);
922
+ }
923
+
924
+ /*static*/ JsiBigIntRef JsiAbiRuntime::BigIntPointerValue::Detach(PointerValue const *pv) noexcept {
925
+ return {std::exchange(static_cast<DataPointerValue *>(const_cast<PointerValue *>(pv))->m_data, 0)};
926
+ }
927
+
864
928
  //===========================================================================
865
929
  // JsiAbiRuntime::StringPointerValue implementation
866
930
  //===========================================================================
@@ -964,6 +1028,7 @@ JsiAbiRuntime::ValueRef::InitValueRef(JsiValueRef const &data, Value *value, Sto
964
1028
  // We assume that the JsiValueRef and Value have the same layout.
965
1029
  auto valueAsDataPtr = reinterpret_cast<JsiValueRef *>(value);
966
1030
  valueAsDataPtr->Kind = data.Kind;
1031
+ // TODO: JSIVALUECONVERSION - Need to fix JSI kind mapping
967
1032
  switch (valueAsDataPtr->Kind) {
968
1033
  case JsiValueKind::Symbol:
969
1034
  case JsiValueKind::String:
@@ -92,6 +92,7 @@ struct JsiAbiRuntime : facebook::jsi::Runtime {
92
92
 
93
93
  protected:
94
94
  PointerValue *cloneSymbol(const PointerValue *pv) override;
95
+ PointerValue *cloneBigInt(const PointerValue *pv) override;
95
96
  PointerValue *cloneString(const PointerValue *pv) override;
96
97
  PointerValue *cloneObject(const PointerValue *pv) override;
97
98
  PointerValue *clonePropNameID(const PointerValue *pv) override;
@@ -161,6 +162,7 @@ struct JsiAbiRuntime : facebook::jsi::Runtime {
161
162
  void popScope(ScopeState *scope) override;
162
163
 
163
164
  bool strictEquals(const facebook::jsi::Symbol &a, const facebook::jsi::Symbol &b) const override;
165
+ bool strictEquals(const facebook::jsi::BigInt &a, const facebook::jsi::BigInt &b) const override;
164
166
  bool strictEquals(const facebook::jsi::String &a, const facebook::jsi::String &b) const override;
165
167
  bool strictEquals(const facebook::jsi::Object &a, const facebook::jsi::Object &b) const override;
166
168
  bool instanceOf(const facebook::jsi::Object &o, const facebook::jsi::Function &f) override;
@@ -172,11 +174,13 @@ struct JsiAbiRuntime : facebook::jsi::Runtime {
172
174
 
173
175
  private: // Convert JSI to ABI-safe JSI values
174
176
  static JsiSymbolRef const &AsJsiSymbolRef(PointerValue const *pv) noexcept;
177
+ static JsiBigIntRef const &AsJsiBigIntRef(PointerValue const *pv) noexcept;
175
178
  static JsiStringRef const &AsJsiStringRef(PointerValue const *pv) noexcept;
176
179
  static JsiObjectRef const &AsJsiObjectRef(PointerValue const *pv) noexcept;
177
180
  static JsiPropertyIdRef const &AsJsiPropertyIdRef(PointerValue const *pv) noexcept;
178
181
 
179
182
  static JsiSymbolRef const &AsJsiSymbolRef(facebook::jsi::Symbol const &symbol) noexcept;
183
+ static JsiBigIntRef const &AsJsiBigIntRef(facebook::jsi::BigInt const &bigInt) noexcept;
180
184
  static JsiStringRef const &AsJsiStringRef(facebook::jsi::String const &str) noexcept;
181
185
  static JsiObjectRef const &AsJsiObjectRef(facebook::jsi::Object const &obj) noexcept;
182
186
  static JsiPropertyIdRef const &AsJsiPropertyIdRef(facebook::jsi::PropNameID const &propertyId) noexcept;
@@ -188,11 +192,13 @@ struct JsiAbiRuntime : facebook::jsi::Runtime {
188
192
 
189
193
  private: // Convert ABI-safe JSI to JSI values
190
194
  PointerValue *MakeSymbolValue(JsiSymbolRef &&symbol) const noexcept;
195
+ PointerValue *MakeBigIntValue(JsiBigIntRef &&bigInt) const noexcept;
191
196
  PointerValue *MakeStringValue(JsiStringRef &&str) const noexcept;
192
197
  PointerValue *MakeObjectValue(JsiObjectRef &&obj) const noexcept;
193
198
  PointerValue *MakePropNameIDValue(JsiPropertyIdRef &&propertyId) const noexcept;
194
199
 
195
200
  facebook::jsi::Symbol MakeSymbol(JsiSymbolRef &&symbol) const noexcept;
201
+ facebook::jsi::BigInt MakeBigInt(JsiBigIntRef &&bigInt) const noexcept;
196
202
  facebook::jsi::String MakeString(JsiStringRef &&str) const noexcept;
197
203
  facebook::jsi::Object MakeObject(JsiObjectRef &&obj) const noexcept;
198
204
  facebook::jsi::PropNameID MakePropNameID(JsiPropertyIdRef &&propertyId) const noexcept;
@@ -225,6 +231,13 @@ struct JsiAbiRuntime : facebook::jsi::Runtime {
225
231
  static JsiSymbolRef Detach(PointerValue const *pv) noexcept;
226
232
  };
227
233
 
234
+ struct BigIntPointerValue : DataPointerValue {
235
+ BigIntPointerValue(winrt::weak_ref<JsiRuntime> &&weakRuntime, JsiBigIntRef &&bigInt) noexcept;
236
+ void invalidate() override;
237
+ static JsiBigIntRef const &GetData(PointerValue const *pv) noexcept;
238
+ static JsiBigIntRef Detach(PointerValue const *pv) noexcept;
239
+ };
240
+
228
241
  struct StringPointerValue : DataPointerValue {
229
242
  StringPointerValue(winrt::weak_ref<JsiRuntime> &&weakRuntime, JsiStringRef &&str) noexcept;
230
243
  void invalidate() override;
@@ -0,0 +1,53 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #include "pch.h"
5
+ #include "JsiValueHelpers.h"
6
+
7
+ namespace winrt::Microsoft::ReactNative {
8
+
9
+ /*static*/ FacebookJsiValueKind JsiValueKindHelper::ToValueKind(JsiValueKind const &kind) noexcept {
10
+ switch (kind) {
11
+ case JsiValueKind::Undefined:
12
+ return FacebookJsiValueKind::UndefinedKind;
13
+ case JsiValueKind::Null:
14
+ return FacebookJsiValueKind::NullKind;
15
+ case JsiValueKind::Boolean:
16
+ return FacebookJsiValueKind::BooleanKind;
17
+ case JsiValueKind::Number:
18
+ return FacebookJsiValueKind::NumberKind;
19
+ case JsiValueKind::Symbol:
20
+ return FacebookJsiValueKind::SymbolKind;
21
+ case JsiValueKind::String:
22
+ return FacebookJsiValueKind::StringKind;
23
+ case JsiValueKind::Object:
24
+ return FacebookJsiValueKind::ObjectKind;
25
+ case JsiValueKind::BigInt:
26
+ return FacebookJsiValueKind::BigIntKind;
27
+ }
28
+ return FacebookJsiValueKind::UndefinedKind;
29
+ }
30
+
31
+ /*static*/ JsiValueKind JsiValueKindHelper::ToJsiValueKind(FacebookJsiValueKind const &kind) noexcept {
32
+ switch (kind) {
33
+ case FacebookJsiValueKind::UndefinedKind:
34
+ return JsiValueKind::Undefined;
35
+ case FacebookJsiValueKind::NullKind:
36
+ return JsiValueKind::Null;
37
+ case FacebookJsiValueKind::BooleanKind:
38
+ return JsiValueKind::Boolean;
39
+ case FacebookJsiValueKind::NumberKind:
40
+ return JsiValueKind::Number;
41
+ case FacebookJsiValueKind::SymbolKind:
42
+ return JsiValueKind::Symbol;
43
+ case FacebookJsiValueKind::BigIntKind:
44
+ return JsiValueKind::BigInt;
45
+ case FacebookJsiValueKind::StringKind:
46
+ return JsiValueKind::String;
47
+ case FacebookJsiValueKind::ObjectKind:
48
+ return JsiValueKind::Object;
49
+ }
50
+ return JsiValueKind::Undefined;
51
+ }
52
+
53
+ } // namespace winrt::Microsoft::ReactNative
@@ -0,0 +1,32 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+ #ifndef MICROSOFT_REACTNATIVE_JSIVALUEHELPERS
6
+ #define MICROSOFT_REACTNATIVE_JSIVALUEHELPERS
7
+
8
+ #include "winrt/Microsoft.ReactNative.h"
9
+
10
+ namespace winrt::Microsoft::ReactNative {
11
+
12
+ // CODESYNC: ReactCommon\jsi\jsi\jsi.h
13
+ enum FacebookJsiValueKind {
14
+ UndefinedKind,
15
+ NullKind,
16
+ BooleanKind,
17
+ NumberKind,
18
+ SymbolKind,
19
+ BigIntKind,
20
+ StringKind,
21
+ ObjectKind,
22
+ PointerKind = SymbolKind,
23
+ };
24
+
25
+ struct JsiValueKindHelper final {
26
+ static FacebookJsiValueKind ToValueKind(JsiValueKind const &kind) noexcept;
27
+ static JsiValueKind ToJsiValueKind(FacebookJsiValueKind const &kind) noexcept;
28
+ };
29
+
30
+ } // namespace winrt::Microsoft::ReactNative
31
+
32
+ #endif // MICROSOFT_REACTNATIVE_JSIVALUEHELPERS
@@ -130,6 +130,7 @@ struct NapiJsiRuntime : facebook::jsi::Runtime {
130
130
 
131
131
  protected:
132
132
  PointerValue *cloneSymbol(const PointerValue *pointerValue) override;
133
+ PointerValue *cloneBigInt(const PointerValue *pointerValue) override;
133
134
  PointerValue *cloneString(const PointerValue *pointerValue) override;
134
135
  PointerValue *cloneObject(const PointerValue *pointerValue) override;
135
136
  PointerValue *clonePropNameID(const PointerValue *pointerValue) override;
@@ -205,6 +206,7 @@ struct NapiJsiRuntime : facebook::jsi::Runtime {
205
206
  void popScope(ScopeState *) override;
206
207
 
207
208
  bool strictEquals(const facebook::jsi::Symbol &a, const facebook::jsi::Symbol &b) const override;
209
+ bool strictEquals(const facebook::jsi::BigInt &a, const facebook::jsi::BigInt &b) const override;
208
210
  bool strictEquals(const facebook::jsi::String &a, const facebook::jsi::String &b) const override;
209
211
  bool strictEquals(const facebook::jsi::Object &a, const facebook::jsi::Object &b) const override;
210
212
 
@@ -672,6 +674,12 @@ Runtime::PointerValue *NapiJsiRuntime::cloneSymbol(const Runtime::PointerValue *
672
674
  return CloneNapiPointerValue(pointerValue);
673
675
  }
674
676
 
677
+ Runtime::PointerValue *NapiJsiRuntime::cloneBigInt(const Runtime::PointerValue *pointerValue) {
678
+ EnvScope scope{m_env};
679
+
680
+ return CloneNapiPointerValue(pointerValue);
681
+ }
682
+
675
683
  Runtime::PointerValue *NapiJsiRuntime::cloneString(const Runtime::PointerValue *pointerValue) {
676
684
  EnvScope scope{m_env};
677
685
 
@@ -715,7 +723,6 @@ PropNameID NapiJsiRuntime::createPropNameIDFromString(const String &str) {
715
723
  PropNameID NapiJsiRuntime::createPropNameIDFromSymbol(const Symbol &sym) {
716
724
  EnvScope envScope{m_env};
717
725
  napi_ext_ref propSym = GetPropertyIdFromSymbol(GetNapiValue(sym));
718
-
719
726
  return MakePointer<PropNameID>(propSym);
720
727
  }
721
728
 
@@ -1005,6 +1012,12 @@ bool NapiJsiRuntime::strictEquals(const Symbol &a, const Symbol &b) const {
1005
1012
  return StrictEquals(GetNapiValue(a), GetNapiValue(b));
1006
1013
  }
1007
1014
 
1015
+ bool NapiJsiRuntime::strictEquals(const BigInt &a, const BigInt &b) const {
1016
+ EnvScope scope{m_env};
1017
+
1018
+ return StrictEquals(GetNapiValue(a), GetNapiValue(b));
1019
+ }
1020
+
1008
1021
  bool NapiJsiRuntime::strictEquals(const String &a, const String &b) const {
1009
1022
  EnvScope scope{m_env};
1010
1023
 
@@ -1618,7 +1631,6 @@ napi_ext_ref NapiJsiRuntime::GetPropertyIdFromName(napi_value str) const {
1618
1631
  napi_ext_ref NapiJsiRuntime::GetPropertyIdFromSymbol(napi_value sym) const {
1619
1632
  napi_ext_ref ref{};
1620
1633
  CHECK_NAPI(napi_ext_create_reference(m_env, sym, &ref));
1621
-
1622
1634
  return ref;
1623
1635
  }
1624
1636
 
@@ -37,6 +37,7 @@
37
37
  <ClInclude Include="$(JSI_SourcePath)\jsi\instrumentation.h" />
38
38
  <ClInclude Include="$(JSI_SourcePath)\jsi\jsi-inl.h" />
39
39
  <ClInclude Include="$(JSI_SourcePath)\jsi\jsi.h" />
40
+ <ClInclude Include="$(MSBuildThisFileDirectory)CoreApp.h" />
40
41
  <ClInclude Include="$(MSBuildThisFileDirectory)DesktopWindowBridge.h" />
41
42
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.h" />
42
43
  <ClInclude Include="$(MSBuildThisFileDirectory)TurboModuleProvider.h" />
@@ -50,6 +51,7 @@
50
51
  <ClInclude Include="$(MSBuildThisFileDirectory)Crash.h" />
51
52
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\JsiAbiApi.h" />
52
53
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\JsiApiContext.h" />
54
+ <ClInclude Include="$(MSBuildThisFileDirectory)JSI\JsiValueHelpers.h" />
53
55
  <ClInclude Include="$(MSBuildThisFileDirectory)ReactHandleHelper.h" />
54
56
  <ClInclude Include="$(MSBuildThisFileDirectory)JSValue.h" />
55
57
  <ClInclude Include="$(MSBuildThisFileDirectory)JSValueReader.h" />
@@ -91,6 +93,7 @@
91
93
  <ItemGroup Condition="'$(BuildMSRNCxx)' != 'false'">
92
94
  <ClCompile Include="$(MSBuildThisFileDirectory)JSI\JsiAbiApi.cpp" />
93
95
  <ClCompile Include="$(MSBuildThisFileDirectory)JSI\JsiApiContext.cpp" />
96
+ <ClCompile Include="$(MSBuildThisFileDirectory)JSI\JsiValueHelpers.cpp" />
94
97
  <ClCompile Include="$(MSBuildThisFileDirectory)JSValue.cpp" />
95
98
  <ClCompile Include="$(MSBuildThisFileDirectory)JSValueTreeReader.cpp" />
96
99
  <ClCompile Include="$(MSBuildThisFileDirectory)JSValueTreeWriter.cpp" />
@@ -12,6 +12,9 @@
12
12
  <ClCompile Include="$(MSBuildThisFileDirectory)JSI\JsiAbiApi.cpp">
13
13
  <Filter>JSI</Filter>
14
14
  </ClCompile>
15
+ <ClCompile Include="$(MSBuildThisFileDirectory)JSI\JsiValueHelpers.cpp">
16
+ <Filter>JSI</Filter>
17
+ </ClCompile>
15
18
  <ClCompile Include="$(MSBuildThisFileDirectory)TurboModuleProvider.cpp">
16
19
  <Filter>TurboModule</Filter>
17
20
  </ClCompile>
@@ -110,6 +113,9 @@
110
113
  <ClInclude Include="$(MSBuildThisFileDirectory)JSI\JsiAbiApi.h">
111
114
  <Filter>JSI</Filter>
112
115
  </ClInclude>
116
+ <ClInclude Include="$(MSBuildThisFileDirectory)JSI\JsiValueHelpers.h">
117
+ <Filter>JSI</Filter>
118
+ </ClInclude>
113
119
  <ClInclude Include="$(JSI_SourcePath)\jsi\jsi.h">
114
120
  <Filter>JSI</Filter>
115
121
  </ClInclude>
@@ -151,6 +157,7 @@
151
157
  <Filter>JSI</Filter>
152
158
  </ClInclude>
153
159
  <ClInclude Include="$(Bridging_SourcePath)\CallbackWrapper.h" />
160
+ <ClInclude Include="$(MSBuildThisFileDirectory)CoreApp.h" />
154
161
  </ItemGroup>
155
162
  <ItemGroup>
156
163
  <Filter Include="JSI">
@@ -135,31 +135,8 @@
135
135
  "resolved": "2.2.9",
136
136
  "contentHash": "qF6RRZKaflI+LR1YODNyWYjq5YoX8IJ2wx5y8O+AW2xO+1t/Q6Mm+jQ38zJbWnmXbrcOqUYofn7Y3/KC6lTLBQ=="
137
137
  },
138
- "common": {
139
- "type": "Project"
140
- },
141
- "fmt": {
142
- "type": "Project"
143
- },
144
- "folly": {
145
- "type": "Project",
146
- "dependencies": {
147
- "fmt": "1.0.0"
148
- }
149
- },
150
138
  "microsoft.reactnative": {
151
- "type": "Project",
152
- "dependencies": {
153
- "Common": "1.0.0",
154
- "Folly": "1.0.0",
155
- "ReactCommon": "1.0.0"
156
- }
157
- },
158
- "reactcommon": {
159
- "type": "Project",
160
- "dependencies": {
161
- "Folly": "1.0.0"
162
- }
139
+ "type": "Project"
163
140
  }
164
141
  },
165
142
  "UAP,Version=v10.0.16299/win10-arm": {
@@ -22,6 +22,7 @@ using DispatchTask = VoidFunctor;
22
22
  // Forward declarations
23
23
  struct DispatchLocalValueGuard;
24
24
  struct DispatchQueue;
25
+ struct DispatchQueueSettings;
25
26
  struct DispatchSuspendGuard;
26
27
  struct DispatchTaskBatch;
27
28
  template <typename TInvoke, typename TCancel>
@@ -85,6 +86,13 @@ struct DispatchLocalValueGuard {
85
86
  void **m_tlsValue;
86
87
  };
87
88
 
89
+ struct DispatchQueueSettings {
90
+ Mso::Functor<void(DispatchQueue const &)> TaskStarting;
91
+ Mso::Functor<void(DispatchQueue const &)> TaskCompleted;
92
+ Mso::Functor<void(DispatchQueue const &)> IdleWaitStarting;
93
+ Mso::Functor<void(DispatchQueue const &)> IdleWaitCompleted;
94
+ };
95
+
88
96
  //! Serial or concurrent dispatch queue main API.
89
97
  //! Use Post or InvokeElsePost to post tasks for invocation.
90
98
  //! Use BeginTaskBatching to start tasks batching in current thread for the dispatch queue.
@@ -117,7 +125,7 @@ struct DispatchQueue {
117
125
  static DispatchQueue MakeSerialQueue() noexcept;
118
126
 
119
127
  //! Create new looper DispatchQueue on top of new std::thread. It owns the thread until shutdown.
120
- static DispatchQueue MakeLooperQueue() noexcept;
128
+ static DispatchQueue MakeLooperQueue(DispatchQueueSettings const &settings = {}) noexcept;
121
129
 
122
130
  //! Get a dispatch queue for the current UI thread. The result is null if the UI thread has no system UI thread
123
131
  //! dispatcher.
@@ -417,7 +425,7 @@ struct IDispatchQueueStatic : IUnknown {
417
425
  virtual DispatchQueue MakeSerialQueue() noexcept = 0;
418
426
 
419
427
  //! Create new looper DispatchQueue on top of new std::thread. It owns the thread until shutdown.
420
- virtual DispatchQueue MakeLooperQueue() noexcept = 0;
428
+ virtual DispatchQueue MakeLooperQueue(DispatchQueueSettings const &settings) noexcept = 0;
421
429
 
422
430
  //! Get a dispatch queue for the current UI thread. The result is null if the UI thread has no system UI thread
423
431
  //! dispatcher.
@@ -545,8 +553,8 @@ inline /*static*/ DispatchQueue DispatchQueue::MakeSerialQueue() noexcept {
545
553
  return IDispatchQueueStatic::Instance()->MakeSerialQueue();
546
554
  }
547
555
 
548
- inline /*static*/ DispatchQueue DispatchQueue::MakeLooperQueue() noexcept {
549
- return IDispatchQueueStatic::Instance()->MakeLooperQueue();
556
+ inline /*static*/ DispatchQueue DispatchQueue::MakeLooperQueue(DispatchQueueSettings const &settings) noexcept {
557
+ return IDispatchQueueStatic::Instance()->MakeLooperQueue(settings);
550
558
  }
551
559
 
552
560
  inline /*static*/ DispatchQueue DispatchQueue::GetCurrentUIThreadQueue() noexcept {