react-native-windows 0.68.1 → 0.69.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.
- package/.flowconfig +1 -3
- package/Chakra/ChakraHelpers.cpp +0 -1
- package/Directory.Build.props +3 -0
- package/Directory.Build.targets +1 -1
- package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.windows.js +2 -2
- package/Libraries/Animated/AnimatedImplementation.js +1 -1
- package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/animations/TimingAnimation.js +6 -11
- package/Libraries/Animated/createAnimatedComponent.js +2 -2
- package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
- package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/AppState/AppState.js +1 -1
- package/Libraries/Blob/URL.js +7 -1
- package/Libraries/Components/Button.js +3 -0
- package/Libraries/Components/Button.windows.js +4 -0
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
- package/Libraries/Components/Pressable/Pressable.js +3 -3
- package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
- package/Libraries/Components/ScrollView/ScrollView.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
- package/Libraries/Components/Slider/Slider.js +0 -2
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/Switch.js +11 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
- package/Libraries/Components/TextInput/TextInput.js +1 -8
- package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
- package/Libraries/Components/TextInput/TextInputState.js +10 -2
- package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.windows.js +33 -1
- package/Libraries/Components/View/ViewNativeComponent.js +68 -8
- package/Libraries/Components/View/ViewPropTypes.js +36 -4
- package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +1 -1
- package/Libraries/Core/RawEventEmitter.js +38 -0
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/polyfillPromise.js +32 -0
- package/Libraries/Core/setUpReactDevTools.js +3 -2
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
- package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
- package/Libraries/Events/CustomEvent.js +32 -0
- package/Libraries/Events/EventPolyfill.js +239 -0
- package/Libraries/Image/Image.android.js +0 -6
- package/Libraries/Image/Image.ios.js +0 -6
- package/Libraries/Image/Image.windows.js +2 -8
- package/Libraries/Image/ImageViewNativeComponent.js +18 -3
- package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
- package/Libraries/Inspector/Inspector.js +2 -4
- package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
- package/Libraries/Interaction/InteractionManager.js +1 -12
- package/Libraries/Interaction/TaskQueue.js +5 -4
- package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.js +27 -6
- package/Libraries/Lists/VirtualizedList.js +71 -55
- package/Libraries/Lists/VirtualizedListContext.js +7 -3
- package/Libraries/Lists/VirtualizedSectionList.js +2 -2
- package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
- package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
- package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
- package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
- package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
- package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
- package/Libraries/LogBox/Data/LogBoxData.js +2 -2
- package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
- package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +2 -21
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
- package/Libraries/NativeComponent/ViewConfig.js +4 -4
- package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
- package/Libraries/Network/FormData.js +7 -1
- package/Libraries/Pressability/Pressability.js +115 -46
- package/Libraries/Pressability/Pressability.windows.js +190 -74
- package/Libraries/Pressability/PressabilityDebug.js +5 -9
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
- package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
- package/Libraries/ReactNative/UIManager.js +2 -3
- package/Libraries/ReactNative/renderApplication.js +4 -0
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
- package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
- package/Libraries/StyleSheet/processTransform.windows.js +272 -0
- package/Libraries/Text/Text.js +13 -7
- package/Libraries/Text/Text.windows.js +16 -7
- package/Libraries/Text/TextNativeComponent.js +2 -0
- package/Libraries/Text/TextProps.js +10 -0
- package/Libraries/Types/CoreEventTypes.js +13 -1
- package/Libraries/Types/CoreEventTypes.windows.js +26 -1
- package/Libraries/Utilities/Appearance.js +0 -8
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
- package/Libraries/Utilities/codegenNativeComponent.js +17 -6
- package/Libraries/Utilities/stringifySafe.js +4 -1
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
- package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
- package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +1 -4
- package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
- package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
- package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
- package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
- package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
- package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
- package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
- package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
- package/Microsoft.ReactNative/IViewManager.idl +3 -3
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
- package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
- package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
- package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
- package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +15 -2
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +12 -2
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
- package/Microsoft.ReactNative/RedBox.cpp +3 -2
- package/Microsoft.ReactNative/TurboModulesProvider.cpp +3 -2
- package/Microsoft.ReactNative/TurboModulesProvider.h +4 -1
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +41 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
- package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
- package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
- package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
- package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
- package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
- package/Microsoft.ReactNative/XamlView.h +8 -3
- package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
- package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +19 -14
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +4 -0
- package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
- package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
- package/Microsoft.ReactNative.Cxx/NativeModules.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
- package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
- package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
- package/Mso/activeObject/activeObject.h +2 -2
- package/Mso/compilerAdapters/cppMacros.h +3 -5
- package/Mso/errorCode/errorProvider.h +2 -2
- package/Mso/errorCode/maybe.h +4 -4
- package/Mso/functional/functor.h +6 -6
- package/Mso/functional/functorRef.h +2 -2
- package/Mso/future/details/executor.h +2 -2
- package/Mso/future/details/futureFuncInl.h +4 -4
- package/Mso/future/details/ifuture.h +3 -3
- package/Mso/future/details/maybeInvoker.h +6 -6
- package/Mso/future/details/promiseGroupInl.h +4 -4
- package/Mso/future/details/promiseInl.h +4 -4
- package/Mso/future/details/resultTraits.h +4 -4
- package/Mso/future/details/whenAllInl.h +1 -1
- package/Mso/future/future.h +13 -13
- package/Mso/guid/msoGuidDetails.h +1 -1
- package/Mso/memoryApi/memoryApi.h +13 -7
- package/Mso/motifCpp/gTestAdapter.h +1 -1
- package/Mso/motifCpp/testInfo.h +7 -9
- package/Mso/object/make.h +8 -8
- package/Mso/object/objectRefCount.h +3 -5
- package/Mso/object/objectWithWeakRef.h +10 -14
- package/Mso/object/queryCast.h +4 -4
- package/Mso/object/refCountedObject.h +4 -4
- package/Mso/object/unknownObject.h +7 -7
- package/Mso/platformAdapters/windowsFirst.h +1 -1
- package/Mso/smartPtr/cntPtr.h +8 -8
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +96 -4
- package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
- package/Mso/src/future/futureImpl.h +1 -1
- package/Mso/src/memoryApi/memoryApi.cpp +4 -4
- package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
- package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/React.Cpp.props +13 -0
- package/PropertySheets/WinUI.props +3 -6
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
- package/ReactCommon/Yoga.cpp +1 -1
- package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
- package/Scripts/OfficeReact.Win32.nuspec +1 -3
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
- package/Scripts/copyRNLibraries.js +8 -8
- package/Scripts/just.js +1 -1
- package/Scripts/rnw-dependencies.ps1 +41 -10
- package/Scripts/run-desktop-integration-tests.js +6 -6
- package/Shared/AbiSafe.h +3 -3
- package/Shared/BaseScriptStoreImpl.cpp +1 -1
- package/Shared/CppRuntimeOptions.h +50 -0
- package/Shared/CreateModules.h +4 -0
- package/Shared/DevSupportManager.cpp +34 -33
- package/Shared/DevSupportManager.h +1 -2
- package/Shared/HermesRuntimeHolder.cpp +23 -14
- package/Shared/HermesRuntimeHolder.h +8 -2
- package/Shared/IDevSupportManager.h +1 -2
- package/Shared/InspectorPackagerConnection.cpp +7 -5
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/JSI/ChakraApi.cpp +0 -1
- package/Shared/JSI/ChakraRuntime.cpp +1 -2
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +1 -1
- package/Shared/JSI/RuntimeHolder.h +2 -0
- package/Shared/Modules/HttpModule.cpp +198 -0
- package/Shared/Modules/HttpModule.h +53 -0
- package/Shared/Modules/WebSocketModule.cpp +5 -1
- package/Shared/Modules/WebSocketModule.h +8 -5
- package/Shared/Networking/IHttpResource.h +53 -0
- package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +3 -3
- package/Shared/Networking/OriginPolicy.h +15 -0
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
- package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
- package/Shared/Networking/WinRTHttpResource.cpp +347 -0
- package/Shared/Networking/WinRTHttpResource.h +67 -0
- package/Shared/Networking/WinRTTypes.h +30 -0
- package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +31 -22
- package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
- package/Shared/OInstance.cpp +37 -11
- package/Shared/RuntimeOptions.cpp +93 -15
- package/Shared/RuntimeOptions.h +22 -9
- package/Shared/Shared.vcxitems +126 -5
- package/Shared/Shared.vcxitems.filters +55 -15
- package/Shared/Threading/BatchingQueueThread.cpp +1 -1
- package/Shared/Utils/WinRTConversions.cpp +22 -0
- package/Shared/Utils/WinRTConversions.h +15 -0
- package/Shared/tracing/fbsystrace.h +2 -2
- package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
- package/codegen/react/components/rnwcore/Props.cpp +0 -13
- package/codegen/react/components/rnwcore/Props.h +0 -16
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
- package/include/Shared/cdebug.h +9 -9
- package/index.js +30 -25
- package/index.windows.js +30 -25
- package/jest/preprocessor.js +24 -107
- package/jest/preprocessor_DO_NOT_USE.js +122 -0
- package/metro.config.js +3 -70
- package/package.json +29 -28
- package/react-native.config.js +40 -6
- package/rntypes/index.d.ts +19 -7
- package/stubs/glog/logging.h +1 -1
- package/template/cpp-app/src/App.h +0 -4
- package/template/cs-app/src/App.xaml.cs +0 -5
- package/template/cs-app/src/MainPage.xaml.cs +1 -10
- package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
- package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
- package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
- package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
- package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
- package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
- package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
- package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
- package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
- package/template/metro.devMode.config.js +2 -51
- package/typings-index.js +5 -1
- package/typings-index.js.map +1 -1
- package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
- package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
- package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
- package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
- package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
- package/Libraries/ReactNative/UIManagerInjection.js +0 -15
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
- package/PropertySheets/CppEnablePackageReferences.props +0 -13
- package/Shared/IHttpResource.h +0 -34
- package/Shared/cdebug.cpp +0 -6
- package/include/Shared/ViewManager.h +0 -34
|
@@ -137,6 +137,7 @@ struct NapiJsiRuntime : facebook::jsi::Runtime {
|
|
|
137
137
|
facebook::jsi::PropNameID createPropNameIDFromAscii(const char *str, size_t length) override;
|
|
138
138
|
facebook::jsi::PropNameID createPropNameIDFromUtf8(const uint8_t *utf8, size_t length) override;
|
|
139
139
|
facebook::jsi::PropNameID createPropNameIDFromString(const facebook::jsi::String &str) override;
|
|
140
|
+
facebook::jsi::PropNameID createPropNameIDFromSymbol(const facebook::jsi::Symbol &sym);
|
|
140
141
|
std::string utf8(const facebook::jsi::PropNameID &id) override;
|
|
141
142
|
bool compare(const facebook::jsi::PropNameID &lhs, const facebook::jsi::PropNameID &rhs) override;
|
|
142
143
|
|
|
@@ -190,7 +191,7 @@ struct NapiJsiRuntime : facebook::jsi::Runtime {
|
|
|
190
191
|
facebook::jsi::Function createFunctionFromHostFunction(
|
|
191
192
|
const facebook::jsi::PropNameID &name,
|
|
192
193
|
unsigned int paramCount,
|
|
193
|
-
facebook::jsi::HostFunctionType
|
|
194
|
+
facebook::jsi::HostFunctionType func) override;
|
|
194
195
|
facebook::jsi::Value call(
|
|
195
196
|
const facebook::jsi::Function &func,
|
|
196
197
|
const facebook::jsi::Value &jsThis,
|
|
@@ -475,7 +476,7 @@ struct NapiJsiRuntime : facebook::jsi::Runtime {
|
|
|
475
476
|
void SetProperty(napi_value object, napi_value propertyId, napi_value value, napi_property_attributes attrs) const;
|
|
476
477
|
napi_value CreateArray(size_t length) const;
|
|
477
478
|
void SetElement(napi_value array, uint32_t index, napi_value value) const;
|
|
478
|
-
static napi_value JsiHostFunctionCallback(napi_env env, napi_callback_info info) noexcept;
|
|
479
|
+
static napi_value __cdecl JsiHostFunctionCallback(napi_env env, napi_callback_info info) noexcept;
|
|
479
480
|
napi_value CreateExternalFunction(napi_value name, int32_t paramCount, napi_callback callback, void *callbackData);
|
|
480
481
|
napi_value CreateExternalObject(void *data, napi_finalize finalizeCallback) const;
|
|
481
482
|
template <typename T>
|
|
@@ -711,6 +712,14 @@ PropNameID NapiJsiRuntime::createPropNameIDFromString(const String &str) {
|
|
|
711
712
|
return MakePointer<PropNameID>(uniqueStr);
|
|
712
713
|
}
|
|
713
714
|
|
|
715
|
+
PropNameID NapiJsiRuntime::createPropNameIDFromSymbol(const Symbol &sym) {
|
|
716
|
+
// TODO: Support for symbols through the native API in JSC is very limited.
|
|
717
|
+
// While we could construct a PropNameID here, we would not be able to get a
|
|
718
|
+
// symbol property through the C++ API.
|
|
719
|
+
UNREFERENCED_PARAMETER(sym);
|
|
720
|
+
throw;
|
|
721
|
+
}
|
|
722
|
+
|
|
714
723
|
string NapiJsiRuntime::utf8(const PropNameID &id) {
|
|
715
724
|
EnvScope scope{m_env};
|
|
716
725
|
|
|
@@ -1245,7 +1254,7 @@ size_t NapiJsiRuntime::JsiValueViewArgs::Size() const noexcept {
|
|
|
1245
1254
|
#pragma region PropNameIDView
|
|
1246
1255
|
|
|
1247
1256
|
NapiJsiRuntime::PropNameIDView::PropNameIDView(NapiJsiRuntime *runtime, napi_value propertyId) noexcept
|
|
1248
|
-
: m_propertyId{make<PropNameID>(new
|
|
1257
|
+
: m_propertyId{make<PropNameID>(new(std::addressof(m_pointerStore)) NapiPointerValueView{runtime, propertyId})} {}
|
|
1249
1258
|
|
|
1250
1259
|
NapiJsiRuntime::PropNameIDView::operator PropNameID const &() const noexcept {
|
|
1251
1260
|
return m_propertyId;
|
|
@@ -1702,7 +1711,7 @@ void NapiJsiRuntime::SetElement(napi_value array, uint32_t index, napi_value val
|
|
|
1702
1711
|
}
|
|
1703
1712
|
|
|
1704
1713
|
// The NAPI external function callback used for the JSI host function implementation.
|
|
1705
|
-
/*static*/ napi_value NapiJsiRuntime::JsiHostFunctionCallback(napi_env env, napi_callback_info info) noexcept {
|
|
1714
|
+
/*static*/ napi_value __cdecl NapiJsiRuntime::JsiHostFunctionCallback(napi_env env, napi_callback_info info) noexcept {
|
|
1706
1715
|
HostFunctionWrapper *hostFuncWrapper{};
|
|
1707
1716
|
size_t argc{};
|
|
1708
1717
|
CHECK_NAPI_ELSE_CRASH(
|
|
@@ -1750,15 +1759,11 @@ napi_value NapiJsiRuntime::CreateExternalObject(void *data, napi_finalize finali
|
|
|
1750
1759
|
// Wraps up std::unique_ptr as an external object.
|
|
1751
1760
|
template <typename T>
|
|
1752
1761
|
napi_value NapiJsiRuntime::CreateExternalObject(unique_ptr<T> &&data) const {
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
} else {
|
|
1759
|
-
delete static_cast<T *>(dataToDestroy);
|
|
1760
|
-
}
|
|
1761
|
-
});
|
|
1762
|
+
napi_finalize finalize = [](napi_env /*env*/, void *dataToDestroy, void * /*finalizerHint*/) {
|
|
1763
|
+
// We wrap dataToDestroy in a unique_ptr to avoid calling delete explicitly.
|
|
1764
|
+
unique_ptr<T> dataDeleter{static_cast<T *>(dataToDestroy)};
|
|
1765
|
+
};
|
|
1766
|
+
napi_value object = CreateExternalObject(data.get(), finalize);
|
|
1762
1767
|
|
|
1763
1768
|
// We only call data.release() after the CreateExternalObject succeeds.
|
|
1764
1769
|
// Otherwise, when CreateExternalObject fails and an exception is thrown,
|
|
@@ -1807,7 +1812,7 @@ napi_value NapiJsiRuntime::GetHostObjectProxyHandler() {
|
|
|
1807
1812
|
// Sets Proxy trap method as a pointer to NapiJsiRuntime instance method.
|
|
1808
1813
|
template <napi_value (NapiJsiRuntime::*trapMethod)(span<napi_value>), size_t argCount>
|
|
1809
1814
|
void NapiJsiRuntime::SetProxyTrap(napi_value handler, napi_value propertyName) {
|
|
1810
|
-
|
|
1815
|
+
napi_callback proxyTrap = [](napi_env env, napi_callback_info info) noexcept {
|
|
1811
1816
|
NapiJsiRuntime *runtime{};
|
|
1812
1817
|
napi_value args[argCount]{};
|
|
1813
1818
|
size_t actualArgCount{argCount};
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
|
|
4
4
|
#pragma once
|
|
5
|
+
#ifndef MICROSOFT_REACTNATIVE_JSI_NODEAPIJSIRUNTIME
|
|
6
|
+
#define MICROSOFT_REACTNATIVE_JSI_NODEAPIJSIRUNTIME
|
|
5
7
|
|
|
6
8
|
// JSI
|
|
7
9
|
#include <js_native_ext_api.h>
|
|
@@ -19,3 +21,5 @@ namespace Microsoft::JSI {
|
|
|
19
21
|
std::unique_ptr<facebook::jsi::Runtime> __cdecl MakeNodeApiJsiRuntime(napi_env env) noexcept;
|
|
20
22
|
|
|
21
23
|
} // namespace Microsoft::JSI
|
|
24
|
+
|
|
25
|
+
#endif // MICROSOFT_REACTNATIVE_JSI_NODEAPIJSIRUNTIME
|
|
@@ -90,7 +90,7 @@ void ReadValue(IJSValueReader const &reader, /*out*/ T &value) noexcept;
|
|
|
90
90
|
|
|
91
91
|
bool SkipArrayToEnd(IJSValueReader const &reader) noexcept;
|
|
92
92
|
template <class... TArgs>
|
|
93
|
-
void ReadArgs(IJSValueReader const &reader, /*out*/ TArgs &...
|
|
93
|
+
void ReadArgs(IJSValueReader const &reader, /*out*/ TArgs &...args) noexcept;
|
|
94
94
|
|
|
95
95
|
//===========================================================================
|
|
96
96
|
// IJSValueReader extensions implementation
|
|
@@ -432,7 +432,7 @@ inline bool SkipArrayToEnd(IJSValueReader const &reader) noexcept {
|
|
|
432
432
|
}
|
|
433
433
|
|
|
434
434
|
template <class... TArgs>
|
|
435
|
-
inline void ReadArgs(IJSValueReader const &reader, /*out*/ TArgs &...
|
|
435
|
+
inline void ReadArgs(IJSValueReader const &reader, /*out*/ TArgs &...args) noexcept {
|
|
436
436
|
// Read as many arguments as we can or return default values.
|
|
437
437
|
bool success = reader.ValueType() == JSValueType::Array;
|
|
438
438
|
((success = success && reader.GetNextArrayItem(), args = success ? ReadValue<TArgs>(reader) : TArgs{}), ...);
|
|
@@ -64,10 +64,10 @@ template <class T>
|
|
|
64
64
|
void WriteProperties(IJSValueWriter const &writer, T const &value) noexcept;
|
|
65
65
|
|
|
66
66
|
template <class... TArgs>
|
|
67
|
-
void WriteArgs(IJSValueWriter const &writer, TArgs const &...
|
|
67
|
+
void WriteArgs(IJSValueWriter const &writer, TArgs const &...args) noexcept;
|
|
68
68
|
|
|
69
69
|
template <class... TArgs>
|
|
70
|
-
JSValueArgWriter MakeJSValueArgWriter(TArgs &&...
|
|
70
|
+
JSValueArgWriter MakeJSValueArgWriter(TArgs &&...args) noexcept;
|
|
71
71
|
|
|
72
72
|
IJSValueWriter MakeJSValueTreeWriter() noexcept;
|
|
73
73
|
|
|
@@ -264,7 +264,7 @@ inline void WriteProperties(IJSValueWriter const &writer, T const &value) noexce
|
|
|
264
264
|
}
|
|
265
265
|
|
|
266
266
|
template <class... TArgs>
|
|
267
|
-
inline void WriteArgs(IJSValueWriter const &writer, TArgs const &...
|
|
267
|
+
inline void WriteArgs(IJSValueWriter const &writer, TArgs const &...args) noexcept {
|
|
268
268
|
writer.WriteArrayBegin();
|
|
269
269
|
(WriteValue(writer, args), ...);
|
|
270
270
|
writer.WriteArrayEnd();
|
|
@@ -276,7 +276,7 @@ inline JSValueArgWriter MakeJSValueArgWriter(T &&argWriter) noexcept {
|
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
template <class... TArgs>
|
|
279
|
-
inline JSValueArgWriter MakeJSValueArgWriter(TArgs &&...
|
|
279
|
+
inline JSValueArgWriter MakeJSValueArgWriter(TArgs &&...args) noexcept {
|
|
280
280
|
return [&args...](IJSValueWriter const &writer) noexcept { WriteArgs(writer, args...); };
|
|
281
281
|
}
|
|
282
282
|
|
|
@@ -286,7 +286,7 @@ inline JSValueArgWriter MakeJSValueWriter(T &&argWriter) noexcept {
|
|
|
286
286
|
}
|
|
287
287
|
|
|
288
288
|
template <class... TArgs>
|
|
289
|
-
inline JSValueArgWriter MakeJSValueWriter(TArgs &&...
|
|
289
|
+
inline JSValueArgWriter MakeJSValueWriter(TArgs &&...args) noexcept {
|
|
290
290
|
return [&args...](IJSValueWriter const &[[maybe_unused]] writer) noexcept { (WriteValue(writer, args), ...); };
|
|
291
291
|
}
|
|
292
292
|
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
<CallInvoker_SourcePath Condition="'$(CallInvoker_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)ReactCommon\CallInvoker.h')">$(MSBuildThisFileDirectory)</CallInvoker_SourcePath>
|
|
13
13
|
<TurboModule_SourcePath Condition="'$(TurboModule_SourcePath)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\ReactCommon\react\nativemodule\core</TurboModule_SourcePath>
|
|
14
14
|
<TurboModule_SourcePath Condition="'$(TurboModule_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)ReactCommon\TurboModule.h')">$(MSBuildThisFileDirectory)</TurboModule_SourcePath>
|
|
15
|
+
<Bridging_SourcePath Condition="'$(Bridging_SourcePath)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\ReactCommon\react\bridging</Bridging_SourcePath>
|
|
16
|
+
<Bridging_SourcePath Condition="'$(Bridging_SourcePath)' == '' AND Exists('$(MSBuildThisFileDirectory)ReactCommon\TurboModule.h')">$(MSBuildThisFileDirectory)</Bridging_SourcePath>
|
|
15
17
|
</PropertyGroup>
|
|
16
18
|
<ItemDefinitionGroup>
|
|
17
19
|
<ClCompile>
|
|
@@ -20,6 +22,7 @@
|
|
|
20
22
|
$(JSI_SourcePath);
|
|
21
23
|
$(CallInvoker_SourcePath);
|
|
22
24
|
$(TurboModule_SourcePath);
|
|
25
|
+
$(Bridging_SourcePath);
|
|
23
26
|
%(AdditionalIncludeDirectories)
|
|
24
27
|
</AdditionalIncludeDirectories>
|
|
25
28
|
</ClCompile>
|
|
@@ -40,6 +43,7 @@
|
|
|
40
43
|
<ClInclude Include="$(CallInvoker_SourcePath)\ReactCommon\CallInvoker.h" />
|
|
41
44
|
<ClInclude Include="$(MSBuildThisFileDirectory)XamlUtils.h" />
|
|
42
45
|
<ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\LongLivedObject.h" />
|
|
46
|
+
<ClInclude Include="$(Bridging_SourcePath)\CallbackWrapper.h" />
|
|
43
47
|
<ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\TurboModule.h" />
|
|
44
48
|
<ClInclude Include="$(TurboModule_SourcePath)\ReactCommon\TurboModuleUtils.h" />
|
|
45
49
|
<ClInclude Include="$(MSBuildThisFileDirectory)CppWinRTIncludes.h" />
|
|
@@ -104,7 +108,7 @@
|
|
|
104
108
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
105
109
|
<DisableSpecificWarnings>%(DisableSpecificWarnings);4100</DisableSpecificWarnings>
|
|
106
110
|
</ClCompile>
|
|
107
|
-
<ClCompile Include="$(TurboModule_SourcePath)\
|
|
111
|
+
<ClCompile Include="$(TurboModule_SourcePath)\..\..\bridging\LongLivedObject.cpp">
|
|
108
112
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
109
113
|
<DisableSpecificWarnings>%(DisableSpecificWarnings);4100</DisableSpecificWarnings>
|
|
110
114
|
</ClCompile>
|
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
<ClCompile Include="$(TurboModule_SourcePath)\ReactCommon\TurboModule.cpp">
|
|
19
19
|
<Filter>TurboModule</Filter>
|
|
20
20
|
</ClCompile>
|
|
21
|
-
<ClCompile Include="$(TurboModule_SourcePath)\ReactCommon\LongLivedObject.cpp">
|
|
22
|
-
<Filter>TurboModule</Filter>
|
|
23
|
-
</ClCompile>
|
|
24
21
|
<ClCompile Include="$(TurboModule_SourcePath)\ReactCommon\TurboModuleUtils.cpp">
|
|
25
22
|
<Filter>TurboModule</Filter>
|
|
26
23
|
</ClCompile>
|
|
@@ -30,6 +27,7 @@
|
|
|
30
27
|
<ClCompile Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.cpp">
|
|
31
28
|
<Filter>JSI</Filter>
|
|
32
29
|
</ClCompile>
|
|
30
|
+
<ClCompile Include="$(TurboModule_SourcePath)\..\..\bridging\LongLivedObject.cpp" />
|
|
33
31
|
</ItemGroup>
|
|
34
32
|
<ItemGroup>
|
|
35
33
|
<ClInclude Include="$(MSBuildThisFileDirectory)Crash.h" />
|
|
@@ -152,6 +150,7 @@
|
|
|
152
150
|
<ClInclude Include="$(MSBuildThisFileDirectory)JSI\NodeApiJsiRuntime.h">
|
|
153
151
|
<Filter>JSI</Filter>
|
|
154
152
|
</ClInclude>
|
|
153
|
+
<ClInclude Include="$(Bridging_SourcePath)\CallbackWrapper.h" />
|
|
155
154
|
</ItemGroup>
|
|
156
155
|
<ItemGroup>
|
|
157
156
|
<Filter Include="JSI">
|
|
@@ -280,7 +280,7 @@ struct IsPromise<ReactPromise<T>> : std::true_type {};
|
|
|
280
280
|
template <class TArgsTuple>
|
|
281
281
|
constexpr size_t GetPromiseCount() noexcept {
|
|
282
282
|
if constexpr (
|
|
283
|
-
std::tuple_size_v<TArgsTuple
|
|
283
|
+
std::tuple_size_v < TArgsTuple >> 0 &&
|
|
284
284
|
IsPromise<TupleElementOrVoid<std::tuple_size_v<TArgsTuple> - 1, TArgsTuple>>::value) {
|
|
285
285
|
return 1;
|
|
286
286
|
} else {
|
|
@@ -1091,7 +1091,7 @@ template <class TModule, int I, class TMethodSpec>
|
|
|
1091
1091
|
struct ReactMethodVerifier {
|
|
1092
1092
|
static constexpr bool Verify() noexcept {
|
|
1093
1093
|
ReactMethodVerifier verifier{};
|
|
1094
|
-
ReactMemberInfoIterator<TModule>{}.GetMemberInfo<I>(verifier);
|
|
1094
|
+
ReactMemberInfoIterator<TModule>{}.template GetMemberInfo<I>(verifier);
|
|
1095
1095
|
return verifier.m_result;
|
|
1096
1096
|
}
|
|
1097
1097
|
|
|
@@ -1109,7 +1109,7 @@ template <class TModule, int I, class TMethodSpec>
|
|
|
1109
1109
|
struct ReactSyncMethodVerifier {
|
|
1110
1110
|
static constexpr bool Verify() noexcept {
|
|
1111
1111
|
ReactSyncMethodVerifier verifier{};
|
|
1112
|
-
ReactMemberInfoIterator<TModule>{}.GetMemberInfo<I>(verifier);
|
|
1112
|
+
ReactMemberInfoIterator<TModule>{}.template GetMemberInfo<I>(verifier);
|
|
1113
1113
|
return verifier.m_result;
|
|
1114
1114
|
}
|
|
1115
1115
|
|
|
@@ -53,7 +53,7 @@ struct ReactContext {
|
|
|
53
53
|
// Call methodName JS function of module with moduleName.
|
|
54
54
|
// args are either function arguments or a single lambda with 'IJSValueWriter const&' argument.
|
|
55
55
|
template <class... TArgs>
|
|
56
|
-
void CallJSFunction(std::wstring_view moduleName, std::wstring_view methodName, TArgs &&...
|
|
56
|
+
void CallJSFunction(std::wstring_view moduleName, std::wstring_view methodName, TArgs &&...args) const noexcept {
|
|
57
57
|
m_handle.CallJSFunction(moduleName, methodName, MakeJSValueArgWriter(std::forward<TArgs>(args)...));
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -61,7 +61,7 @@ struct ReactContext {
|
|
|
61
61
|
// Call eventName JS event of module with eventEmitterName.
|
|
62
62
|
// args are either function arguments or a single lambda with 'IJSValueWriter const&' argument.
|
|
63
63
|
template <class... TArgs>
|
|
64
|
-
void EmitJSEvent(std::wstring_view eventEmitterName, std::wstring_view eventName, TArgs &&...
|
|
64
|
+
void EmitJSEvent(std::wstring_view eventEmitterName, std::wstring_view eventName, TArgs &&...args) const noexcept {
|
|
65
65
|
m_handle.EmitJSEvent(eventEmitterName, eventName, MakeJSValueWriter(std::forward<TArgs>(args)...));
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -69,7 +69,7 @@ struct ReactContext {
|
|
|
69
69
|
// Dispatch eventName event to the view.
|
|
70
70
|
// args are either function arguments or a single lambda with 'IJSValueWriter const&' argument.
|
|
71
71
|
template <class... TArgs>
|
|
72
|
-
void DispatchEvent(xaml::FrameworkElement const &view, std::wstring_view eventName, TArgs &&...
|
|
72
|
+
void DispatchEvent(xaml::FrameworkElement const &view, std::wstring_view eventName, TArgs &&...args) const noexcept {
|
|
73
73
|
XamlUIService::FromContext(m_handle).DispatchEvent(
|
|
74
74
|
view, eventName, MakeJSValueWriter(std::forward<TArgs>(args)...));
|
|
75
75
|
}
|
|
@@ -22,7 +22,7 @@ template <class T>
|
|
|
22
22
|
struct ReactNonAbiValue : implements<ReactNonAbiValue<T>, IReactNonAbiValue> {
|
|
23
23
|
// Create ReactNonAbiValue and construct the wrapped value.
|
|
24
24
|
template <class... TArgs>
|
|
25
|
-
ReactNonAbiValue(TArgs &&...
|
|
25
|
+
ReactNonAbiValue(TArgs &&...args) noexcept : m_value{std::forward<TArgs>(args)...} {}
|
|
26
26
|
|
|
27
27
|
// Get a pointer to the wrapped value.
|
|
28
28
|
int64_t GetPtr() const noexcept {
|
|
@@ -47,7 +47,7 @@ template <class T>
|
|
|
47
47
|
struct ReactNonAbiValue : Windows::Foundation::IInspectable {
|
|
48
48
|
// Create a new instance of implementation::ReactNonAbiValue with args and keep a ref-counted pointer to it.
|
|
49
49
|
template <class... TArgs>
|
|
50
|
-
ReactNonAbiValue(std::in_place_t, TArgs &&...
|
|
50
|
+
ReactNonAbiValue(std::in_place_t, TArgs &&...args) noexcept
|
|
51
51
|
: IInspectable{make<implementation::ReactNonAbiValue<T>>(std::forward<TArgs>(args)...)} {}
|
|
52
52
|
|
|
53
53
|
// Create an empty ReactNonAbiValue.
|
|
@@ -100,7 +100,7 @@ struct ReactNonAbiValue : Windows::Foundation::IInspectable {
|
|
|
100
100
|
// Call the call operator() for the stored value.
|
|
101
101
|
// Crash the app if ReactNonAbiValue is empty.
|
|
102
102
|
template <class... TArgs>
|
|
103
|
-
auto operator()(TArgs &&...
|
|
103
|
+
auto operator()(TArgs &&...args) const {
|
|
104
104
|
return (*GetPtr())(std::forward<TArgs>(args)...);
|
|
105
105
|
}
|
|
106
106
|
};
|
|
@@ -8,16 +8,55 @@
|
|
|
8
8
|
|
|
9
9
|
#include "CppWinRTIncludes.h"
|
|
10
10
|
|
|
11
|
+
extern "C" {
|
|
12
|
+
HMODULE
|
|
13
|
+
WINAPI
|
|
14
|
+
WINRT_IMPL_GetModuleHandleW(_In_opt_ LPCWSTR lpModuleName);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
#ifndef WINRT_IMPL_LINK
|
|
18
|
+
#ifdef _M_HYBRID
|
|
19
|
+
#define WINRT_IMPL_LINK(function, count) \
|
|
20
|
+
__pragma(comment(linker, "/alternatename:#WINRT_IMPL_" #function "@" #count "=#" #function "@" #count))
|
|
21
|
+
#elif _M_ARM64EC
|
|
22
|
+
#define WINRT_IMPL_LINK(function, count) \
|
|
23
|
+
__pragma(comment(linker, "/alternatename:#WINRT_IMPL_" #function "=#" #function))
|
|
24
|
+
#elif _M_IX86
|
|
25
|
+
#define WINRT_IMPL_LINK(function, count) \
|
|
26
|
+
__pragma(comment(linker, "/alternatename:_WINRT_IMPL_" #function "@" #count "=_" #function "@" #count))
|
|
27
|
+
#else
|
|
28
|
+
#define WINRT_IMPL_LINK(function, count) __pragma(comment(linker, "/alternatename:WINRT_IMPL_" #function "=" #function))
|
|
29
|
+
#endif
|
|
30
|
+
#endif
|
|
31
|
+
WINRT_IMPL_LINK(GetModuleHandleW, 4);
|
|
32
|
+
#undef WINRT_IMPL_LINK
|
|
33
|
+
|
|
11
34
|
namespace XAML_CPPWINRT_NAMESPACE {
|
|
12
35
|
|
|
13
36
|
// Return Application::Current() when it is present or nullptr otherwise.
|
|
14
37
|
// It does not throw exception as Application::Current() does.
|
|
15
38
|
inline Application TryGetCurrentApplication() noexcept {
|
|
16
|
-
|
|
17
|
-
auto
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
39
|
+
#ifndef USE_WINUI3
|
|
40
|
+
constexpr auto xamlDll = L"Windows.UI.Xaml.dll";
|
|
41
|
+
#else
|
|
42
|
+
constexpr auto xamlDll = L"Microsoft.UI.Xaml.dll";
|
|
43
|
+
#endif
|
|
44
|
+
|
|
45
|
+
if (auto xamlIsLoaded = WINRT_IMPL_GetModuleHandleW(xamlDll)) {
|
|
46
|
+
auto applicationStatics = get_activation_factory<IApplicationStatics>(name_of<Application>());
|
|
47
|
+
auto abiApplicationStatics = static_cast<impl::abi_t<IApplicationStatics> *>(get_abi(applicationStatics));
|
|
48
|
+
void *value{};
|
|
49
|
+
abiApplicationStatics->get_Current(&value);
|
|
50
|
+
return Application{value, take_ownership_from_abi};
|
|
51
|
+
} else {
|
|
52
|
+
// If we don't have XAML loaded, we are not a XAML app
|
|
53
|
+
return nullptr;
|
|
54
|
+
}
|
|
21
55
|
}
|
|
22
56
|
|
|
57
|
+
// Using Windows::UI::ColorHelper causes the process to load Windows.UI.Xaml.dll which is not needed just to fill a
|
|
58
|
+
// Color struct
|
|
59
|
+
inline winrt::Windows::UI::Color FromArgb(uint8_t a, uint8_t r, uint8_t g, uint8_t b) {
|
|
60
|
+
return winrt::Windows::UI::Color{a, r, g, b};
|
|
61
|
+
}
|
|
23
62
|
} // namespace XAML_CPPWINRT_NAMESPACE
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
|
32
32
|
<PlatformTarget>x86</PlatformTarget>
|
|
33
33
|
<DebugSymbols>true</DebugSymbols>
|
|
34
|
-
<OutputPath>bin\x86\Debug\</OutputPath>
|
|
35
34
|
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
36
35
|
<DebugType>full</DebugType>
|
|
37
36
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
@@ -39,7 +38,6 @@
|
|
|
39
38
|
</PropertyGroup>
|
|
40
39
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
|
41
40
|
<PlatformTarget>x86</PlatformTarget>
|
|
42
|
-
<OutputPath>bin\x86\Release\</OutputPath>
|
|
43
41
|
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
44
42
|
<Optimize>true</Optimize>
|
|
45
43
|
<DebugType>pdbonly</DebugType>
|
|
@@ -49,7 +47,6 @@
|
|
|
49
47
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
|
|
50
48
|
<PlatformTarget>ARM64</PlatformTarget>
|
|
51
49
|
<DebugSymbols>true</DebugSymbols>
|
|
52
|
-
<OutputPath>bin\ARM64\Debug\</OutputPath>
|
|
53
50
|
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
54
51
|
<DebugType>full</DebugType>
|
|
55
52
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
@@ -57,7 +54,6 @@
|
|
|
57
54
|
</PropertyGroup>
|
|
58
55
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'">
|
|
59
56
|
<PlatformTarget>ARM64</PlatformTarget>
|
|
60
|
-
<OutputPath>bin\ARM64\Release\</OutputPath>
|
|
61
57
|
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
62
58
|
<Optimize>true</Optimize>
|
|
63
59
|
<DebugType>pdbonly</DebugType>
|
|
@@ -67,7 +63,6 @@
|
|
|
67
63
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
|
68
64
|
<PlatformTarget>x64</PlatformTarget>
|
|
69
65
|
<DebugSymbols>true</DebugSymbols>
|
|
70
|
-
<OutputPath>bin\x64\Debug\</OutputPath>
|
|
71
66
|
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
72
67
|
<DebugType>full</DebugType>
|
|
73
68
|
<UseVSHostingProcess>false</UseVSHostingProcess>
|
|
@@ -75,7 +70,6 @@
|
|
|
75
70
|
</PropertyGroup>
|
|
76
71
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
|
77
72
|
<PlatformTarget>x64</PlatformTarget>
|
|
78
|
-
<OutputPath>bin\x64\Release\</OutputPath>
|
|
79
73
|
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
|
80
74
|
<Optimize>true</Optimize>
|
|
81
75
|
<DebugType>pdbonly</DebugType>
|
|
@@ -56,7 +56,7 @@ struct ActiveObjectMakePolicy {
|
|
|
56
56
|
static const bool IsNoExcept{true};
|
|
57
57
|
|
|
58
58
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
59
|
-
static void Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
59
|
+
static void Make(TMemoryGuard &memoryGuard, TArgs &&...args) noexcept;
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
//! Custom deleter to call Finalize() or FinalizeSync() from the associated queue.
|
|
@@ -159,7 +159,7 @@ struct ActiveObjectBase : IUnknown {
|
|
|
159
159
|
//=============================================================================================
|
|
160
160
|
|
|
161
161
|
template <typename T, typename TMemoryGuard, typename... TArgs>
|
|
162
|
-
/*static*/ void ActiveObjectMakePolicy::Make(TMemoryGuard &memoryGuard, TArgs &&...
|
|
162
|
+
/*static*/ void ActiveObjectMakePolicy::Make(TMemoryGuard &memoryGuard, TArgs &&...args) noexcept {
|
|
163
163
|
memoryGuard.Obj = ::new (memoryGuard.ObjMemory) T{std::forward<TArgs>(args)...};
|
|
164
164
|
memoryGuard.ObjMemory = nullptr; // Memory is now controlled by the object. Set to null to avoid memory destruction.
|
|
165
165
|
|
|
@@ -29,11 +29,9 @@
|
|
|
29
29
|
Make the macro act like a statement.
|
|
30
30
|
*/
|
|
31
31
|
#ifndef __GNUC__
|
|
32
|
-
#define Statement(x)
|
|
33
|
-
__pragma(warning(push)) __pragma(warning(disable : 4127 25037)) do { \
|
|
34
|
-
|
|
35
|
-
} \
|
|
36
|
-
while (0) \
|
|
32
|
+
#define Statement(x) \
|
|
33
|
+
__pragma(warning(push)) __pragma(warning(disable : 4127 25037)) do { x; } \
|
|
34
|
+
while (0) \
|
|
37
35
|
__pragma(warning(pop))
|
|
38
36
|
#else
|
|
39
37
|
#define Statement(x) \
|
|
@@ -28,7 +28,7 @@ class ErrorProvider final : public IErrorProvider {
|
|
|
28
28
|
ErrorCode MakeErrorCode(const T &errorInfo) const noexcept;
|
|
29
29
|
|
|
30
30
|
template <class TValue, class... TArgs>
|
|
31
|
-
Maybe<TValue> MakeMaybe(TArgs &&...
|
|
31
|
+
Maybe<TValue> MakeMaybe(TArgs &&...errorArgs) const noexcept;
|
|
32
32
|
|
|
33
33
|
// TODO: deprecate this method in favor of TryGetErrorInfo
|
|
34
34
|
bool IsOwnedErrorCode(const ErrorCode &errorCode) const noexcept;
|
|
@@ -87,7 +87,7 @@ ErrorCode ErrorProvider<T, GuidToken>::MakeErrorCode(const T &errorInfo) const n
|
|
|
87
87
|
|
|
88
88
|
template <class T, class GuidToken>
|
|
89
89
|
template <class TValue, class... TArgs>
|
|
90
|
-
Maybe<TValue> ErrorProvider<T, GuidToken>::MakeMaybe(TArgs &&...
|
|
90
|
+
Maybe<TValue> ErrorProvider<T, GuidToken>::MakeMaybe(TArgs &&...errorArgs) const noexcept {
|
|
91
91
|
return Mso::Maybe<TValue>(MakeErrorCode(T(std::forward<TArgs>(errorArgs)...)));
|
|
92
92
|
}
|
|
93
93
|
|
package/Mso/errorCode/maybe.h
CHANGED
|
@@ -46,14 +46,14 @@ class Maybe {
|
|
|
46
46
|
_Allow_implicit_ctor_ Maybe(T &&value) noexcept;
|
|
47
47
|
|
|
48
48
|
template <class... TArgs>
|
|
49
|
-
explicit Maybe(InPlaceTag, TArgs &&...
|
|
49
|
+
explicit Maybe(InPlaceTag, TArgs &&...args) noexcept;
|
|
50
50
|
|
|
51
51
|
template <
|
|
52
52
|
class TItem,
|
|
53
53
|
class... TArgs,
|
|
54
54
|
class TDummy =
|
|
55
55
|
typename std::enable_if<std::is_constructible<T, std::initializer_list<TItem> &, TArgs &&...>::value>::type>
|
|
56
|
-
explicit Maybe(InPlaceTag, std::initializer_list<TItem> il, TArgs &&...
|
|
56
|
+
explicit Maybe(InPlaceTag, std::initializer_list<TItem> il, TArgs &&...args) noexcept;
|
|
57
57
|
|
|
58
58
|
_Allow_implicit_ctor_ Maybe(const ErrorCode &error) noexcept;
|
|
59
59
|
_Allow_implicit_ctor_ Maybe(ErrorCode &&error) noexcept;
|
|
@@ -163,13 +163,13 @@ Maybe<T>::Maybe(T &&value) noexcept {
|
|
|
163
163
|
|
|
164
164
|
template <class T>
|
|
165
165
|
template <class... TArgs>
|
|
166
|
-
Maybe<T>::Maybe(InPlaceTag, TArgs &&...
|
|
166
|
+
Maybe<T>::Maybe(InPlaceTag, TArgs &&...args) noexcept {
|
|
167
167
|
::new (reinterpret_cast<T *>(&reinterpret_cast<char &>(m_value))) T(std::forward<TArgs>(args)...);
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
template <class T>
|
|
171
171
|
template <class TItem, class... TArgs, class TDummy>
|
|
172
|
-
Maybe<T>::Maybe(InPlaceTag, std::initializer_list<TItem> il, TArgs &&...
|
|
172
|
+
Maybe<T>::Maybe(InPlaceTag, std::initializer_list<TItem> il, TArgs &&...args) noexcept {
|
|
173
173
|
::new (reinterpret_cast<T *>(&reinterpret_cast<char &>(m_value))) T(il, std::forward<TArgs>(args)...);
|
|
174
174
|
}
|
|
175
175
|
|
package/Mso/functional/functor.h
CHANGED
|
@@ -161,7 +161,7 @@ class FunctionObjectWrapper final
|
|
|
161
161
|
template <typename T>
|
|
162
162
|
FunctionObjectWrapper(T &&func) noexcept : m_func(std::forward<T>(func)) {}
|
|
163
163
|
|
|
164
|
-
virtual TResult Invoke(TArgs &&...
|
|
164
|
+
virtual TResult Invoke(TArgs &&...args) noexcept override {
|
|
165
165
|
return m_func(std::forward<TArgs>(args)...);
|
|
166
166
|
}
|
|
167
167
|
|
|
@@ -180,7 +180,7 @@ class FunctionObjectWrapperThrow final
|
|
|
180
180
|
template <typename T>
|
|
181
181
|
FunctionObjectWrapperThrow(T &&func) noexcept : m_func(std::forward<T>(func)) {}
|
|
182
182
|
|
|
183
|
-
virtual TResult Invoke(TArgs &&...
|
|
183
|
+
virtual TResult Invoke(TArgs &&...args) override {
|
|
184
184
|
return m_func(std::forward<TArgs>(args)...);
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -199,7 +199,7 @@ class FunctionPointerWrapper final : public ConstexprFunctorBase<Mso::IFunctor<T
|
|
|
199
199
|
public:
|
|
200
200
|
constexpr FunctionPointerWrapper(TFunc func) noexcept : m_func(func) {}
|
|
201
201
|
|
|
202
|
-
TResult Invoke(TArgs &&...
|
|
202
|
+
TResult Invoke(TArgs &&...args) noexcept override {
|
|
203
203
|
return (*m_func)(std::forward<TArgs>(args)...);
|
|
204
204
|
}
|
|
205
205
|
|
|
@@ -216,7 +216,7 @@ class FunctionPointerWrapperThrow final : public ConstexprFunctorBase<Mso::IFunc
|
|
|
216
216
|
public:
|
|
217
217
|
constexpr FunctionPointerWrapperThrow(TFunc func) noexcept : m_func(func) {}
|
|
218
218
|
|
|
219
|
-
TResult Invoke(TArgs &&...
|
|
219
|
+
TResult Invoke(TArgs &&...args) override {
|
|
220
220
|
return (*m_func)(std::forward<TArgs>(args)...);
|
|
221
221
|
}
|
|
222
222
|
|
|
@@ -234,7 +234,7 @@ class StatelessFunctorWrapper final : public ConstexprFunctorBase<Mso::IFunctor<
|
|
|
234
234
|
public:
|
|
235
235
|
constexpr StatelessFunctorWrapper(TFunc &func) noexcept : m_func(func) {}
|
|
236
236
|
|
|
237
|
-
TResult Invoke(TArgs &&...
|
|
237
|
+
TResult Invoke(TArgs &&...args) noexcept override {
|
|
238
238
|
return m_func(std::forward<TArgs>(args)...);
|
|
239
239
|
}
|
|
240
240
|
|
|
@@ -248,7 +248,7 @@ class StatelessFunctorWrapperThrow final : public ConstexprFunctorBase<Mso::IFun
|
|
|
248
248
|
public:
|
|
249
249
|
constexpr StatelessFunctorWrapperThrow(TFunc &func) noexcept : m_func(func) {}
|
|
250
250
|
|
|
251
|
-
TResult Invoke(TArgs &&...
|
|
251
|
+
TResult Invoke(TArgs &&...args) override {
|
|
252
252
|
return m_func(std::forward<TArgs>(args)...);
|
|
253
253
|
}
|
|
254
254
|
|
|
@@ -178,7 +178,7 @@ class FunctorRef<TResult(TArgs...)>
|
|
|
178
178
|
FunctorRefWrapper &operator=(FunctorRefWrapper const &) = delete;
|
|
179
179
|
~FunctorRefWrapper() = delete;
|
|
180
180
|
|
|
181
|
-
TResult Invoke(TArgs &&...
|
|
181
|
+
TResult Invoke(TArgs &&...args) const noexcept override {
|
|
182
182
|
// If you see OACR warning "Nothrow Func Throws" here then it means that the
|
|
183
183
|
// provided lambda or function object's operator() are not marked as noexcept.
|
|
184
184
|
|
|
@@ -269,7 +269,7 @@ class FunctorRefThrow<TResult(TArgs...)> final {
|
|
|
269
269
|
FunctorRefThrowWrapper &operator=(FunctorRefThrowWrapper const &) = delete;
|
|
270
270
|
~FunctorRefThrowWrapper() = delete;
|
|
271
271
|
|
|
272
|
-
TResult Invoke(TArgs &&...
|
|
272
|
+
TResult Invoke(TArgs &&...args) const override {
|
|
273
273
|
OACR_POSSIBLE_THROW;
|
|
274
274
|
// We use const_cast to enable support for mutable lambdas
|
|
275
275
|
return (*const_cast<FunctorRefThrowWrapper *>(this)->m_func)(std::forward<TArgs>(args)...);
|
|
@@ -197,7 +197,7 @@ namespace Internal {
|
|
|
197
197
|
|
|
198
198
|
struct ExecutorInvoker {
|
|
199
199
|
template <class TCallback, class... TArgs>
|
|
200
|
-
auto Invoke(TCallback &&callback, TArgs &&...
|
|
200
|
+
auto Invoke(TCallback &&callback, TArgs &&...args) noexcept -> decltype(callback(std::forward<TArgs>(args)...)) {
|
|
201
201
|
UNREFERENCED_OACR(this);
|
|
202
202
|
static_assert(noexcept(callback(std::forward<TArgs>(args)...)), "Callback must not throw.");
|
|
203
203
|
return callback(std::forward<TArgs>(args)...);
|
|
@@ -209,7 +209,7 @@ struct ThrowingExecutor : TBaseExecutor {
|
|
|
209
209
|
using TBaseExecutor::TBaseExecutor;
|
|
210
210
|
|
|
211
211
|
template <class TCallback, class... TArgs>
|
|
212
|
-
auto Invoke(TCallback &&callback, TArgs &&...
|
|
212
|
+
auto Invoke(TCallback &&callback, TArgs &&...args) noexcept {
|
|
213
213
|
using TResult = decltype(callback(std::forward<TArgs>(args)...));
|
|
214
214
|
constexpr const bool isNoExcept = noexcept(callback(std::forward<TArgs>(args)...));
|
|
215
215
|
return Mso::Futures::MaybeInvoker<TResult, isNoExcept>::Invoke(
|
|
@@ -32,14 +32,14 @@ inline Future<void> MakeCompletedFuture() noexcept {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
template <class T, class... TArgs>
|
|
35
|
-
inline Future<T> MakeCompletedFutureEmplaced(TArgs &&...
|
|
35
|
+
inline Future<T> MakeCompletedFutureEmplaced(TArgs &&...args) noexcept {
|
|
36
36
|
Promise<T> promise;
|
|
37
37
|
promise.EmplaceValue(std::forward<TArgs>(args)...);
|
|
38
38
|
return promise.AsFuture();
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
template <class T, class U, class... TArgs>
|
|
42
|
-
inline Future<T> MakeCompletedFutureEmplaced(std::initializer_list<U> il, TArgs &&...
|
|
42
|
+
inline Future<T> MakeCompletedFutureEmplaced(std::initializer_list<U> il, TArgs &&...args) noexcept {
|
|
43
43
|
Promise<T> promise;
|
|
44
44
|
promise.EmplaceValue(il, std::forward<TArgs>(args)...);
|
|
45
45
|
return promise.AsFuture();
|
|
@@ -59,14 +59,14 @@ inline Future<void> MakeSucceededFuture() noexcept {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
template <class T, class... TArgs>
|
|
62
|
-
inline Future<T> MakeSucceededFutureEmplaced(TArgs &&...
|
|
62
|
+
inline Future<T> MakeSucceededFutureEmplaced(TArgs &&...args) noexcept {
|
|
63
63
|
Promise<T> promise;
|
|
64
64
|
promise.EmplaceValue(std::forward<TArgs>(args)...);
|
|
65
65
|
return promise.AsFuture();
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
template <class T, class U, class... TArgs>
|
|
69
|
-
inline Future<T> MakeSucceededFutureEmplaced(std::initializer_list<U> il, TArgs &&...
|
|
69
|
+
inline Future<T> MakeSucceededFutureEmplaced(std::initializer_list<U> il, TArgs &&...args) noexcept {
|
|
70
70
|
Promise<T> promise;
|
|
71
71
|
promise.EmplaceValue(il, std::forward<TArgs>(args)...);
|
|
72
72
|
return promise.AsFuture();
|