react-native-windows 0.68.3 → 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/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 +14 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
- package/Microsoft.ReactNative/RedBox.cpp +3 -2
- 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 +10 -1
- 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 +1 -1
- 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/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/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/DevSupportManager.cpp +32 -36
- 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/RuntimeHolder.h +2 -0
- package/Shared/Modules/HttpModule.cpp +1 -1
- package/Shared/Modules/HttpModule.h +2 -2
- package/Shared/Modules/WebSocketModule.cpp +1 -1
- package/Shared/Modules/WebSocketModule.h +8 -5
- package/Shared/{IHttpResource.h → Networking/IHttpResource.h} +4 -4
- package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +2 -2
- package/Shared/Networking/OriginPolicy.h +15 -0
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
- package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
- package/Shared/{WinRTHttpResource.cpp → Networking/WinRTHttpResource.cpp} +129 -99
- package/Shared/{WinRTHttpResource.h → Networking/WinRTHttpResource.h} +8 -12
- package/Shared/Networking/WinRTTypes.h +30 -0
- package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +2 -2
- package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
- package/Shared/OInstance.cpp +5 -5
- package/Shared/RuntimeOptions.cpp +93 -15
- package/Shared/RuntimeOptions.h +22 -9
- package/Shared/Shared.vcxitems +122 -7
- package/Shared/Shared.vcxitems.filters +40 -21
- package/Shared/Threading/BatchingQueueThread.cpp +1 -1
- 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/cdebug.cpp +0 -6
- package/include/Shared/ViewManager.h +0 -34
|
@@ -50,6 +50,12 @@ class TouchEventHandler {
|
|
|
50
50
|
winrt::IInspectable m_exitedHandler;
|
|
51
51
|
winrt::IInspectable m_movedHandler;
|
|
52
52
|
|
|
53
|
+
#ifdef USE_WINUI3
|
|
54
|
+
using PointerDeviceType = winrt::Microsoft::UI::Input::PointerDeviceType;
|
|
55
|
+
#else
|
|
56
|
+
using PointerDeviceType = winrt::Windows::Devices::Input::PointerDeviceType;
|
|
57
|
+
#endif
|
|
58
|
+
|
|
53
59
|
struct ReactPointer {
|
|
54
60
|
int64_t target = 0;
|
|
55
61
|
int64_t identifier = 0;
|
|
@@ -57,8 +63,7 @@ class TouchEventHandler {
|
|
|
57
63
|
uint64_t timestamp = 0;
|
|
58
64
|
winrt::Point positionRoot = {0, 0};
|
|
59
65
|
winrt::Point positionView = {0, 0};
|
|
60
|
-
|
|
61
|
-
winrt::Windows::Devices::Input::PointerDeviceType::Mouse};
|
|
66
|
+
PointerDeviceType deviceType{PointerDeviceType::Mouse};
|
|
62
67
|
float pressure = 0;
|
|
63
68
|
bool isLeftButton = false;
|
|
64
69
|
bool isRightButton = false;
|
|
@@ -80,14 +85,16 @@ class TouchEventHandler {
|
|
|
80
85
|
xaml::UIElement sourceElement,
|
|
81
86
|
std::vector<int64_t> &&newViews);
|
|
82
87
|
|
|
88
|
+
enum class TouchEventType { Start = 0, End, Move, Cancel, CaptureLost, PointerEntered, PointerExited, PointerMove };
|
|
83
89
|
#ifdef USE_FABRIC
|
|
84
90
|
facebook::react::Touch TouchForPointer(const ReactPointer &pointer) noexcept;
|
|
91
|
+
static bool IsEndishEventType(TouchEventType eventType) noexcept;
|
|
85
92
|
#endif
|
|
86
|
-
enum class TouchEventType { Start = 0, End, Move, Cancel, CaptureLost, PointerEntered, PointerExited, PointerMove };
|
|
87
93
|
void OnPointerConcluded(TouchEventType eventType, const winrt::PointerRoutedEventArgs &args);
|
|
88
94
|
void DispatchTouchEvent(TouchEventType eventType, size_t pointerIndex);
|
|
89
95
|
bool DispatchBackEvent();
|
|
90
|
-
const char *GetPointerDeviceTypeName(
|
|
96
|
+
const char *GetPointerDeviceTypeName(PointerDeviceType deviceType) noexcept;
|
|
97
|
+
|
|
91
98
|
winrt::Microsoft::ReactNative::PointerEventKind GetPointerEventKind(TouchEventType eventType) noexcept;
|
|
92
99
|
const wchar_t *GetTouchEventTypeName(TouchEventType eventType) noexcept;
|
|
93
100
|
|
|
@@ -47,14 +47,6 @@ winrt::AutomationPeer ViewPanel::OnCreateAutomationPeer() {
|
|
|
47
47
|
panel->m_propertiesChanged = true;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
/*static*/ void ViewPanel::PositionPropertyChanged(
|
|
51
|
-
xaml::DependencyObject sender,
|
|
52
|
-
xaml::DependencyPropertyChangedEventArgs e) {
|
|
53
|
-
auto element{sender.as<xaml::UIElement>()};
|
|
54
|
-
if (element != nullptr)
|
|
55
|
-
InvalidateForArrange(element);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
50
|
/*static*/ xaml::DependencyProperty ViewPanel::ViewBackgroundProperty() {
|
|
59
51
|
static xaml::DependencyProperty s_viewBackgroundProperty = xaml::DependencyProperty::Register(
|
|
60
52
|
L"ViewBackground",
|
|
@@ -96,23 +88,11 @@ winrt::AutomationPeer ViewPanel::OnCreateAutomationPeer() {
|
|
|
96
88
|
}
|
|
97
89
|
|
|
98
90
|
/*static*/ xaml::DependencyProperty ViewPanel::TopProperty() {
|
|
99
|
-
|
|
100
|
-
L"Top",
|
|
101
|
-
winrt::xaml_typename<double>(),
|
|
102
|
-
viewPanelTypeName,
|
|
103
|
-
winrt::PropertyMetadata(winrt::box_value((double)0), ViewPanel::PositionPropertyChanged));
|
|
104
|
-
|
|
105
|
-
return s_topProperty;
|
|
91
|
+
return xaml::Controls::Canvas::TopProperty();
|
|
106
92
|
}
|
|
107
93
|
|
|
108
94
|
/*static*/ xaml::DependencyProperty ViewPanel::LeftProperty() {
|
|
109
|
-
|
|
110
|
-
L"Left",
|
|
111
|
-
winrt::xaml_typename<double>(),
|
|
112
|
-
viewPanelTypeName,
|
|
113
|
-
winrt::PropertyMetadata(winrt::box_value((double)0), ViewPanel::PositionPropertyChanged));
|
|
114
|
-
|
|
115
|
-
return s_LeftProperty;
|
|
95
|
+
return xaml::Controls::Canvas::LeftProperty();
|
|
116
96
|
}
|
|
117
97
|
|
|
118
98
|
/*static*/ xaml::DependencyProperty ViewPanel::ClipChildrenProperty() {
|
|
@@ -135,7 +115,7 @@ winrt::AutomationPeer ViewPanel::OnCreateAutomationPeer() {
|
|
|
135
115
|
InvalidateForArrange(element);
|
|
136
116
|
}
|
|
137
117
|
|
|
138
|
-
void ViewPanel::InvalidateForArrange(xaml::
|
|
118
|
+
void ViewPanel::InvalidateForArrange(const xaml::DependencyObject &element) {
|
|
139
119
|
// If the element's position has changed, we must invalidate the parent for arrange,
|
|
140
120
|
// as it's the parent's responsibility to arrange its children.
|
|
141
121
|
if (auto parent = VisualTreeHelper::GetParent(element)) {
|
|
@@ -77,13 +77,13 @@ struct ViewPanel : ViewPanelT<ViewPanel> {
|
|
|
77
77
|
return winrt::unbox_value<double>(element.GetValue(LeftProperty()));
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
static void InvalidateForArrange(const xaml::DependencyObject &element);
|
|
81
|
+
|
|
80
82
|
private:
|
|
81
83
|
void Remove(xaml::UIElement element) const;
|
|
82
84
|
|
|
83
85
|
void UpdateClip(winrt::Windows::Foundation::Size &finalSize);
|
|
84
86
|
|
|
85
|
-
static void InvalidateForArrange(xaml::UIElement element);
|
|
86
|
-
|
|
87
87
|
private:
|
|
88
88
|
bool m_propertiesChanged{false};
|
|
89
89
|
|
|
@@ -93,7 +93,6 @@ struct ViewPanel : ViewPanelT<ViewPanel> {
|
|
|
93
93
|
|
|
94
94
|
private:
|
|
95
95
|
static void VisualPropertyChanged(xaml::DependencyObject sender, xaml::DependencyPropertyChangedEventArgs e);
|
|
96
|
-
static void PositionPropertyChanged(xaml::DependencyObject sender, xaml::DependencyPropertyChangedEventArgs e);
|
|
97
96
|
};
|
|
98
97
|
|
|
99
98
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "ViewControl.h"
|
|
9
9
|
|
|
10
|
+
#include <UI.Xaml.Automation.Peers.h>
|
|
10
11
|
#include "DynamicAutomationProperties.h"
|
|
11
12
|
|
|
12
13
|
#include <JSValueWriter.h>
|
|
@@ -127,6 +128,14 @@ class ViewShadowNode : public ShadowNodeBase {
|
|
|
127
128
|
GetControl().IsTabStop(m_isFocusable);
|
|
128
129
|
}
|
|
129
130
|
|
|
131
|
+
bool IsAccessible() const {
|
|
132
|
+
return m_isAccessible;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
void IsAccessible(bool isAccessible) {
|
|
136
|
+
m_isAccessible = isAccessible;
|
|
137
|
+
}
|
|
138
|
+
|
|
130
139
|
bool IsHitTestBrushRequired() const {
|
|
131
140
|
return IsRegisteredForMouseEvents();
|
|
132
141
|
}
|
|
@@ -251,6 +260,7 @@ class ViewShadowNode : public ShadowNodeBase {
|
|
|
251
260
|
bool m_enableFocusRing = true;
|
|
252
261
|
bool m_onClick = false;
|
|
253
262
|
bool m_isFocusable = false;
|
|
263
|
+
bool m_isAccessible = false;
|
|
254
264
|
int32_t m_tabIndex = std::numeric_limits<std::int32_t>::max();
|
|
255
265
|
|
|
256
266
|
xaml::Controls::ContentControl::GotFocus_revoker m_contentControlGotFocusRevoker{};
|
|
@@ -420,6 +430,11 @@ bool ViewViewManager::UpdateProperty(
|
|
|
420
430
|
pViewShadowNode->TabIndex(std::numeric_limits<std::int32_t>::max());
|
|
421
431
|
}
|
|
422
432
|
} else {
|
|
433
|
+
if (propertyName == "accessible") {
|
|
434
|
+
if (propertyValue.Type() == winrt::Microsoft::ReactNative::JSValueType::Boolean) {
|
|
435
|
+
pViewShadowNode->IsAccessible(propertyValue.AsBoolean());
|
|
436
|
+
}
|
|
437
|
+
}
|
|
423
438
|
ret = Super::UpdateProperty(nodeToUpdate, propertyName, propertyValue);
|
|
424
439
|
}
|
|
425
440
|
}
|
|
@@ -563,6 +578,12 @@ void ViewViewManager::TryUpdateView(
|
|
|
563
578
|
|
|
564
579
|
if (useControl)
|
|
565
580
|
pViewShadowNode->GetControl().Content(visualRoot);
|
|
581
|
+
|
|
582
|
+
if (useControl && pViewShadowNode->IsAccessible() != pViewShadowNode->IsFocusable()) {
|
|
583
|
+
pViewShadowNode->GetControl().IsTabStop(false);
|
|
584
|
+
xaml::Automation::AutomationProperties::SetAccessibilityView(
|
|
585
|
+
pViewShadowNode->GetControl(), xaml::Automation::Peers::AccessibilityView::Raw);
|
|
586
|
+
}
|
|
566
587
|
}
|
|
567
588
|
|
|
568
589
|
void ViewViewManager::SetLayoutProps(
|
|
@@ -37,7 +37,7 @@ void XamlUIService::DispatchEvent(
|
|
|
37
37
|
JSValueArgWriter const &eventDataArgWriter) noexcept {
|
|
38
38
|
auto paramsWriter = winrt::make_self<DynamicWriter>();
|
|
39
39
|
paramsWriter->WriteArrayBegin();
|
|
40
|
-
paramsWriter->WriteInt64(
|
|
40
|
+
paramsWriter->WriteInt64(::Microsoft::ReactNative::GetTag(view));
|
|
41
41
|
paramsWriter->WriteString(eventName);
|
|
42
42
|
if (eventDataArgWriter) {
|
|
43
43
|
eventDataArgWriter(*paramsWriter);
|
|
@@ -8,14 +8,19 @@
|
|
|
8
8
|
namespace Microsoft::ReactNative {
|
|
9
9
|
|
|
10
10
|
using XamlView = xaml::DependencyObject;
|
|
11
|
+
constexpr int64_t InvalidTag = -1;
|
|
11
12
|
|
|
12
13
|
inline int64_t GetTag(XamlView view) {
|
|
13
14
|
auto tagValue = view.ReadLocalValue(xaml::FrameworkElement::TagProperty());
|
|
14
15
|
if (tagValue != xaml::DependencyProperty::UnsetValue()) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
if (auto tagValueInt = tagValue.try_as<winrt::IPropertyValue>()) {
|
|
17
|
+
if (tagValueInt.Type() == winrt::PropertyType::Int64) {
|
|
18
|
+
return tagValueInt.GetInt64();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
18
21
|
}
|
|
22
|
+
|
|
23
|
+
return InvalidTag;
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
inline void SetTag(XamlView view, int64_t tag) {
|
|
@@ -17,13 +17,12 @@ namespace xaml = winrt::Windows::UI::Xaml;
|
|
|
17
17
|
namespace comp = winrt::Windows::UI::Composition;
|
|
18
18
|
namespace ui = winrt::Windows::UI;
|
|
19
19
|
namespace winrt {
|
|
20
|
-
namespace
|
|
21
|
-
using ColorHelper = winrt::Windows::UI::ColorHelper;
|
|
20
|
+
namespace dispatching = winrt::Windows::System;
|
|
22
21
|
using Colors = winrt::Windows::UI::Colors;
|
|
23
22
|
} // namespace winrt
|
|
24
23
|
#else
|
|
25
24
|
|
|
26
|
-
#include <winrt/Microsoft.
|
|
25
|
+
#include <winrt/Microsoft.UI.Dispatching.h>
|
|
27
26
|
#include <winrt/Microsoft.UI.Xaml.h>
|
|
28
27
|
|
|
29
28
|
#define XAML_CPPWINRT_NAMESPACE winrt::Microsoft::UI::Xaml
|
|
@@ -31,8 +30,7 @@ namespace xaml = winrt::Microsoft::UI::Xaml;
|
|
|
31
30
|
namespace comp = winrt::Microsoft::UI::Composition;
|
|
32
31
|
namespace ui = winrt::Microsoft::UI;
|
|
33
32
|
namespace winrt {
|
|
34
|
-
namespace
|
|
35
|
-
using ColorHelper = winrt::Microsoft::UI::ColorHelper;
|
|
33
|
+
namespace dispatching = winrt::Microsoft::UI::Dispatching;
|
|
36
34
|
using Colors = winrt::Microsoft::UI::Colors;
|
|
37
35
|
} // namespace winrt
|
|
38
36
|
|
|
@@ -92,7 +92,7 @@ __declspec(selectany) std::unordered_map<std::wstring, IndirectLibrary> indirect
|
|
|
92
92
|
} // namespace details
|
|
93
93
|
|
|
94
94
|
template <typename TFn, typename... TArgs>
|
|
95
|
-
auto CallIndirect(const wchar_t *dllName, const char *fnName, TArgs &&...
|
|
95
|
+
auto CallIndirect(const wchar_t *dllName, const char *fnName, TArgs &&...args) noexcept {
|
|
96
96
|
if (details::indirectLibraries.count(dllName) == 0) {
|
|
97
97
|
details::indirectLibraries.emplace(dllName, WINRT_IMPL_LoadLibraryW(dllName));
|
|
98
98
|
}
|
|
@@ -306,6 +306,15 @@ PropNameID JsiAbiRuntime::createPropNameIDFromString(const String &str) try {
|
|
|
306
306
|
throw;
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
+
PropNameID JsiAbiRuntime::createPropNameIDFromSymbol(const Symbol &sym) {
|
|
310
|
+
// TODO: Support for symbols through the native API in JSC is very limited.
|
|
311
|
+
// While we could construct a PropNameID here, we would not be able to get a
|
|
312
|
+
// symbol property through the C++ API.
|
|
313
|
+
UNREFERENCED_PARAMETER(sym);
|
|
314
|
+
RethrowJsiError();
|
|
315
|
+
throw;
|
|
316
|
+
}
|
|
317
|
+
|
|
309
318
|
std::string JsiAbiRuntime::utf8(const PropNameID &propertyId) try {
|
|
310
319
|
std::string dataResult;
|
|
311
320
|
m_runtime.PropertyIdToUtf8(AsJsiPropertyIdRef(propertyId), [&dataResult](array_view<uint8_t const> utf8) {
|
|
@@ -994,7 +1003,7 @@ size_t JsiAbiRuntime::ValueRefArray::Size() const noexcept {
|
|
|
994
1003
|
//===========================================================================
|
|
995
1004
|
|
|
996
1005
|
JsiAbiRuntime::PropNameIDRef::PropNameIDRef(JsiPropertyIdRef const &data) noexcept
|
|
997
|
-
: m_propertyId{make<PropNameID>(new
|
|
1006
|
+
: m_propertyId{make<PropNameID>(new(std::addressof(m_pointerStore)) DataPointerValue(data.Data))} {}
|
|
998
1007
|
|
|
999
1008
|
JsiAbiRuntime::PropNameIDRef::~PropNameIDRef() noexcept {}
|
|
1000
1009
|
|
|
@@ -1004,4 +1013,4 @@ JsiAbiRuntime::PropNameIDRef::operator facebook::jsi::PropNameID const &() const
|
|
|
1004
1013
|
|
|
1005
1014
|
} // namespace winrt::Microsoft::ReactNative
|
|
1006
1015
|
|
|
1007
|
-
#pragma warning(pop)
|
|
1016
|
+
#pragma warning(pop)
|
|
@@ -99,6 +99,7 @@ struct JsiAbiRuntime : facebook::jsi::Runtime {
|
|
|
99
99
|
facebook::jsi::PropNameID createPropNameIDFromAscii(const char *str, size_t length) override;
|
|
100
100
|
facebook::jsi::PropNameID createPropNameIDFromUtf8(const uint8_t *utf8, size_t length) override;
|
|
101
101
|
facebook::jsi::PropNameID createPropNameIDFromString(const facebook::jsi::String &str) override;
|
|
102
|
+
facebook::jsi::PropNameID createPropNameIDFromSymbol(const facebook::jsi::Symbol &sym);
|
|
102
103
|
std::string utf8(const facebook::jsi::PropNameID &propertyNameId) override;
|
|
103
104
|
bool compare(const facebook::jsi::PropNameID &left, const facebook::jsi::PropNameID &right) override;
|
|
104
105
|
|
|
@@ -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
|
|
|
@@ -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;
|
|
@@ -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 {
|
|
@@ -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) \
|