react-native-windows 0.70.7 → 0.71.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 (917) hide show
  1. package/.flowconfig +3 -6
  2. package/Directory.Build.props +2 -2
  3. package/Folly/Folly.vcxproj +4 -2
  4. package/Folly/Folly.vcxproj.filters +7 -3
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +59 -43
  6. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +192 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +7 -5
  8. package/Folly/cgmanifest.json +2 -1
  9. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  11. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  12. package/Libraries/Alert/Alert.d.ts +90 -0
  13. package/Libraries/Alert/Alert.js +7 -1
  14. package/Libraries/Alert/Alert.windows.js +2 -1
  15. package/Libraries/Alert/NativeAlertManager.js +2 -0
  16. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  17. package/Libraries/Animated/Animated.d.ts +587 -0
  18. package/Libraries/Animated/Animated.js +13 -11
  19. package/Libraries/Animated/AnimatedEvent.js +12 -17
  20. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  21. package/Libraries/Animated/AnimatedMock.js +11 -13
  22. package/Libraries/Animated/AnimatedWeb.js +2 -2
  23. package/Libraries/Animated/Easing.d.ts +37 -0
  24. package/Libraries/Animated/Easing.js +2 -2
  25. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  26. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  27. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  28. package/Libraries/Animated/SpringConfig.js +2 -7
  29. package/Libraries/Animated/animations/Animation.js +3 -4
  30. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  31. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  32. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  33. package/Libraries/Animated/bezier.js +2 -2
  34. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  35. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  36. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  37. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  38. package/Libraries/Animated/components/AnimatedText.js +5 -6
  39. package/Libraries/Animated/components/AnimatedView.js +5 -6
  40. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  41. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  42. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  43. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  44. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  45. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  46. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  47. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  48. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  49. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  50. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  51. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  52. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  54. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  55. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  56. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  57. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  58. package/Libraries/Animated/useAnimatedProps.js +8 -16
  59. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  60. package/Libraries/Animated/useAnimatedValue.js +25 -0
  61. package/Libraries/AppState/AppState.d.ts +58 -0
  62. package/Libraries/AppState/AppState.js +3 -7
  63. package/Libraries/AppState/NativeAppState.js +1 -0
  64. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  65. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  66. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  67. package/Libraries/Blob/BlobManager.js +5 -3
  68. package/Libraries/Blob/File.js +2 -3
  69. package/Libraries/Blob/FileReader.js +6 -5
  70. package/Libraries/Blob/NativeBlobModule.js +1 -0
  71. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  72. package/Libraries/Blob/URL.js +11 -9
  73. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  74. package/Libraries/BugReporting/getReactData.js +1 -1
  75. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  76. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  77. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  78. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +40 -8
  79. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  80. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  81. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  82. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  83. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  84. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  85. package/Libraries/Components/Button.d.ts +42 -0
  86. package/Libraries/Components/Button.flow.js +265 -0
  87. package/Libraries/Components/Button.js +62 -18
  88. package/Libraries/Components/Button.windows.js +62 -18
  89. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  90. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  91. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  92. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  93. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  94. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  95. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  96. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +4 -2
  97. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  98. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  99. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  100. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  101. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  102. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  103. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  104. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  105. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  106. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  107. package/Libraries/Components/Popup/PopupProps.d.ts +1 -0
  108. package/Libraries/Components/Popup/PopupProps.js.map +1 -1
  109. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  110. package/Libraries/Components/Pressable/Pressable.js +73 -15
  111. package/Libraries/Components/Pressable/Pressable.windows.js +78 -20
  112. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  113. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  114. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  115. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  116. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  117. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  118. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  119. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +1 -1
  120. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  121. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  122. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  123. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  124. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  125. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +4 -3
  126. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  127. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  128. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  129. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  130. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +5 -4
  132. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  133. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  134. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  135. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  136. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  137. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  138. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  139. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  140. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  141. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  142. package/Libraries/Components/Slider/Slider.js +9 -9
  143. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  144. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  145. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  146. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  147. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  148. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  149. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  150. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  151. package/Libraries/Components/Switch/Switch.js +7 -7
  152. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  153. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  154. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  155. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  156. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  157. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  158. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  159. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  160. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  161. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  162. package/Libraries/Components/TextInput/TextInput.js +344 -38
  163. package/Libraries/Components/TextInput/TextInput.windows.js +348 -38
  164. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  165. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  166. package/Libraries/Components/TextInput/TextInputState.windows.js +22 -5
  167. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  168. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  169. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  170. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  171. package/Libraries/Components/Touchable/Touchable.js +12 -12
  172. package/Libraries/Components/Touchable/Touchable.windows.js +12 -12
  173. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  174. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  175. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  176. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +32 -9
  177. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  178. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  179. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  180. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  181. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +54 -16
  182. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  183. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  184. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +64 -10
  185. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  186. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  187. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  188. package/Libraries/Components/View/View.d.ts +29 -0
  189. package/Libraries/Components/View/View.js +91 -8
  190. package/Libraries/Components/View/View.windows.js +181 -94
  191. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  192. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  193. package/Libraries/Components/View/ViewAccessibility.windows.js +69 -0
  194. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  195. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  196. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  197. package/Libraries/Components/View/ViewPropTypes.windows.js +105 -13
  198. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  199. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  200. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  201. package/Libraries/Core/ExceptionsManager.js +8 -0
  202. package/Libraries/Core/ExtendedError.js +11 -8
  203. package/Libraries/Core/InitializeCore.js +2 -1
  204. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  205. package/Libraries/Core/RawEventEmitter.js +2 -1
  206. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  207. package/Libraries/Core/ReactNativeVersion.js +2 -2
  208. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  209. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  210. package/Libraries/Core/Timers/JSTimers.js +13 -11
  211. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  212. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  213. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  214. package/Libraries/Core/setUpReactDevTools.js +4 -1
  215. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  216. package/Libraries/Core/setUpTimers.js +1 -1
  217. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  218. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  219. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  220. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  221. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  222. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  223. package/Libraries/Events/EventPolyfill.js +1 -1
  224. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  225. package/Libraries/Image/AssetSourceResolver.js +4 -6
  226. package/Libraries/Image/Image.android.js +63 -45
  227. package/Libraries/Image/Image.d.ts +322 -0
  228. package/Libraries/Image/Image.flow.js +64 -0
  229. package/Libraries/Image/Image.ios.js +55 -28
  230. package/Libraries/Image/Image.windows.js +56 -30
  231. package/Libraries/Image/ImageBackground.js +18 -7
  232. package/Libraries/Image/ImageInjection.js +2 -1
  233. package/Libraries/Image/ImageProps.js +88 -5
  234. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  235. package/Libraries/Image/ImageSource.d.ts +76 -0
  236. package/Libraries/Image/ImageSourceUtils.js +80 -0
  237. package/Libraries/Image/ImageUtils.js +21 -0
  238. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  239. package/Libraries/Image/NativeImageEditor.js +1 -0
  240. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  241. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  242. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  243. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  244. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  245. package/Libraries/Image/nativeImageSource.js +2 -2
  246. package/Libraries/Image/resolveAssetSource.js +5 -5
  247. package/Libraries/Inspector/BorderBox.js +1 -1
  248. package/Libraries/Inspector/BoxInspector.js +3 -4
  249. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  250. package/Libraries/Inspector/ElementBox.js +4 -5
  251. package/Libraries/Inspector/ElementProperties.js +10 -11
  252. package/Libraries/Inspector/Inspector.js +22 -108
  253. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  254. package/Libraries/Inspector/InspectorPanel.js +12 -10
  255. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  256. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  257. package/Libraries/Inspector/StyleInspector.js +2 -2
  258. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  259. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  260. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  261. package/Libraries/Interaction/InteractionManager.js +8 -8
  262. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  263. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  264. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  265. package/Libraries/Interaction/PanResponder.js +4 -3
  266. package/Libraries/JSInspector/JSInspector.js +0 -3
  267. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  268. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  269. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  270. package/Libraries/Linking/Linking.d.ts +61 -0
  271. package/Libraries/Linking/Linking.js +3 -2
  272. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  273. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  274. package/Libraries/Lists/CellRenderMask.js +13 -3
  275. package/Libraries/Lists/ChildListCollection.js +72 -0
  276. package/Libraries/Lists/FillRateHelper.js +28 -17
  277. package/Libraries/Lists/FlatList.d.ts +292 -0
  278. package/Libraries/Lists/FlatList.js +70 -70
  279. package/Libraries/Lists/SectionList.d.ts +300 -0
  280. package/Libraries/Lists/SectionList.js +5 -5
  281. package/Libraries/Lists/SectionListModern.js +6 -6
  282. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  283. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  284. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  285. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  286. package/Libraries/Lists/VirtualizedList.js +548 -890
  287. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  288. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  289. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  290. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  291. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  292. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  293. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  294. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  295. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  296. package/Libraries/LogBox/LogBox.d.ts +28 -0
  297. package/Libraries/LogBox/LogBox.js +11 -11
  298. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  299. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  300. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  301. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  302. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  303. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  304. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  305. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  306. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  307. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  308. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  309. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  310. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  311. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  312. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  313. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  314. package/Libraries/Modal/Modal.d.ts +104 -0
  315. package/Libraries/Modal/Modal.js +14 -14
  316. package/Libraries/Modal/NativeModalManager.js +1 -0
  317. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  318. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  319. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  320. package/Libraries/NativeComponent/BaseViewConfig.windows.js +8 -3
  321. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  322. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  323. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  324. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  325. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  326. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  327. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  328. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  329. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  330. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  331. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  332. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  333. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  334. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  335. package/Libraries/Network/RCTNetworking.android.js +4 -3
  336. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  337. package/Libraries/Network/RCTNetworking.windows.js +1 -0
  338. package/Libraries/Network/convertRequestBody.js +1 -2
  339. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  340. package/Libraries/NewAppScreen/components/Header.js +6 -2
  341. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  342. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  343. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  344. package/Libraries/NewAppScreen/index.js +1 -1
  345. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  346. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  347. package/Libraries/Performance/Systrace.d.ts +66 -0
  348. package/Libraries/Performance/Systrace.js +110 -195
  349. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  350. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  351. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  352. package/Libraries/Pressability/Pressability.js +12 -10
  353. package/Libraries/Pressability/Pressability.windows.js +21 -12
  354. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  355. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  356. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  357. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  358. package/Libraries/ReactNative/AppContainer.js +17 -7
  359. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  360. package/Libraries/ReactNative/AppRegistry.js +11 -14
  361. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  362. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  363. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  364. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  365. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  366. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  367. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  368. package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
  369. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  370. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  371. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  372. package/Libraries/ReactNative/RendererProxy.js +26 -0
  373. package/Libraries/ReactNative/RootTag.js +0 -1
  374. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  375. package/Libraries/ReactNative/UIManager.js +1 -1
  376. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  377. package/Libraries/ReactNative/renderApplication.js +38 -20
  378. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  379. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  380. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  381. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  382. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  383. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  384. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  385. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  386. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  387. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  388. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  389. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  390. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  391. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  392. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  393. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  394. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  395. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  396. package/Libraries/Settings/Settings.d.ts +18 -0
  397. package/Libraries/Share/NativeShareModule.js +1 -0
  398. package/Libraries/Share/Share.d.ts +80 -0
  399. package/Libraries/Share/Share.js +7 -5
  400. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  401. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  402. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  403. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  404. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  405. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  406. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  407. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  408. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  409. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  410. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  411. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  412. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  413. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  414. package/Libraries/StyleSheet/processColor.js +3 -4
  415. package/Libraries/StyleSheet/processColorArray.js +1 -0
  416. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  417. package/Libraries/StyleSheet/processTransform.js +114 -105
  418. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  419. package/Libraries/Text/Text.d.ts +209 -0
  420. package/Libraries/Text/Text.js +94 -12
  421. package/Libraries/Text/Text.windows.js +87 -11
  422. package/Libraries/Text/TextNativeComponent.js +49 -41
  423. package/Libraries/Text/TextProps.js +64 -7
  424. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  425. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  426. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  427. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  428. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  429. package/Libraries/Types/CoreEventTypes.js +2 -1
  430. package/Libraries/Types/CoreEventTypes.windows.js +2 -1
  431. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  432. package/Libraries/Utilities/Appearance.d.ts +43 -0
  433. package/Libraries/Utilities/Appearance.js +3 -3
  434. package/Libraries/Utilities/BackHandler.android.js +3 -5
  435. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  436. package/Libraries/Utilities/BackHandler.windows.js +3 -5
  437. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  438. package/Libraries/Utilities/DevSettings.js +4 -2
  439. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  440. package/Libraries/Utilities/Dimensions.js +2 -2
  441. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  442. package/Libraries/Utilities/HMRClient.js +23 -8
  443. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  444. package/Libraries/Utilities/NativeAppearance.js +1 -0
  445. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  446. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  447. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  448. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  449. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  450. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  451. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  452. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  453. package/Libraries/Utilities/Platform.android.js +11 -5
  454. package/Libraries/Utilities/Platform.d.ts +102 -0
  455. package/Libraries/Utilities/Platform.ios.js +12 -5
  456. package/Libraries/Utilities/Platform.windows.js +11 -5
  457. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  458. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  459. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  460. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  461. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  462. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  463. package/Libraries/Utilities/groupByEveryN.js +1 -1
  464. package/Libraries/Utilities/stringifySafe.js +3 -1
  465. package/Libraries/Utilities/useColorScheme.js +3 -2
  466. package/Libraries/Utilities/useRefEffect.js +1 -1
  467. package/Libraries/Vibration/NativeVibration.js +1 -0
  468. package/Libraries/Vibration/Vibration.d.ts +43 -0
  469. package/Libraries/Vibration/Vibration.js +1 -0
  470. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  471. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  472. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  473. package/Libraries/WebSocket/WebSocket.js +11 -3
  474. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  475. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  476. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  477. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  478. package/Libraries/__tests__/ViewWindows-test.js +16 -0
  479. package/Libraries/platform-types.d.ts +17 -0
  480. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  481. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  482. package/Microsoft.ReactNative/ABIViewManager.cpp +19 -1
  483. package/Microsoft.ReactNative/ABIViewManager.h +9 -0
  484. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +4 -43
  485. package/Microsoft.ReactNative/Base/CoreNativeModules.h +0 -2
  486. package/Microsoft.ReactNative/CompositionContext.idl +31 -0
  487. package/Microsoft.ReactNative/CompositionHwndHost.idl +33 -0
  488. package/Microsoft.ReactNative/CompositionRootView.idl +45 -0
  489. package/Microsoft.ReactNative/CompositionSwitcher.idl +123 -0
  490. package/Microsoft.ReactNative/CompositionUIService.idl +24 -0
  491. package/Microsoft.ReactNative/Fabric/ComponentView.h +10 -0
  492. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +83 -0
  493. package/Microsoft.ReactNative/Fabric/{ComponentViewRegistry.h → Composition/ComponentViewRegistry.h} +9 -12
  494. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +816 -0
  495. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +33 -0
  496. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +833 -0
  497. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +116 -0
  498. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.cpp +137 -0
  499. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +44 -0
  500. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +145 -0
  501. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +49 -0
  502. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +359 -0
  503. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +81 -0
  504. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +27 -0
  505. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.h +23 -0
  506. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +1217 -0
  507. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +113 -0
  508. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +332 -0
  509. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +90 -0
  510. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +415 -0
  511. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +62 -0
  512. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +355 -0
  513. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +103 -0
  514. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +177 -0
  515. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1076 -0
  516. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +99 -0
  517. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.cpp +0 -0
  518. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.h +0 -0
  519. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.cpp +1 -31
  520. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.h +15 -28
  521. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.cpp +16 -14
  522. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.h +3 -3
  523. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.cpp +27 -10
  524. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.h +5 -16
  525. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -157
  526. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +10 -9
  527. package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +34 -0
  528. package/Microsoft.ReactNative/Fabric/ImageManager.cpp +5 -7
  529. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +23 -8
  530. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +35 -0
  531. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +125 -0
  532. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +20 -0
  533. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +5 -0
  534. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/States.h +5 -0
  535. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +4 -6
  536. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +17 -0
  537. package/Microsoft.ReactNative/INativeUIManager.h +1 -1
  538. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -9
  539. package/Microsoft.ReactNative/IViewManager.idl +14 -0
  540. package/Microsoft.ReactNative/IViewManagerCore.idl +1 -0
  541. package/Microsoft.ReactNative/JsiApi.cpp +94 -0
  542. package/Microsoft.ReactNative/JsiApi.h +13 -0
  543. package/Microsoft.ReactNative/JsiApi.idl +13 -0
  544. package/Microsoft.ReactNative/LayoutService.cpp +51 -0
  545. package/Microsoft.ReactNative/LayoutService.h +32 -0
  546. package/Microsoft.ReactNative/LayoutService.idl +41 -0
  547. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +32 -20
  548. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +11 -1
  549. package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.cpp +33 -16
  550. package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.h +3 -2
  551. package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.cpp +17 -2
  552. package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.h +19 -1
  553. package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.cpp +23 -0
  554. package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.h +17 -0
  555. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.cpp +49 -18
  556. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.h +29 -7
  557. package/Microsoft.ReactNative/Modules/Animated/AnimationUtils.h +45 -0
  558. package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.cpp +6 -5
  559. package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.h +1 -3
  560. package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.cpp +31 -5
  561. package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.h +3 -1
  562. package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.cpp +30 -15
  563. package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.h +4 -2
  564. package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.cpp +43 -20
  565. package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.h +3 -2
  566. package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.cpp +2 -2
  567. package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.h +1 -1
  568. package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.cpp +45 -8
  569. package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.h +7 -2
  570. package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.cpp +76 -38
  571. package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.h +6 -5
  572. package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.cpp +25 -13
  573. package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.h +4 -2
  574. package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.cpp +33 -16
  575. package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.h +3 -2
  576. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +245 -209
  577. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +91 -41
  578. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +336 -82
  579. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +33 -10
  580. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +185 -57
  581. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +28 -5
  582. package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.cpp +72 -20
  583. package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.h +8 -4
  584. package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.cpp +20 -5
  585. package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.h +3 -2
  586. package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.cpp +42 -20
  587. package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.h +3 -1
  588. package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.cpp +20 -11
  589. package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.h +5 -6
  590. package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.cpp +36 -9
  591. package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.h +5 -2
  592. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.cpp +60 -32
  593. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +11 -4
  594. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +58 -37
  595. package/Microsoft.ReactNative/Modules/AppearanceModule.h +25 -32
  596. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +3 -1
  597. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +42 -10
  598. package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +157 -39
  599. package/Microsoft.ReactNative/Modules/LogBoxModule.h +6 -0
  600. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +72 -85
  601. package/Microsoft.ReactNative/Modules/NativeUIManager.h +8 -4
  602. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +7 -19
  603. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +1 -0
  604. package/Microsoft.ReactNative/Modules/TimingModule.cpp +48 -87
  605. package/Microsoft.ReactNative/Modules/TimingModule.h +20 -30
  606. package/Microsoft.ReactNative/QuirkSettings.cpp +22 -0
  607. package/Microsoft.ReactNative/QuirkSettings.h +9 -0
  608. package/Microsoft.ReactNative/QuirkSettings.idl +7 -0
  609. package/Microsoft.ReactNative/ReactCoreInjection.cpp +7 -2
  610. package/Microsoft.ReactNative/ReactCoreInjection.h +4 -1
  611. package/Microsoft.ReactNative/ReactCoreInjection.idl +4 -1
  612. package/Microsoft.ReactNative/ReactHost/React.h +0 -3
  613. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +28 -23
  614. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -3
  615. package/Microsoft.ReactNative/ReactNativeHost.cpp +2 -1
  616. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +8 -3
  617. package/Microsoft.ReactNative/ReactPackageBuilder.h +4 -3
  618. package/Microsoft.ReactNative/ReactRootView.cpp +3 -75
  619. package/Microsoft.ReactNative/ReactRootView.h +0 -6
  620. package/Microsoft.ReactNative/ReactRootView.idl +1 -9
  621. package/Microsoft.ReactNative/RedBox.cpp +69 -8
  622. package/Microsoft.ReactNative/RedBox.h +2 -0
  623. package/Microsoft.ReactNative/RedBoxHandler.cpp +3 -1
  624. package/Microsoft.ReactNative/Utils/Helpers.cpp +13 -0
  625. package/Microsoft.ReactNative/Utils/Helpers.h +1 -0
  626. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +94 -0
  627. package/Microsoft.ReactNative/Utils/ImageUtils.h +35 -0
  628. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +3 -2
  629. package/Microsoft.ReactNative/Utils/PropertyUtils.h +31 -9
  630. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +19 -0
  631. package/Microsoft.ReactNative/Views/ControlViewManager.h +7 -0
  632. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +8 -4
  633. package/Microsoft.ReactNative/Views/ICompositionRootView.h +19 -0
  634. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +14 -0
  635. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +7 -0
  636. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +8 -76
  637. package/Microsoft.ReactNative/Views/Image/ReactImage.h +1 -23
  638. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +16 -3
  639. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -2
  640. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +1 -3
  641. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +10 -1
  642. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +0 -12
  643. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.h +2 -4
  644. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -7
  645. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +58 -42
  646. package/Microsoft.ReactNative/Views/TextViewManager.cpp +47 -31
  647. package/Microsoft.ReactNative/Views/TextViewManager.h +2 -0
  648. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +22 -247
  649. package/Microsoft.ReactNative/Views/TouchEventHandler.h +1 -6
  650. package/Microsoft.ReactNative/Views/ViewControl.cpp +2 -2
  651. package/Microsoft.ReactNative/Views/ViewControl.h +1 -1
  652. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +25 -13
  653. package/Microsoft.ReactNative/Views/ViewManagerBase.h +4 -0
  654. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +74 -35
  655. package/Microsoft.ReactNative/Views/ViewViewManager.h +1 -0
  656. package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +4 -4
  657. package/Microsoft.ReactNative/XamlHelper.cpp +13 -0
  658. package/Microsoft.ReactNative/XamlHelper.h +4 -0
  659. package/Microsoft.ReactNative/XamlHelper.idl +9 -0
  660. package/Microsoft.ReactNative/XamlUIService.cpp +16 -0
  661. package/Microsoft.ReactNative/XamlUIService.h +2 -0
  662. package/Microsoft.ReactNative/XamlUIService.idl +4 -0
  663. package/Microsoft.ReactNative/XamlView.cpp +10 -0
  664. package/Microsoft.ReactNative/XamlView.h +7 -2
  665. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +76 -0
  666. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +13 -0
  667. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +71 -2
  668. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  669. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +1 -2
  670. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +14 -4
  671. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +5 -2
  672. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +2 -0
  673. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +1 -2
  674. package/Microsoft.ReactNative.Managed/IReactPromise.cs +0 -20
  675. package/Microsoft.ReactNative.Managed/JSValue.cs +1 -1
  676. package/Microsoft.ReactNative.Managed/JSValueReader.cs +438 -444
  677. package/Microsoft.ReactNative.Managed/JSValueWriter.cs +8 -7
  678. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +22 -7
  679. package/Microsoft.ReactNative.Managed/ReactAttributes.cs +16 -0
  680. package/Microsoft.ReactNative.Managed/ReactConstantProvider.cs +5 -0
  681. package/Microsoft.ReactNative.Managed/ReactContext.cs +19 -2
  682. package/Microsoft.ReactNative.Managed/ReactDispatcher.cs +34 -0
  683. package/Microsoft.ReactNative.Managed/ReactError.cs +36 -0
  684. package/Microsoft.ReactNative.Managed/ReactNotificationArgsOf.cs +23 -0
  685. package/Microsoft.ReactNative.Managed/ReactNotificationHandlerOf.cs +7 -0
  686. package/Microsoft.ReactNative.Managed/ReactNotificationIdOf.cs +44 -0
  687. package/Microsoft.ReactNative.Managed/ReactNotificationService.cs +146 -0
  688. package/Microsoft.ReactNative.Managed/ReactNotificationSubscription.cs +43 -0
  689. package/Microsoft.ReactNative.Managed/ReactNotificationSubscriptionRevoker.cs +64 -0
  690. package/Microsoft.ReactNative.Managed/ReactPromise.cs +123 -81
  691. package/Microsoft.ReactNative.Managed/ReactPropertyBag.cs +91 -0
  692. package/Microsoft.ReactNative.Managed/ReactPropertyIdOf.cs +44 -0
  693. package/Microsoft.ReactNative.Managed/ReactPropertyName.cs +39 -0
  694. package/Microsoft.ReactNative.Managed/ReactPropertyNamespace.cs +26 -0
  695. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +44 -0
  696. package/Microsoft.ReactNative.Managed/ReactTaskExtensions.cs +15 -4
  697. package/Microsoft.ReactNative.Managed/packages.lock.json +51 -2
  698. package/Microsoft.ReactNative.Managed.CodeGen/App.cs +1 -1
  699. package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +793 -731
  700. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +81 -44
  701. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Serializers.cs +57 -18
  702. package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +36 -4
  703. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +5 -5
  704. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactAssembly.cs +3 -3
  705. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactGetConstants.cs +17 -0
  706. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactMethod.cs +11 -2
  707. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactModule.cs +2 -0
  708. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactTypes.cs +10 -4
  709. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  710. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  711. package/Microsoft.ReactNative.Managed.CodeGen/ReactNativeNames.cs +29 -3
  712. package/Microsoft.ReactNative.Managed.CodeGen/SyntaxHelpers.cs +6 -0
  713. package/Mso/smartPtr/cntPtr.h +21 -21
  714. package/PropertySheets/Codegen.props +15 -0
  715. package/PropertySheets/Codegen.targets +19 -0
  716. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  717. package/PropertySheets/External/Microsoft.ReactNative.CSharp.Dependencies.props +17 -0
  718. package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
  719. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +0 -3
  720. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props +1 -0
  721. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +3 -0
  722. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets +1 -0
  723. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props +1 -0
  724. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +3 -0
  725. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets +1 -0
  726. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +11 -0
  727. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +1 -0
  728. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +51 -0
  729. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +10 -1
  730. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  731. package/PropertySheets/JSEngine.props +10 -3
  732. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  733. package/PropertySheets/NewAPIDeclarations.props +25 -0
  734. package/PropertySheets/React.Cpp.props +2 -2
  735. package/PropertySheets/WinUI.props +1 -1
  736. package/README.md +2 -2
  737. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +2 -1
  738. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBufferBuilder.cpp +182 -0
  739. package/ReactCommon/Yoga.cpp +76 -29
  740. package/Scripts/IntegrationTests.ps1 +1 -1
  741. package/Scripts/JustMyXaml.ps1 +8 -8
  742. package/Scripts/Microsoft.ReactNative.Managed.nuspec +1 -1
  743. package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +3 -3
  744. package/Scripts/OfficeReact.Win32.nuspec +2 -0
  745. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +31 -1
  746. package/Scripts/UnitTest.ps1 +1 -1
  747. package/Scripts/rnw-dependencies.ps1 +317 -162
  748. package/Shared/Composition/CompositionSwitcher.interop.h +39 -0
  749. package/Shared/HermesShim.h +1 -1
  750. package/Shared/JSI/ChakraRuntime.cpp +42 -0
  751. package/Shared/JSI/ChakraRuntime.h +13 -0
  752. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +0 -2
  753. package/Shared/Modules/HttpModule.cpp +19 -4
  754. package/Shared/Networking/IHttpResource.h +126 -0
  755. package/Shared/Networking/IWebSocketResource.h +1 -0
  756. package/Shared/Networking/OriginPolicyHttpFilter.cpp +6 -6
  757. package/Shared/Networking/WinRTHttpResource.cpp +161 -32
  758. package/Shared/Networking/WinRTHttpResource.h +10 -0
  759. package/Shared/OInstance.cpp +4 -8
  760. package/Shared/Shared.vcxitems +37 -5
  761. package/Shared/Shared.vcxitems.filters +1 -12
  762. package/Shared/V8JSIRuntimeHolder.h +0 -2
  763. package/codegen/NativeAccessibilityInfoSpec.g.h +12 -12
  764. package/codegen/NativeAccessibilityManagerSpec.g.h +37 -31
  765. package/codegen/NativeActionSheetManagerSpec.g.h +6 -6
  766. package/codegen/NativeAlertManagerSpec.g.h +4 -2
  767. package/codegen/NativeAnimatedModuleSpec.g.h +48 -48
  768. package/codegen/NativeAnimatedTurboModuleSpec.g.h +48 -48
  769. package/codegen/NativeAnimationsDebugModuleSpec.g.h +4 -4
  770. package/codegen/NativeAppStateSpec.g.h +6 -6
  771. package/codegen/NativeAppearanceSpec.g.h +6 -6
  772. package/codegen/NativeBlobModuleSpec.g.h +12 -12
  773. package/codegen/NativeBugReportingSpec.g.h +6 -6
  774. package/codegen/NativeClipboardSpec.g.h +4 -4
  775. package/codegen/NativeDatePickerAndroidSpec.g.h +2 -2
  776. package/codegen/NativeDevLoadingViewSpec.g.h +4 -4
  777. package/codegen/NativeDevMenuSpec.g.h +10 -10
  778. package/codegen/NativeDevSettingsSpec.g.h +22 -22
  779. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +2 -2
  780. package/codegen/NativeDeviceEventManagerSpec.g.h +2 -2
  781. package/codegen/NativeDialogManagerAndroidSpec.g.h +2 -2
  782. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -2
  783. package/codegen/NativeExceptionsManagerSpec.g.h +10 -10
  784. package/codegen/NativeFileReaderModuleSpec.g.h +4 -4
  785. package/codegen/NativeFrameRateLoggerSpec.g.h +8 -8
  786. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +4 -4
  787. package/codegen/NativeI18nManagerSpec.g.h +6 -6
  788. package/codegen/NativeImageEditorSpec.g.h +2 -2
  789. package/codegen/NativeImageLoaderAndroidSpec.g.h +10 -10
  790. package/codegen/NativeImageLoaderIOSSpec.g.h +10 -10
  791. package/codegen/NativeImageStoreAndroidSpec.g.h +2 -2
  792. package/codegen/NativeImageStoreIOSSpec.g.h +8 -8
  793. package/codegen/NativeIntentAndroidSpec.g.h +10 -10
  794. package/codegen/NativeJSCHeapCaptureSpec.g.h +2 -2
  795. package/codegen/NativeJSCSamplingProfilerSpec.g.h +2 -2
  796. package/codegen/NativeKeyboardObserverSpec.g.h +4 -4
  797. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  798. package/codegen/NativeLogBoxSpec.g.h +4 -4
  799. package/codegen/NativeModalManagerSpec.g.h +4 -4
  800. package/codegen/NativeNetworkingAndroidSpec.g.h +10 -10
  801. package/codegen/NativeNetworkingIOSSpec.g.h +10 -10
  802. package/codegen/NativePerformanceObserverSpec.g.h +69 -0
  803. package/codegen/NativePermissionsAndroidSpec.g.h +8 -8
  804. package/codegen/NativePlatformConstantsAndroidSpec.g.h +2 -2
  805. package/codegen/NativePushNotificationManagerIOSSpec.g.h +36 -36
  806. package/codegen/NativeRedBoxSpec.g.h +4 -4
  807. package/codegen/NativeSampleTurboModuleSpec.g.h +22 -22
  808. package/codegen/NativeSegmentFetcherSpec.g.h +4 -4
  809. package/codegen/NativeSettingsManagerSpec.g.h +4 -4
  810. package/codegen/NativeShareModuleSpec.g.h +2 -2
  811. package/codegen/NativeSoundManagerSpec.g.h +2 -2
  812. package/codegen/NativeStatusBarManagerAndroidSpec.g.h +8 -8
  813. package/codegen/NativeStatusBarManagerIOSSpec.g.h +12 -12
  814. package/codegen/NativeTimingSpec.g.h +6 -6
  815. package/codegen/NativeToastAndroidSpec.g.h +6 -6
  816. package/codegen/NativeUIManagerSpec.g.h +50 -50
  817. package/codegen/NativeVibrationSpec.g.h +6 -6
  818. package/codegen/NativeWebSocketModuleSpec.g.h +14 -14
  819. package/codegen/react/components/rnwcore/ComponentDescriptors.h +3 -4
  820. package/codegen/react/components/rnwcore/EventEmitters.cpp +5 -4
  821. package/codegen/react/components/rnwcore/EventEmitters.h +21 -26
  822. package/codegen/react/components/rnwcore/Props.cpp +3 -10
  823. package/codegen/react/components/rnwcore/Props.h +19 -28
  824. package/codegen/react/components/rnwcore/ShadowNodes.cpp +3 -4
  825. package/codegen/react/components/rnwcore/ShadowNodes.h +36 -30
  826. package/codegen/react/components/rnwcore/States.cpp +18 -0
  827. package/codegen/react/components/rnwcore/States.h +156 -0
  828. package/codegen/rnwcoreJSI-generated.cpp +1670 -0
  829. package/codegen/rnwcoreJSI.h +5620 -0
  830. package/fmt/cgmanifest.json +1 -0
  831. package/fmt/fmt.vcxproj +2 -1
  832. package/index.js +89 -55
  833. package/index.windows.js +89 -55
  834. package/interface.js +8 -0
  835. package/jest/react-native-env.js +18 -0
  836. package/jest/renderer.js +2 -2
  837. package/jest/setup.js +7 -9
  838. package/just-task.js +5 -1
  839. package/package.json +37 -37
  840. package/template/cpp-app/proj/MyApp.sln +2 -2
  841. package/template/cpp-app/proj/MyApp.vcxproj +3 -3
  842. package/template/cpp-app/src/ReactPackageProvider.cpp +1 -1
  843. package/template/cpp-lib/proj/MyLib.sln +2 -2
  844. package/template/cpp-lib/proj/MyLib.vcxproj +3 -3
  845. package/template/cpp-lib/src/ReactPackageProvider.cpp +1 -1
  846. package/template/cs-app/proj/MyApp.csproj +10 -8
  847. package/template/cs-app/proj/MyApp.sln +2 -2
  848. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +3 -3
  849. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +2 -1
  850. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +19 -15
  851. package/template/cs-app-WinAppSDK/proj/MyApp.sln +2 -2
  852. package/template/cs-lib/proj/MyLib.csproj +14 -8
  853. package/template/cs-lib/proj/MyLib.sln +2 -2
  854. package/template/shared-app/proj/ExperimentalFeatures.props +2 -0
  855. package/template/shared-lib/proj/ExperimentalFeatures.props +2 -0
  856. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  857. package/Libraries/Components/MaskedView/MaskedViewIOS.windows.js +0 -9
  858. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  859. package/Libraries/Core/setUpSystrace.js +0 -21
  860. package/Libraries/Image/ImagePickerIOS.js +0 -103
  861. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  862. package/Libraries/Lists/VirtualizedList.windows.js +0 -9
  863. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  864. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  865. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  866. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  867. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  868. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  869. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  870. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  871. package/Libraries/Storage/AsyncStorage.js +0 -385
  872. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  873. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  874. package/Libraries/StyleSheet/processTransform.windows.js +0 -274
  875. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  876. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  877. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.cpp +0 -81
  878. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.h +0 -46
  879. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +0 -118
  880. package/Microsoft.ReactNative/Fabric/ImageComponentView.cpp +0 -138
  881. package/Microsoft.ReactNative/Fabric/ImageComponentView.h +0 -49
  882. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +0 -160
  883. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.h +0 -40
  884. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +0 -200
  885. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.h +0 -62
  886. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +0 -107
  887. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +0 -51
  888. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +0 -109
  889. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +0 -52
  890. package/Microsoft.ReactNative/Fabric/TextComponentView.cpp +0 -98
  891. package/Microsoft.ReactNative/Fabric/TextComponentView.h +0 -39
  892. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +0 -197
  893. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +0 -308
  894. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +0 -52
  895. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +0 -229
  896. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +0 -56
  897. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +0 -46
  898. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +0 -30
  899. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -145
  900. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -344
  901. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/BaseTextProps.cpp +0 -313
  902. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -455
  903. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/PropsMacros.h +0 -91
  904. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/CompactValue.h +0 -206
  905. package/codegen/NativeAsyncLocalStorageSpec.g.h +0 -111
  906. package/codegen/NativeAsyncSQLiteDBStorageSpec.g.h +0 -111
  907. package/codegen/NativeImagePickerIOSSpec.g.h +0 -79
  908. package/codegen/NativeJSDevSupportSpec.g.h +0 -57
  909. package/rntypes/BatchedBridge.d.ts +0 -23
  910. package/rntypes/Devtools.d.ts +0 -20
  911. package/rntypes/LaunchScreen.d.ts +0 -9
  912. package/rntypes/globals.d.ts +0 -497
  913. package/rntypes/index.d.ts +0 -9754
  914. package/rntypes/legacy-properties.d.ts +0 -238
  915. package/typings-index.d.ts +0 -19
  916. package/typings-index.js +0 -44
  917. package/typings-index.js.map +0 -1
@@ -13,531 +13,525 @@ using Microsoft.UI.Xaml.Media;
13
13
 
14
14
  namespace Microsoft.ReactNative.Managed
15
15
  {
16
- public delegate void ReadValueDelegate<T>(IJSValueReader reader, out T value);
16
+ public delegate void ReadValueDelegate<T>(IJSValueReader reader, out T value);
17
17
 
18
- // A value can be read from IJSValueReader in one of two ways:
19
- // 1. There is a ReadValue extension for IJSValueReader interface that matches the type.
20
- // 2. We can auto-generate the read method for the type.
21
- public static class JSValueReader
18
+ // A value can be read from IJSValueReader in one of two ways:
19
+ // 1. There is a ReadValue extension for IJSValueReader interface that matches the type.
20
+ // 2. We can auto-generate the read method for the type.
21
+ public static class JSValueReader
22
+ {
23
+ private static IReadOnlyDictionary<Type, Delegate> s_readerDelegates = new Dictionary<Type, Delegate>();
24
+
25
+ public static void ReadValue(this IJSValueReader reader, out string value)
22
26
  {
23
- private static IReadOnlyDictionary<Type, Delegate> s_readerDelegates = new Dictionary<Type, Delegate>();
27
+ switch (reader.ValueType)
28
+ {
29
+ case JSValueType.String: value = reader.GetString(); break;
30
+ case JSValueType.Boolean: value = reader.GetBoolean() ? "true" : "false"; break;
31
+ case JSValueType.Int64: value = reader.GetInt64().ToString(); break;
32
+ case JSValueType.Double: value = reader.GetDouble().ToString(); break;
33
+ default: value = ""; break;
34
+ }
35
+ }
24
36
 
25
- public static void ReadValue(this IJSValueReader reader, out string value)
26
- {
27
- switch (reader.ValueType)
28
- {
29
- case JSValueType.String: value = reader.GetString(); break;
30
- case JSValueType.Boolean: value = reader.GetBoolean() ? "true" : "false"; break;
31
- case JSValueType.Int64: value = reader.GetInt64().ToString(); break;
32
- case JSValueType.Double: value = reader.GetDouble().ToString(); break;
33
- default: value = ""; break;
34
- }
35
- }
37
+ public static void ReadValue(this IJSValueReader reader, out bool value)
38
+ {
39
+ switch (reader.ValueType)
40
+ {
41
+ case JSValueType.String: value = !string.IsNullOrEmpty(reader.GetString()); break;
42
+ case JSValueType.Boolean: value = reader.GetBoolean(); break;
43
+ case JSValueType.Int64: value = reader.GetInt64() != 0; break;
44
+ case JSValueType.Double: value = reader.GetDouble() != 0; break;
45
+ default: value = false; break;
46
+ }
47
+ }
36
48
 
37
- public static void ReadValue(this IJSValueReader reader, out bool value)
38
- {
39
- switch (reader.ValueType)
40
- {
41
- case JSValueType.String: value = !string.IsNullOrEmpty(reader.GetString()); break;
42
- case JSValueType.Boolean: value = reader.GetBoolean(); break;
43
- case JSValueType.Int64: value = reader.GetInt64() != 0; break;
44
- case JSValueType.Double: value = reader.GetDouble() != 0; break;
45
- default: value = false; break;
46
- }
47
- }
49
+ public static void ReadValue(this IJSValueReader reader, out sbyte value)
50
+ {
51
+ reader.ReadValue(out long val);
52
+ value = (sbyte)val;
53
+ }
48
54
 
49
- public static void ReadValue(this IJSValueReader reader, out sbyte value)
50
- {
51
- reader.ReadValue(out long val);
52
- value = (sbyte)val;
53
- }
55
+ public static void ReadValue(this IJSValueReader reader, out short value)
56
+ {
57
+ reader.ReadValue(out long val);
58
+ value = (short)val;
59
+ }
54
60
 
55
- public static void ReadValue(this IJSValueReader reader, out short value)
56
- {
57
- reader.ReadValue(out long val);
58
- value = (short)val;
59
- }
61
+ public static void ReadValue(this IJSValueReader reader, out int value)
62
+ {
63
+ reader.ReadValue(out long val);
64
+ value = (int)val;
65
+ }
60
66
 
61
- public static void ReadValue(this IJSValueReader reader, out int value)
62
- {
63
- reader.ReadValue(out long val);
64
- value = (int)val;
65
- }
67
+ public static void ReadValue(this IJSValueReader reader, out long value)
68
+ {
69
+ switch (reader.ValueType)
70
+ {
71
+ case JSValueType.String:
72
+ {
73
+ if (!long.TryParse(reader.GetString(), out value)) { value = 0; }
74
+ break;
75
+ }
76
+ case JSValueType.Boolean: value = reader.GetBoolean() ? 1 : 0; break;
77
+ case JSValueType.Int64: value = reader.GetInt64(); break;
78
+ case JSValueType.Double: value = (long)reader.GetDouble(); break;
79
+ default: value = 0; break;
80
+ }
81
+ }
66
82
 
67
- public static void ReadValue(this IJSValueReader reader, out long value)
68
- {
69
- switch (reader.ValueType)
70
- {
71
- case JSValueType.String:
72
- {
73
- if (!long.TryParse(reader.GetString(), out value)) { value = 0; }
74
- break;
75
- }
76
- case JSValueType.Boolean: value = reader.GetBoolean() ? 1 : 0; break;
77
- case JSValueType.Int64: value = reader.GetInt64(); break;
78
- case JSValueType.Double: value = (long)reader.GetDouble(); break;
79
- default: value = 0; break;
80
- }
81
- }
83
+ public static void ReadValue(this IJSValueReader reader, out byte value)
84
+ {
85
+ reader.ReadValue(out long val);
86
+ value = (byte)val;
87
+ }
82
88
 
83
- public static void ReadValue(this IJSValueReader reader, out byte value)
84
- {
85
- reader.ReadValue(out long val);
86
- value = (byte)val;
87
- }
89
+ public static void ReadValue(this IJSValueReader reader, out ushort value)
90
+ {
91
+ reader.ReadValue(out long val);
92
+ value = (ushort)val;
93
+ }
88
94
 
89
- public static void ReadValue(this IJSValueReader reader, out ushort value)
90
- {
91
- reader.ReadValue(out long val);
92
- value = (ushort)val;
93
- }
95
+ public static void ReadValue(this IJSValueReader reader, out uint value)
96
+ {
97
+ reader.ReadValue(out long val);
98
+ value = (uint)val;
99
+ }
94
100
 
95
- public static void ReadValue(this IJSValueReader reader, out uint value)
96
- {
97
- reader.ReadValue(out long val);
98
- value = (uint)val;
99
- }
101
+ public static void ReadValue(this IJSValueReader reader, out ulong value)
102
+ {
103
+ reader.ReadValue(out long val);
104
+ value = (ulong)val;
105
+ }
100
106
 
101
- public static void ReadValue(this IJSValueReader reader, out ulong value)
102
- {
103
- reader.ReadValue(out long val);
104
- value = (ulong)val;
105
- }
107
+ public static void ReadValue(this IJSValueReader reader, out float value)
108
+ {
109
+ reader.ReadValue(out double val);
110
+ value = (float)val;
111
+ }
106
112
 
107
- public static void ReadValue(this IJSValueReader reader, out float value)
108
- {
109
- reader.ReadValue(out double val);
110
- value = (float)val;
111
- }
113
+ public static void ReadValue(this IJSValueReader reader, out double value)
114
+ {
115
+ switch (reader.ValueType)
116
+ {
117
+ case JSValueType.String:
118
+ {
119
+ if (!double.TryParse(reader.GetString(), out value)) { value = 0; }
120
+ break;
121
+ }
122
+ case JSValueType.Boolean: value = reader.GetBoolean() ? 1 : 0; break;
123
+ case JSValueType.Int64: value = reader.GetInt64(); break;
124
+ case JSValueType.Double: value = reader.GetDouble(); break;
125
+ default: value = 0; break;
126
+ }
127
+ }
112
128
 
113
- public static void ReadValue(this IJSValueReader reader, out double value)
114
- {
115
- switch (reader.ValueType)
116
- {
117
- case JSValueType.String:
118
- {
119
- if (!double.TryParse(reader.GetString(), out value)) { value = 0; }
120
- break;
121
- }
122
- case JSValueType.Boolean: value = reader.GetBoolean() ? 1 : 0; break;
123
- case JSValueType.Int64: value = reader.GetInt64(); break;
124
- case JSValueType.Double: value = reader.GetDouble(); break;
125
- default: value = 0; break;
126
- }
127
- }
129
+ public static void ReadValue(this IJSValueReader reader, out JSValue value)
130
+ {
131
+ value = JSValue.ReadFrom(reader);
132
+ }
128
133
 
129
- public static void ReadValue(this IJSValueReader reader, out JSValue value)
130
- {
131
- value = JSValue.ReadFrom(reader);
132
- }
134
+ public static void ReadValue(this IJSValueReader reader, out Brush value)
135
+ {
136
+ JSValue jsValue = JSValue.ReadFrom(reader);
137
+ value = XamlHelper.BrushFrom((writer) => jsValue.WriteTo(writer));
138
+ }
133
139
 
134
- public static void ReadValue(this IJSValueReader reader, out Brush value)
135
- {
136
- JSValue jsValue = JSValue.ReadFrom(reader);
137
- value = XamlHelper.BrushFrom((writer) => jsValue.WriteTo(writer));
138
- }
140
+ public static void ReadValue(this IJSValueReader reader, out Dictionary<string, JSValue> value)
141
+ {
142
+ value = JSValue.ReadObjectFrom(reader);
143
+ }
139
144
 
140
- public static void ReadValue(this IJSValueReader reader, out Dictionary<string, JSValue> value)
141
- {
142
- value = JSValue.ReadObjectFrom(reader);
143
- }
145
+ public static void ReadValue(this IJSValueReader reader, out IDictionary<string, JSValue> value)
146
+ {
147
+ value = JSValue.ReadObjectFrom(reader);
148
+ }
144
149
 
145
- public static void ReadValue(this IJSValueReader reader, out IDictionary<string, JSValue> value)
146
- {
147
- value = JSValue.ReadObjectFrom(reader);
148
- }
150
+ public static void ReadValue(this IJSValueReader reader, out ICollection<KeyValuePair<string, JSValue>> value)
151
+ {
152
+ value = JSValue.ReadObjectFrom(reader);
153
+ }
149
154
 
150
- public static void ReadValue(this IJSValueReader reader, out ICollection<KeyValuePair<string, JSValue>> value)
151
- {
152
- value = JSValue.ReadObjectFrom(reader);
153
- }
155
+ public static void ReadValue(this IJSValueReader reader, out IEnumerable<KeyValuePair<string, JSValue>> value)
156
+ {
157
+ value = JSValue.ReadObjectFrom(reader);
158
+ }
154
159
 
155
- public static void ReadValue(this IJSValueReader reader, out IEnumerable<KeyValuePair<string, JSValue>> value)
156
- {
157
- value = JSValue.ReadObjectFrom(reader);
158
- }
160
+ public static void ReadValue(this IJSValueReader reader, out ReadOnlyDictionary<string, JSValue> value)
161
+ {
162
+ value = new ReadOnlyDictionary<string, JSValue>(JSValue.ReadObjectFrom(reader));
163
+ }
159
164
 
160
- public static void ReadValue(this IJSValueReader reader, out ReadOnlyDictionary<string, JSValue> value)
161
- {
162
- value = new ReadOnlyDictionary<string, JSValue>(JSValue.ReadObjectFrom(reader));
163
- }
165
+ public static void ReadValue(this IJSValueReader reader, out IReadOnlyDictionary<string, JSValue> value)
166
+ {
167
+ value = new ReadOnlyDictionary<string, JSValue>(JSValue.ReadObjectFrom(reader));
168
+ }
164
169
 
165
- public static void ReadValue(this IJSValueReader reader, out IReadOnlyDictionary<string, JSValue> value)
166
- {
167
- value = new ReadOnlyDictionary<string, JSValue>(JSValue.ReadObjectFrom(reader));
168
- }
170
+ public static void ReadValue(this IJSValueReader reader, out IReadOnlyCollection<KeyValuePair<string, JSValue>> value)
171
+ {
172
+ value = new ReadOnlyDictionary<string, JSValue>(JSValue.ReadObjectFrom(reader));
173
+ }
169
174
 
170
- public static void ReadValue(this IJSValueReader reader, out IReadOnlyCollection<KeyValuePair<string, JSValue>> value)
171
- {
172
- value = new ReadOnlyDictionary<string, JSValue>(JSValue.ReadObjectFrom(reader));
173
- }
175
+ public static void ReadValue(this IJSValueReader reader, out List<JSValue> value)
176
+ {
177
+ value = JSValue.ReadArrayFrom(reader);
178
+ }
174
179
 
175
- public static void ReadValue(this IJSValueReader reader, out List<JSValue> value)
176
- {
177
- value = JSValue.ReadArrayFrom(reader);
178
- }
180
+ public static void ReadValue(this IJSValueReader reader, out IList<JSValue> value)
181
+ {
182
+ value = JSValue.ReadArrayFrom(reader);
183
+ }
179
184
 
180
- public static void ReadValue(this IJSValueReader reader, out IList<JSValue> value)
181
- {
182
- value = JSValue.ReadArrayFrom(reader);
183
- }
185
+ public static void ReadValue(this IJSValueReader reader, out ICollection<JSValue> value)
186
+ {
187
+ value = JSValue.ReadArrayFrom(reader);
188
+ }
184
189
 
185
- public static void ReadValue(this IJSValueReader reader, out ICollection<JSValue> value)
186
- {
187
- value = JSValue.ReadArrayFrom(reader);
188
- }
190
+ public static void ReadValue(this IJSValueReader reader, out IEnumerable<JSValue> value)
191
+ {
192
+ value = JSValue.ReadArrayFrom(reader);
193
+ }
189
194
 
190
- public static void ReadValue(this IJSValueReader reader, out IEnumerable<JSValue> value)
191
- {
192
- value = JSValue.ReadArrayFrom(reader);
193
- }
195
+ public static void ReadValue(this IJSValueReader reader, out ReadOnlyCollection<JSValue> value)
196
+ {
197
+ value = new ReadOnlyCollection<JSValue>(JSValue.ReadArrayFrom(reader));
198
+ }
194
199
 
195
- public static void ReadValue(this IJSValueReader reader, out ReadOnlyCollection<JSValue> value)
196
- {
197
- value = new ReadOnlyCollection<JSValue>(JSValue.ReadArrayFrom(reader));
198
- }
200
+ public static void ReadValue(this IJSValueReader reader, out IReadOnlyList<JSValue> value)
201
+ {
202
+ value = new ReadOnlyCollection<JSValue>(JSValue.ReadArrayFrom(reader));
203
+ }
199
204
 
200
- public static void ReadValue(this IJSValueReader reader, out IReadOnlyList<JSValue> value)
201
- {
202
- value = new ReadOnlyCollection<JSValue>(JSValue.ReadArrayFrom(reader));
203
- }
205
+ public static void ReadValue(this IJSValueReader reader, out IReadOnlyCollection<JSValue> value)
206
+ {
207
+ value = new ReadOnlyCollection<JSValue>(JSValue.ReadArrayFrom(reader));
208
+ }
204
209
 
205
- public static void ReadValue(this IJSValueReader reader, out IReadOnlyCollection<JSValue> value)
206
- {
207
- value = new ReadOnlyCollection<JSValue>(JSValue.ReadArrayFrom(reader));
208
- }
210
+ public static void ReadValue<T>(this IJSValueReader reader, out T? value) where T : struct
211
+ {
212
+ if (reader.ValueType != JSValueType.Null)
213
+ {
214
+ value = reader.ReadValue<T>();
215
+ }
216
+ else
217
+ {
218
+ value = null;
219
+ }
220
+ }
209
221
 
210
- public static void ReadValue<T>(this IJSValueReader reader, out T? value) where T : struct
222
+ public static void ReadValue<T>(this IJSValueReader reader, out Dictionary<string, T> value)
223
+ {
224
+ value = new Dictionary<string, T>();
225
+ if (reader.ValueType == JSValueType.Object)
226
+ {
227
+ while (reader.GetNextObjectProperty(out string propertyName))
211
228
  {
212
- if (reader.ValueType != JSValueType.Null)
213
- {
214
- value = reader.ReadValue<T>();
215
- }
216
- else
217
- {
218
- value = null;
219
- }
229
+ value.Add(propertyName, reader.ReadValue<T>());
220
230
  }
231
+ }
232
+ }
221
233
 
222
- public static void ReadValue<T>(this IJSValueReader reader, out Dictionary<string, T> value)
223
- {
224
- value = new Dictionary<string, T>();
225
- if (reader.ValueType == JSValueType.Object)
226
- {
227
- while (reader.GetNextObjectProperty(out string propertyName))
228
- {
229
- value.Add(propertyName, reader.ReadValue<T>());
230
- }
231
- }
232
- }
234
+ public static void ReadValue<T>(this IJSValueReader reader, out IDictionary<string, T> value)
235
+ {
236
+ reader.ReadValue(out Dictionary<string, T> dictionary);
237
+ value = dictionary;
238
+ }
233
239
 
234
- public static void ReadValue<T>(this IJSValueReader reader, out IDictionary<string, T> value)
235
- {
236
- reader.ReadValue(out Dictionary<string, T> dictionary);
237
- value = dictionary;
238
- }
240
+ public static void ReadValue<T>(this IJSValueReader reader, out ICollection<KeyValuePair<string, T>> value)
241
+ {
242
+ reader.ReadValue(out Dictionary<string, T> dictionary);
243
+ value = dictionary;
244
+ }
239
245
 
240
- public static void ReadValue<T>(this IJSValueReader reader, out ICollection<KeyValuePair<string, T>> value)
241
- {
242
- reader.ReadValue(out Dictionary<string, T> dictionary);
243
- value = dictionary;
244
- }
246
+ public static void ReadValue<T>(this IJSValueReader reader, out IEnumerable<KeyValuePair<string, T>> value)
247
+ {
248
+ reader.ReadValue(out Dictionary<string, T> dictionary);
249
+ value = dictionary;
250
+ }
245
251
 
246
- public static void ReadValue<T>(this IJSValueReader reader, out IEnumerable<KeyValuePair<string, T>> value)
247
- {
248
- reader.ReadValue(out Dictionary<string, T> dictionary);
249
- value = dictionary;
250
- }
252
+ public static void ReadValue<T>(this IJSValueReader reader, out ReadOnlyDictionary<string, T> value)
253
+ {
254
+ reader.ReadValue(out Dictionary<string, T> dictionary);
255
+ value = new ReadOnlyDictionary<string, T>(dictionary);
256
+ }
251
257
 
252
- public static void ReadValue<T>(this IJSValueReader reader, out ReadOnlyDictionary<string, T> value)
253
- {
254
- reader.ReadValue(out Dictionary<string, T> dictionary);
255
- value = new ReadOnlyDictionary<string, T>(dictionary);
256
- }
258
+ public static void ReadValue<T>(this IJSValueReader reader, out IReadOnlyDictionary<string, T> value)
259
+ {
260
+ reader.ReadValue(out ReadOnlyDictionary<string, T> dictionary);
261
+ value = dictionary;
262
+ }
257
263
 
258
- public static void ReadValue<T>(this IJSValueReader reader, out IReadOnlyDictionary<string, T> value)
259
- {
260
- reader.ReadValue(out ReadOnlyDictionary<string, T> dictionary);
261
- value = dictionary;
262
- }
264
+ public static void ReadValue<T>(this IJSValueReader reader, out IReadOnlyCollection<KeyValuePair<string, T>> value)
265
+ {
266
+ reader.ReadValue(out ReadOnlyDictionary<string, T> dictionary);
267
+ value = dictionary;
268
+ }
263
269
 
264
- public static void ReadValue<T>(this IJSValueReader reader, out IReadOnlyCollection<KeyValuePair<string, T>> value)
270
+ public static void ReadValue<T>(this IJSValueReader reader, out List<T> value)
271
+ {
272
+ value = new List<T>();
273
+ if (reader.ValueType == JSValueType.Array)
274
+ {
275
+ while (reader.GetNextArrayItem())
265
276
  {
266
- reader.ReadValue(out ReadOnlyDictionary<string, T> dictionary);
267
- value = dictionary;
277
+ value.Add(reader.ReadValue<T>());
268
278
  }
279
+ }
280
+ }
269
281
 
270
- public static void ReadValue<T>(this IJSValueReader reader, out List<T> value)
271
- {
272
- value = new List<T>();
273
- if (reader.ValueType == JSValueType.Array)
274
- {
275
- while (reader.GetNextArrayItem())
276
- {
277
- value.Add(reader.ReadValue<T>());
278
- }
279
- }
280
- }
282
+ public static void ReadValue<T>(this IJSValueReader reader, out IList<T> value)
283
+ {
284
+ ReadValue(reader, out List<T> list);
285
+ value = list;
286
+ }
281
287
 
282
- public static void ReadValue<T>(this IJSValueReader reader, out IList<T> value)
283
- {
284
- ReadValue(reader, out List<T> list);
285
- value = list;
286
- }
288
+ public static void ReadValue<T>(this IJSValueReader reader, out ICollection<T> value)
289
+ {
290
+ ReadValue(reader, out List<T> list);
291
+ value = list;
292
+ }
287
293
 
288
- public static void ReadValue<T>(this IJSValueReader reader, out ICollection<T> value)
289
- {
290
- ReadValue(reader, out List<T> list);
291
- value = list;
292
- }
294
+ public static void ReadValue<T>(this IJSValueReader reader, out IEnumerable<T> value)
295
+ {
296
+ ReadValue(reader, out List<T> list);
297
+ value = list;
298
+ }
293
299
 
294
- public static void ReadValue<T>(this IJSValueReader reader, out IEnumerable<T> value)
295
- {
296
- ReadValue(reader, out List<T> list);
297
- value = list;
298
- }
300
+ public static void ReadValue<T>(this IJSValueReader reader, out ReadOnlyCollection<T> value)
301
+ {
302
+ ReadValue(reader, out List<T> list);
303
+ value = new ReadOnlyCollection<T>(list);
304
+ }
299
305
 
300
- public static void ReadValue<T>(this IJSValueReader reader, out ReadOnlyCollection<T> value)
301
- {
302
- ReadValue(reader, out List<T> list);
303
- value = new ReadOnlyCollection<T>(list);
304
- }
306
+ public static void ReadValue<T>(this IJSValueReader reader, out IReadOnlyList<T> value)
307
+ {
308
+ ReadValue(reader, out ReadOnlyCollection<T> collection);
309
+ value = collection;
310
+ }
305
311
 
306
- public static void ReadValue<T>(this IJSValueReader reader, out IReadOnlyList<T> value)
307
- {
308
- ReadValue(reader, out ReadOnlyCollection<T> collection);
309
- value = collection;
310
- }
312
+ public static void ReadValue<T>(this IJSValueReader reader, out IReadOnlyCollection<T> value)
313
+ {
314
+ ReadValue(reader, out ReadOnlyCollection<T> collection);
315
+ value = collection;
316
+ }
311
317
 
312
- public static void ReadValue<T>(this IJSValueReader reader, out IReadOnlyCollection<T> value)
313
- {
314
- ReadValue(reader, out ReadOnlyCollection<T> collection);
315
- value = collection;
316
- }
318
+ public static void ReadValue<T>(this IJSValueReader reader, out T[] value)
319
+ {
320
+ ReadValue(reader, out List<T> list);
321
+ value = list.ToArray();
322
+ }
317
323
 
318
- public static void ReadValue<T>(this IJSValueReader reader, out T[] value)
319
- {
320
- ReadValue(reader, out List<T> list);
321
- value = list.ToArray();
322
- }
324
+ public static bool SkipArrayToEnd(this IJSValueReader reader)
325
+ {
326
+ while (reader.GetNextArrayItem())
327
+ {
328
+ reader.ReadValue<JSValue>(); // Read and ignore the value
329
+ }
323
330
 
324
- public static bool SkipArrayToEnd(this IJSValueReader reader)
325
- {
326
- while (reader.GetNextArrayItem())
327
- {
328
- reader.ReadValue<JSValue>(); // Read and ignore the value
329
- }
331
+ return true;
332
+ }
330
333
 
331
- return true;
332
- }
334
+ public static void ReadValue<T1>(this IJSValueReader reader, out Tuple<T1> value)
335
+ {
336
+ reader.ReadArgs(out T1 v1);
337
+ value = Tuple.Create(v1);
338
+ }
333
339
 
334
- public static void ReadValue<T1>(this IJSValueReader reader, out Tuple<T1> value)
335
- {
336
- reader.ReadArgs(out T1 v1);
337
- value = Tuple.Create(v1);
338
- }
340
+ public static void ReadValue<T1, T2>(this IJSValueReader reader, out Tuple<T1, T2> value)
341
+ {
342
+ reader.ReadArgs(out T1 v1, out T2 v2);
343
+ value = Tuple.Create(v1, v2);
344
+ }
339
345
 
340
- public static void ReadValue<T1, T2>(this IJSValueReader reader, out Tuple<T1, T2> value)
341
- {
342
- reader.ReadArgs(out T1 v1, out T2 v2);
343
- value = Tuple.Create(v1, v2);
344
- }
346
+ public static void ReadValue<T1, T2, T3>(this IJSValueReader reader, out Tuple<T1, T2, T3> value)
347
+ {
348
+ reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3);
349
+ value = Tuple.Create(v1, v2, v3);
350
+ }
345
351
 
346
- public static void ReadValue<T1, T2, T3>(this IJSValueReader reader, out Tuple<T1, T2, T3> value)
347
- {
348
- reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3);
349
- value = Tuple.Create(v1, v2, v3);
350
- }
352
+ public static void ReadValue<T1, T2, T3, T4>(this IJSValueReader reader, out Tuple<T1, T2, T3, T4> value)
353
+ {
354
+ reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3, out T4 v4);
355
+ value = Tuple.Create(v1, v2, v3, v4);
356
+ }
351
357
 
352
- public static void ReadValue<T1, T2, T3, T4>(this IJSValueReader reader, out Tuple<T1, T2, T3, T4> value)
353
- {
354
- reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3, out T4 v4);
355
- value = Tuple.Create(v1, v2, v3, v4);
356
- }
358
+ public static void ReadValue<T1, T2, T3, T4, T5>(
359
+ this IJSValueReader reader, out Tuple<T1, T2, T3, T4, T5> value)
360
+ {
361
+ reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3, out T4 v4, out T5 v5);
362
+ value = Tuple.Create(v1, v2, v3, v4, v5);
363
+ }
357
364
 
358
- public static void ReadValue<T1, T2, T3, T4, T5>(
359
- this IJSValueReader reader, out Tuple<T1, T2, T3, T4, T5> value)
360
- {
361
- reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3, out T4 v4, out T5 v5);
362
- value = Tuple.Create(v1, v2, v3, v4, v5);
363
- }
365
+ public static void ReadValue<T1, T2, T3, T4, T5, T6>(
366
+ this IJSValueReader reader, out Tuple<T1, T2, T3, T4, T5, T6> value)
367
+ {
368
+ reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3, out T4 v4, out T5 v5, out T6 v6);
369
+ value = Tuple.Create(v1, v2, v3, v4, v5, v6);
370
+ }
364
371
 
365
- public static void ReadValue<T1, T2, T3, T4, T5, T6>(
366
- this IJSValueReader reader, out Tuple<T1, T2, T3, T4, T5, T6> value)
367
- {
368
- reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3, out T4 v4, out T5 v5, out T6 v6);
369
- value = Tuple.Create(v1, v2, v3, v4, v5, v6);
370
- }
372
+ public static void ReadValue<T1, T2, T3, T4, T5, T6, T7>(
373
+ this IJSValueReader reader, out Tuple<T1, T2, T3, T4, T5, T6, T7> value)
374
+ {
375
+ reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3, out T4 v4, out T5 v5, out T6 v6, out T7 v7);
376
+ value = Tuple.Create(v1, v2, v3, v4, v5, v6, v7);
377
+ }
371
378
 
372
- public static void ReadValue<T1, T2, T3, T4, T5, T6, T7>(
373
- this IJSValueReader reader, out Tuple<T1, T2, T3, T4, T5, T6, T7> value)
374
- {
375
- reader.ReadArgs(out T1 v1, out T2 v2, out T3 v3, out T4 v4, out T5 v5, out T6 v6, out T7 v7);
376
- value = Tuple.Create(v1, v2, v3, v4, v5, v6, v7);
377
- }
379
+ public static bool GetNextArrayItem(this IJSValueReader reader, ref bool success)
380
+ {
381
+ return success = success && reader.GetNextArrayItem();
382
+ }
378
383
 
379
- public static bool GetNextArrayItem(this IJSValueReader reader, ref bool success)
380
- {
381
- return success = success && reader.GetNextArrayItem();
382
- }
384
+ public static void ReadArgs(this IJSValueReader reader)
385
+ {
386
+ bool success = reader.ValueType == JSValueType.Array;
387
+ _ = success && reader.SkipArrayToEnd();
388
+ }
383
389
 
384
- public static void ReadArgs(this IJSValueReader reader)
385
- {
386
- bool success = reader.ValueType == JSValueType.Array;
387
- _ = success && reader.SkipArrayToEnd();
388
- }
390
+ public static void ReadArgs<T1>(this IJSValueReader reader, out T1 arg1)
391
+ {
392
+ bool success = reader.ValueType == JSValueType.Array;
393
+ arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
394
+ _ = success && reader.SkipArrayToEnd();
395
+ }
389
396
 
390
- public static void ReadArgs<T1>(this IJSValueReader reader, out T1 arg1)
391
- {
392
- bool success = reader.ValueType == JSValueType.Array;
393
- arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
394
- _ = success && reader.SkipArrayToEnd();
395
- }
397
+ public static void ReadArgs<T1, T2>(this IJSValueReader reader, out T1 arg1, out T2 arg2)
398
+ {
399
+ bool success = reader.ValueType == JSValueType.Array;
400
+ arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
401
+ arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
402
+ _ = success && reader.SkipArrayToEnd();
403
+ }
396
404
 
397
- public static void ReadArgs<T1, T2>(this IJSValueReader reader, out T1 arg1, out T2 arg2)
398
- {
399
- bool success = reader.ValueType == JSValueType.Array;
400
- arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
401
- arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
402
- _ = success && reader.SkipArrayToEnd();
403
- }
405
+ public static void ReadArgs<T1, T2, T3>(this IJSValueReader reader, out T1 arg1, out T2 arg2, out T3 arg3)
406
+ {
407
+ bool success = reader.ValueType == JSValueType.Array;
408
+ arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
409
+ arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
410
+ arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
411
+ _ = success && reader.SkipArrayToEnd();
412
+ }
404
413
 
405
- public static void ReadArgs<T1, T2, T3>(this IJSValueReader reader, out T1 arg1, out T2 arg2, out T3 arg3)
406
- {
407
- bool success = reader.ValueType == JSValueType.Array;
408
- arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
409
- arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
410
- arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
411
- _ = success && reader.SkipArrayToEnd();
412
- }
414
+ public static void ReadArgs<T1, T2, T3, T4>(this IJSValueReader reader,
415
+ out T1 arg1, out T2 arg2, out T3 arg3, out T4 arg4)
416
+ {
417
+ bool success = reader.ValueType == JSValueType.Array;
418
+ arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
419
+ arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
420
+ arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
421
+ arg4 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T4>() : default(T4);
422
+ _ = success && reader.SkipArrayToEnd();
423
+ }
413
424
 
414
- public static void ReadArgs<T1, T2, T3, T4>(this IJSValueReader reader,
415
- out T1 arg1, out T2 arg2, out T3 arg3, out T4 arg4)
416
- {
417
- bool success = reader.ValueType == JSValueType.Array;
418
- arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
419
- arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
420
- arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
421
- arg4 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T4>() : default(T4);
422
- _ = success && reader.SkipArrayToEnd();
423
- }
425
+ public static void ReadArgs<T1, T2, T3, T4, T5>(this IJSValueReader reader,
426
+ out T1 arg1, out T2 arg2, out T3 arg3, out T4 arg4, out T5 arg5)
427
+ {
428
+ bool success = reader.ValueType == JSValueType.Array;
429
+ arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
430
+ arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
431
+ arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
432
+ arg4 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T4>() : default(T4);
433
+ arg5 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T5>() : default(T5);
434
+ _ = success && reader.SkipArrayToEnd();
435
+ }
424
436
 
425
- public static void ReadArgs<T1, T2, T3, T4, T5>(this IJSValueReader reader,
426
- out T1 arg1, out T2 arg2, out T3 arg3, out T4 arg4, out T5 arg5)
427
- {
428
- bool success = reader.ValueType == JSValueType.Array;
429
- arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
430
- arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
431
- arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
432
- arg4 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T4>() : default(T4);
433
- arg5 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T5>() : default(T5);
434
- _ = success && reader.SkipArrayToEnd();
435
- }
437
+ public static void ReadArgs<T1, T2, T3, T4, T5, T6>(this IJSValueReader reader,
438
+ out T1 arg1, out T2 arg2, out T3 arg3, out T4 arg4, out T5 arg5, out T6 arg6)
439
+ {
440
+ bool success = reader.ValueType == JSValueType.Array;
441
+ arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
442
+ arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
443
+ arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
444
+ arg4 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T4>() : default(T4);
445
+ arg5 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T5>() : default(T5);
446
+ arg6 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T6>() : default(T6);
447
+ _ = success && reader.SkipArrayToEnd();
448
+ }
436
449
 
437
- public static void ReadArgs<T1, T2, T3, T4, T5, T6>(this IJSValueReader reader,
438
- out T1 arg1, out T2 arg2, out T3 arg3, out T4 arg4, out T5 arg5, out T6 arg6)
439
- {
440
- bool success = reader.ValueType == JSValueType.Array;
441
- arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
442
- arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
443
- arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
444
- arg4 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T4>() : default(T4);
445
- arg5 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T5>() : default(T5);
446
- arg6 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T6>() : default(T6);
447
- _ = success && reader.SkipArrayToEnd();
448
- }
450
+ public static void ReadArgs<T1, T2, T3, T4, T5, T6, T7>(this IJSValueReader reader,
451
+ out T1 arg1, out T2 arg2, out T3 arg3, out T4 arg4, out T5 arg5, out T6 arg6, out T7 arg7)
452
+ {
453
+ bool success = reader.ValueType == JSValueType.Array;
454
+ arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
455
+ arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
456
+ arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
457
+ arg4 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T4>() : default(T4);
458
+ arg5 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T5>() : default(T5);
459
+ arg6 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T6>() : default(T6);
460
+ arg7 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T7>() : default(T7);
461
+ _ = success && reader.SkipArrayToEnd();
462
+ }
449
463
 
450
- public static void ReadArgs<T1, T2, T3, T4, T5, T6, T7>(this IJSValueReader reader,
451
- out T1 arg1, out T2 arg2, out T3 arg3, out T4 arg4, out T5 arg5, out T6 arg6, out T7 arg7)
452
- {
453
- bool success = reader.ValueType == JSValueType.Array;
454
- arg1 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T1>() : default(T1);
455
- arg2 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T2>() : default(T2);
456
- arg3 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T3>() : default(T3);
457
- arg4 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T4>() : default(T4);
458
- arg5 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T5>() : default(T5);
459
- arg6 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T6>() : default(T6);
460
- arg7 = reader.GetNextArrayItem(ref success) ? reader.ReadValue<T7>() : default(T7);
461
- _ = success && reader.SkipArrayToEnd();
462
- }
464
+ public static void ReadValue<T>(this IJSValueReader reader, out T value)
465
+ {
466
+ JSValueReaderOf<T>.ReadValue(reader, out value);
467
+ }
463
468
 
464
- public static void ReadValue<T>(this IJSValueReader reader, out T value)
465
- {
466
- if (JSValueReaderCodeGen<T>.ReadValue != null)
467
- {
468
- JSValueReaderCodeGen<T>.ReadValue(reader, out value);
469
- }
470
- else
471
- {
472
- JSValueReaderOf<T>.ReadValue(reader, out value);
473
- }
474
- }
469
+ public static T ReadValue<T>(this IJSValueReader reader)
470
+ {
471
+ ReadValue<T>(reader, out T value);
475
472
 
476
- public static T ReadValue<T>(this IJSValueReader reader)
477
- {
478
- ReadValue<T>(reader, out T value);
473
+ return value;
474
+ }
479
475
 
480
- return value;
481
- }
476
+ public static void ReadValue<T>(this JSValue jsValue, out T value)
477
+ {
478
+ ReadValue<T>(new JSValueTreeReader(jsValue), out value);
479
+ }
482
480
 
483
- public static void ReadValue<T>(this JSValue jsValue, out T value)
484
- {
485
- ReadValue<T>(new JSValueTreeReader(jsValue), out value);
486
- }
481
+ public static T ReadValue<T>(this JSValue jsValue)
482
+ {
483
+ return ReadValue<T>(new JSValueTreeReader(jsValue));
484
+ }
487
485
 
488
- public static T ReadValue<T>(this JSValue jsValue)
489
- {
490
- return ReadValue<T>(new JSValueTreeReader(jsValue));
491
- }
486
+ public static ReadValueDelegate<T> GetReadValueDelegate<T>()
487
+ {
488
+ return (ReadValueDelegate<T>)GetReadValueDelegate(typeof(T));
489
+ }
490
+
491
+ public static Delegate GetReadValueDelegate(Type valueType)
492
+ {
493
+ // We want to generate the delegate only once even if we cannot insert it
494
+ // to s_readerDelegates from the first attempt.
495
+ var generatedDelegate = new Lazy<Delegate>(
496
+ () => JSValueReaderGenerator.GenerateReadValueDelegate(valueType));
492
497
 
493
- public static ReadValueDelegate<T> GetReadValueDelegate<T>()
498
+ // We try to add the generated ReadValue delegate in a loop
499
+ // in a lock-free thread-safe way. We do not change existing s_readerDelegates.
500
+ // Instead we clone it, update the clone, then replace the s_readerDelegates with the updated clone.
501
+ while (true)
502
+ {
503
+ var readerDelegates = s_readerDelegates; // Get the local pointer first.
504
+ if (readerDelegates.TryGetValue(valueType, out Delegate readDelegate))
494
505
  {
495
- return (ReadValueDelegate<T>)GetReadValueDelegate(typeof(T));
506
+ return readDelegate;
496
507
  }
497
508
 
498
- public static Delegate GetReadValueDelegate(Type valueType)
509
+ // The ReadValue delegate is not found. Generate it add try to add to the dictionary atomically.
510
+ var newDelegate = generatedDelegate.Value; // Generates delegate when we are here a first time.
511
+
512
+ // This is a quick shortcut in case if s_readerDelegates changed while we generated the value.
513
+ // It helps to avoid cloning dictionary in a number of cases.
514
+ if (readerDelegates != s_readerDelegates) continue;
515
+
516
+ // Clone the dictionary, update the clone, and try to replace the s_readerDelegates.
517
+ var updatedReaderDelegates = new Dictionary<Type, Delegate>(readerDelegates as IDictionary<Type, Delegate>)
499
518
  {
500
- // We want to generate the delegate only once even if we cannot insert it
501
- // to s_readerDelegates from the first attempt.
502
- var generatedDelegate = new Lazy<Delegate>(
503
- () => JSValueReaderGenerator.GenerateReadValueDelegate(valueType));
504
-
505
- // We try to add the generated ReadValue delegate in a loop
506
- // in a lock-free thread-safe way. We do not change existing s_readerDelegates.
507
- // Instead we clone it, update the clone, then replace the s_readerDelegates with the updated clone.
508
- while (true)
509
- {
510
- var readerDelegates = s_readerDelegates; // Get the local pointer first.
511
- if (readerDelegates.TryGetValue(valueType, out Delegate readDelegate))
512
- {
513
- return readDelegate;
514
- }
515
-
516
- // The ReadValue delegate is not found. Generate it add try to add to the dictionary atomically.
517
- var newDelegate = generatedDelegate.Value; // Generates delegate when we are here a first time.
518
-
519
- // This is a quick shortcut in case if s_readerDelegates changed while we generated the value.
520
- // It helps to avoid cloning dictionary in a number of cases.
521
- if (readerDelegates != s_readerDelegates) continue;
522
-
523
- // Clone the dictionary, update the clone, and try to replace the s_readerDelegates.
524
- var updatedReaderDelegates = new Dictionary<Type, Delegate>(readerDelegates as IDictionary<Type, Delegate>)
525
- {
526
- [valueType] = newDelegate
527
- };
528
- Interlocked.CompareExchange(ref s_readerDelegates, updatedReaderDelegates, readerDelegates);
529
- }
530
- }
519
+ [valueType] = newDelegate
520
+ };
521
+ Interlocked.CompareExchange(ref s_readerDelegates, updatedReaderDelegates, readerDelegates);
522
+ }
531
523
  }
524
+ }
532
525
 
533
- // This class provides constant time access to the ReadValue delegate.
534
- static class JSValueReaderOf<T>
535
- {
536
- public static ReadValueDelegate<T> ReadValue = JSValueReader.GetReadValueDelegate<T>();
537
- }
526
+ // This class provides constant time access to the ReadValue delegate.
527
+ public static class JSValueReaderOf<T>
528
+ {
529
+ private static ReadValueDelegate<T> s_readValue = null;
538
530
 
539
- public static class JSValueReaderCodeGen<T>
531
+ public static ReadValueDelegate<T> ReadValue
540
532
  {
541
- public static ReadValueDelegate<T> ReadValue { get; set; }
533
+ get { return s_readValue ?? (s_readValue = JSValueReader.GetReadValueDelegate<T>()); }
534
+ set { s_readValue = value; }
542
535
  }
536
+ }
543
537
  }