react-native-windows 0.74.12 → 0.75.0-preview.2
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 +8 -2
- package/Common/Utilities.cpp +2 -2
- package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
- package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
- package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
- package/Libraries/Animated/AnimatedImplementation.js +2 -0
- package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
- package/Libraries/Animated/createAnimatedComponent.js +10 -4
- package/Libraries/Animated/useAnimatedProps.js +56 -28
- package/Libraries/BatchedBridge/MessageQueue.js +1 -0
- package/Libraries/Components/Button.js +10 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
- package/Libraries/Components/Flyout/Flyout.js +10 -10
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
- package/Libraries/Components/Pressable/Pressable.js +13 -6
- package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
- package/Libraries/Components/ScrollView/ScrollView.js +109 -29
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
- package/Libraries/Components/StatusBar/StatusBar.js +1 -21
- package/Libraries/Components/Switch/Switch.windows.js +2 -0
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
- package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
- package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
- package/Libraries/Components/TextInput/TextInput.js +14 -70
- package/Libraries/Components/TextInput/TextInput.windows.js +15 -72
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
- package/Libraries/Components/Touchable/Touchable.js +2 -2
- package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
- package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
- package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
- package/Libraries/Components/View/View.js +0 -11
- package/Libraries/Components/View/View.windows.js +0 -11
- package/Libraries/Components/View/ViewAccessibility.js +4 -4
- package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
- package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
- package/Libraries/Components/View/ViewPropTypes.js +7 -0
- package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
- package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
- package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
- package/Libraries/Core/ErrorHandlers.js +116 -0
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpDeveloperTools.js +3 -1
- package/Libraries/Core/setUpPerformance.js +6 -4
- package/Libraries/Core/setUpReactDevTools.js +70 -10
- package/Libraries/Core/setUpTimers.js +50 -31
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
- package/Libraries/Image/Image.android.js +23 -13
- package/Libraries/Image/Image.d.ts +14 -15
- package/Libraries/Image/Image.ios.js +21 -11
- package/Libraries/Image/Image.windows.js +21 -11
- package/Libraries/Image/ImageProps.js +16 -5
- package/Libraries/Image/ImageTypes.flow.js +7 -2
- package/Libraries/Image/ImageUtils.js +1 -0
- package/Libraries/Image/ImageViewNativeComponent.js +2 -1
- package/Libraries/Inspector/ElementBox.js +6 -3
- package/Libraries/Inspector/ElementProperties.js +1 -1
- package/Libraries/Interaction/TouchHistoryMath.js +4 -4
- package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
- package/Libraries/JSInspector/NetworkAgent.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +39 -29
- package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
- package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
- package/Libraries/LogBox/LogBox.js +29 -12
- package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
- package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
- package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
- package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
- package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
- package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
- package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
- package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
- package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
- package/Libraries/Network/XMLHttpRequest.js +5 -1
- package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
- package/Libraries/Pressability/Pressability.js +3 -51
- package/Libraries/Pressability/Pressability.windows.js +3 -51
- package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
- package/Libraries/ReactNative/AppRegistry.js +2 -4
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
- package/Libraries/ReactNative/FabricUIManager.js +0 -51
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
- package/Libraries/ReactNative/RendererImplementation.js +20 -2
- package/Libraries/ReactNative/UIManager.d.ts +0 -21
- package/Libraries/ReactNative/UIManagerProperties.js +0 -3
- package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
- package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
- package/Libraries/Renderer/shims/ReactFabric.js +2 -2
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +2 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.d.ts +16 -10
- package/Libraries/Share/Share.js +14 -15
- package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +3 -10
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
- package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
- package/Libraries/StyleSheet/flattenStyle.js +1 -0
- package/Libraries/StyleSheet/processFilter.js +132 -0
- package/Libraries/StyleSheet/processTransform.js +18 -3
- package/Libraries/Text/Text.js +151 -128
- package/Libraries/Text/Text.windows.js +144 -128
- package/Libraries/Text/TextNativeComponent.js +5 -4
- package/Libraries/Text/TextProps.js +6 -6
- package/Libraries/Text/TextProps.windows.js +6 -6
- package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
- package/Libraries/Types/CodegenTypes.js +3 -0
- package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
- package/Libraries/Utilities/Dimensions.js +1 -0
- package/Libraries/Utilities/HMRClient.js +36 -8
- package/Libraries/Utilities/HMRClientProdShim.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
- package/Libraries/Utilities/Platform.android.js +4 -4
- package/Libraries/Utilities/RCTLog.js +1 -0
- package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
- package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
- package/Libraries/__tests__/ViewWindows-test.js +6 -6
- package/Libraries/promiseRejectionTrackingOptions.js +1 -0
- package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
- package/Microsoft.ReactNative/ComponentView.idl +0 -17
- package/Microsoft.ReactNative/Composition.Input.idl +3 -3
- package/Microsoft.ReactNative/CompositionSwitcher.idl +0 -1
- package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
- package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +0 -3
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +2 -2
- package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -10
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +27 -16
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +48 -85
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +0 -4
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +24 -24
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +6 -8
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +0 -10
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +0 -3
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +29 -45
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +1 -3
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +6 -43
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +23 -34
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
- package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
- package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +17 -48
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -7
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -16
- package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
- package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
- package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
- package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
- package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +13 -20
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/Timer.idl +1 -3
- package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
- package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
- package/Microsoft.ReactNative/packages.lock.json +41 -78
- package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
- package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
- package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
- package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
- package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
- package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/README.md +21 -21
- package/ReactCommon/ReactCommon.vcxproj +2 -0
- package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +4 -0
- package/Scripts/rnw-dependencies.ps1 +36 -23
- package/Shared/HermesRuntimeHolder.cpp +19 -1
- package/Shared/HermesRuntimeHolder.h +8 -1
- package/Shared/HermesSamplingProfiler.cpp +1 -2
- package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
- package/Shared/OInstance.cpp +1 -2
- package/Shared/Shared.vcxitems +21 -15
- package/Shared/Shared.vcxitems.filters +8 -3
- package/Shared/Threading/BatchingQueueThread.cpp +6 -2
- package/Shared/Threading/BatchingQueueThread.h +2 -2
- package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
- package/codegen/NativeAppStateSpec.g.h +8 -8
- package/codegen/NativeBlobModuleSpec.g.h +0 -10
- package/codegen/NativeDOMSpec.g.h +136 -0
- package/codegen/NativeDevSettingsSpec.g.h +11 -5
- package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
- package/codegen/NativeMicrotasksSpec.g.h +34 -0
- package/codegen/NativePerformanceSpec.g.h +35 -7
- package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
- package/codegen/NativeUIManagerSpec.g.h +5 -17
- package/codegen/react/components/rnwcore/Props.cpp +1 -1
- package/codegen/react/components/rnwcore/Props.h +16 -12
- package/codegen/react/components/rnwcore/States.h +0 -26
- package/codegen/rnwcoreJSI-generated.cpp +688 -463
- package/codegen/rnwcoreJSI.h +1374 -2867
- package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
- package/fmt/fmt.vcxproj +1 -1
- package/jest/mockComponent.js +7 -0
- package/jest/renderer.js +25 -14
- package/jest/setup.js +19 -13
- package/package.json +29 -27
- package/rn-get-polyfills.js +1 -0
- package/src/private/core/composeStyles.js +27 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
- package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
- package/src/private/specs/modules/NativeBlobModule.js +4 -2
- package/src/private/specs/modules/NativeDevSettings.js +1 -0
- package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
- package/src/private/specs/modules/NativeUIManager.js +0 -7
- package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
- package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
- package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
- package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
- package/src/private/webapis/performance/EventCounts.js +1 -1
- package/src/private/webapis/performance/MemoryInfo.js +9 -9
- package/src/private/webapis/performance/Performance.js +10 -56
- package/src/private/webapis/performance/PerformanceObserver.js +30 -22
- package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
- package/src/private/webapis/performance/UserTiming.js +63 -0
- package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
- package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
- package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
- package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
- package/stubs/glog/logging.h +1 -0
- package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
- package/template/cs-lib/proj/MyLib.csproj +1 -1
- package/template/metro.config.js +13 -2
- package/templates/cpp-app/template.config.js +1 -1
- package/templates/cpp-lib/example/metro.config.js +2 -2
- package/templates/cpp-lib/template.config.js +1 -1
- package/templates/old/generateWrapper.js +4 -1
- package/types/modules/globals.d.ts +4 -0
- package/Libraries/Lists/FlatList.windows.js +0 -717
- package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
- package/Libraries/Utilities/LoadingView.ios.js +0 -50
- package/Libraries/Utilities/LoadingView.js +0 -16
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2377
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.cpp +0 -140
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +0 -92
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.cpp +0 -48
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +0 -122
- package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +0 -366
- package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
- package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
- package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
- package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
- package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
- package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
- package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
- package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
- package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
- package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
- package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
- package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
- package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
- package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
- package/template/metro.devMode.config.js +0 -56
- /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
|
@@ -11,9 +11,8 @@
|
|
|
11
11
|
#include <string>
|
|
12
12
|
|
|
13
13
|
#include <jsi/jsi.h>
|
|
14
|
-
|
|
15
|
-
#include <ReactCommon/CallInvoker.h>
|
|
16
14
|
#include <CallbackWrapper.h> // [Windows]
|
|
15
|
+
#include <LongLivedObject.h> // [Windows]
|
|
17
16
|
|
|
18
17
|
namespace facebook::react {
|
|
19
18
|
|
|
@@ -26,7 +25,6 @@ struct Promise : public LongLivedObject {
|
|
|
26
25
|
void resolve(const jsi::Value& result);
|
|
27
26
|
void reject(const std::string& error);
|
|
28
27
|
|
|
29
|
-
jsi::Runtime& runtime_;
|
|
30
28
|
jsi::Function resolve_;
|
|
31
29
|
jsi::Function reject_;
|
|
32
30
|
};
|
|
@@ -56,4 +54,4 @@ class RAIICallbackWrapperDestroyer {
|
|
|
56
54
|
std::weak_ptr<CallbackWrapper> callbackWrapper_;
|
|
57
55
|
};
|
|
58
56
|
|
|
59
|
-
} // namespace facebook::react
|
|
57
|
+
} // namespace facebook::react
|
|
@@ -111,17 +111,15 @@ ScrollViewProps::ScrollViewProps(
|
|
|
111
111
|
// [Windows fix
|
|
112
112
|
(Float)1)),
|
|
113
113
|
// Windows]
|
|
114
|
-
|
|
114
|
+
enableSyncOnScroll(
|
|
115
115
|
CoreFeatures::enablePropIteratorSetter
|
|
116
|
-
? sourceProps.
|
|
116
|
+
? sourceProps.enableSyncOnScroll
|
|
117
117
|
: convertRawProp(
|
|
118
118
|
context,
|
|
119
119
|
rawProps,
|
|
120
|
-
"
|
|
121
|
-
sourceProps.
|
|
122
|
-
|
|
123
|
-
(Float)0)),
|
|
124
|
-
// Windows]
|
|
120
|
+
"enableSyncOnScroll",
|
|
121
|
+
sourceProps.enableSyncOnScroll,
|
|
122
|
+
false)),
|
|
125
123
|
directionalLockEnabled(
|
|
126
124
|
CoreFeatures::enablePropIteratorSetter
|
|
127
125
|
? sourceProps.directionalLockEnabled
|
|
@@ -229,6 +227,23 @@ ScrollViewProps::ScrollViewProps(
|
|
|
229
227
|
"showsVerticalScrollIndicator",
|
|
230
228
|
sourceProps.showsVerticalScrollIndicator,
|
|
231
229
|
true)),
|
|
230
|
+
persistentScrollbar(
|
|
231
|
+
CoreFeatures::enablePropIteratorSetter
|
|
232
|
+
? sourceProps.persistentScrollbar
|
|
233
|
+
: convertRawProp(
|
|
234
|
+
context,
|
|
235
|
+
rawProps,
|
|
236
|
+
"persistentScrollbar",
|
|
237
|
+
sourceProps.persistentScrollbar,
|
|
238
|
+
true)),
|
|
239
|
+
horizontal(
|
|
240
|
+
CoreFeatures::enablePropIteratorSetter ? sourceProps.horizontal
|
|
241
|
+
: convertRawProp(
|
|
242
|
+
context,
|
|
243
|
+
rawProps,
|
|
244
|
+
"horizontal",
|
|
245
|
+
sourceProps.horizontal,
|
|
246
|
+
true)),
|
|
232
247
|
scrollEventThrottle(
|
|
233
248
|
CoreFeatures::enablePropIteratorSetter
|
|
234
249
|
? sourceProps.scrollEventThrottle
|
|
@@ -381,11 +396,14 @@ void ScrollViewProps::setProp(
|
|
|
381
396
|
RAW_SET_PROP_SWITCH_CASE_BASIC(maximumZoomScale);
|
|
382
397
|
RAW_SET_PROP_SWITCH_CASE_BASIC(minimumZoomScale);
|
|
383
398
|
RAW_SET_PROP_SWITCH_CASE_BASIC(scrollEnabled);
|
|
399
|
+
RAW_SET_PROP_SWITCH_CASE_BASIC(enableSyncOnScroll);
|
|
400
|
+
RAW_SET_PROP_SWITCH_CASE_BASIC(endDraggingSensitivityMultiplier);
|
|
384
401
|
RAW_SET_PROP_SWITCH_CASE_BASIC(pagingEnabled);
|
|
385
402
|
RAW_SET_PROP_SWITCH_CASE_BASIC(pinchGestureEnabled);
|
|
386
403
|
RAW_SET_PROP_SWITCH_CASE_BASIC(scrollsToTop);
|
|
387
404
|
RAW_SET_PROP_SWITCH_CASE_BASIC(showsHorizontalScrollIndicator);
|
|
388
|
-
RAW_SET_PROP_SWITCH_CASE_BASIC(
|
|
405
|
+
RAW_SET_PROP_SWITCH_CASE_BASIC(persistentScrollbar);
|
|
406
|
+
RAW_SET_PROP_SWITCH_CASE_BASIC(horizontal);
|
|
389
407
|
RAW_SET_PROP_SWITCH_CASE_BASIC(scrollEventThrottle);
|
|
390
408
|
RAW_SET_PROP_SWITCH_CASE_BASIC(zoomScale);
|
|
391
409
|
RAW_SET_PROP_SWITCH_CASE_BASIC(contentInset);
|
|
@@ -491,6 +509,12 @@ SharedDebugStringConvertibleList ScrollViewProps::getDebugProps() const {
|
|
|
491
509
|
"showsVerticalScrollIndicator",
|
|
492
510
|
showsVerticalScrollIndicator,
|
|
493
511
|
defaultScrollViewProps.showsVerticalScrollIndicator),
|
|
512
|
+
debugStringConvertibleItem(
|
|
513
|
+
"persistentScrollbar",
|
|
514
|
+
persistentScrollbar,
|
|
515
|
+
defaultScrollViewProps.persistentScrollbar),
|
|
516
|
+
debugStringConvertibleItem(
|
|
517
|
+
"horizontal", horizontal, defaultScrollViewProps.horizontal),
|
|
494
518
|
debugStringConvertibleItem(
|
|
495
519
|
"scrollEventThrottle",
|
|
496
520
|
scrollEventThrottle,
|
|
@@ -533,3 +557,4 @@ SharedDebugStringConvertibleList ScrollViewProps::getDebugProps() const {
|
|
|
533
557
|
#endif
|
|
534
558
|
|
|
535
559
|
} // namespace facebook::react
|
|
560
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#include "JSRuntimeFactory.h"
|
|
9
|
+
#include <jsinspector-modern/ConsoleMessage.h>
|
|
10
|
+
#include <jsinspector-modern/FallbackRuntimeAgentDelegate.h>
|
|
11
|
+
|
|
12
|
+
namespace facebook::react {
|
|
13
|
+
|
|
14
|
+
jsi::Runtime& JSIRuntimeHolder::getRuntime() noexcept {
|
|
15
|
+
return *runtime_;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
JSIRuntimeHolder::JSIRuntimeHolder(std::unique_ptr<jsi::Runtime> runtime)
|
|
19
|
+
: runtime_(std::move(runtime)) {
|
|
20
|
+
assert(runtime_ != nullptr);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
void JSIRuntimeHolder::addConsoleMessage(jsi::Runtime& runtime, jsinspector_modern::ConsoleMessage message) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
bool JSIRuntimeHolder::supportsConsole() const{
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate>
|
|
32
|
+
JSIRuntimeHolder::createAgentDelegate(
|
|
33
|
+
jsinspector_modern::FrontendChannel frontendChannel,
|
|
34
|
+
jsinspector_modern::SessionState& sessionState,
|
|
35
|
+
std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate::ExportedState>,
|
|
36
|
+
const jsinspector_modern::ExecutionContextDescription&
|
|
37
|
+
executionContextDescription,
|
|
38
|
+
RuntimeExecutor runtimeExecutor) {
|
|
39
|
+
(void)executionContextDescription;
|
|
40
|
+
(void)runtimeExecutor;
|
|
41
|
+
return std::make_unique<jsinspector_modern::FallbackRuntimeAgentDelegate>(
|
|
42
|
+
std::move(frontendChannel), sessionState, runtime_->description());
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <ReactCommon/RuntimeExecutor.h>
|
|
11
|
+
#include <cxxreact/MessageQueueThread.h>
|
|
12
|
+
#include <jsinspector-modern/ConsoleMessage.h>
|
|
13
|
+
#include <jsi/jsi.h>
|
|
14
|
+
#include <jsinspector-modern/ReactCdp.h>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
namespace facebook::react {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* An interface that represents an instance of a JS VM
|
|
21
|
+
*/
|
|
22
|
+
class JSRuntime : public jsinspector_modern::RuntimeTargetDelegate {
|
|
23
|
+
public:
|
|
24
|
+
virtual jsi::Runtime& getRuntime() noexcept = 0;
|
|
25
|
+
|
|
26
|
+
virtual ~JSRuntime() = default;
|
|
27
|
+
|
|
28
|
+
virtual void addConsoleMessage(jsi::Runtime& runtime, jsinspector_modern::ConsoleMessage message) = 0;
|
|
29
|
+
virtual bool supportsConsole() const = 0;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Interface for a class that creates instances of a JS VM
|
|
34
|
+
*/
|
|
35
|
+
class JSRuntimeFactory {
|
|
36
|
+
public:
|
|
37
|
+
virtual std::unique_ptr<JSRuntime> createJSRuntime(
|
|
38
|
+
std::shared_ptr<MessageQueueThread> msgQueueThread) noexcept = 0;
|
|
39
|
+
|
|
40
|
+
virtual ~JSRuntimeFactory() = default;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Utility class for creating a JSRuntime from a uniquely owned jsi::Runtime.
|
|
45
|
+
*/
|
|
46
|
+
class JSIRuntimeHolder : public JSRuntime {
|
|
47
|
+
public:
|
|
48
|
+
jsi::Runtime& getRuntime() noexcept override;
|
|
49
|
+
void addConsoleMessage(jsi::Runtime& runtime, jsinspector_modern::ConsoleMessage message) override;
|
|
50
|
+
bool supportsConsole() const override;
|
|
51
|
+
|
|
52
|
+
std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate> createAgentDelegate(
|
|
53
|
+
jsinspector_modern::FrontendChannel frontendChannel,
|
|
54
|
+
jsinspector_modern::SessionState& sessionState,
|
|
55
|
+
std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate::ExportedState>
|
|
56
|
+
previouslyExportedState,
|
|
57
|
+
const jsinspector_modern::ExecutionContextDescription&
|
|
58
|
+
executionContextDescription,
|
|
59
|
+
RuntimeExecutor runtimeExecutor) override;
|
|
60
|
+
|
|
61
|
+
explicit JSIRuntimeHolder(std::unique_ptr<jsi::Runtime> runtime);
|
|
62
|
+
|
|
63
|
+
private:
|
|
64
|
+
std::unique_ptr<jsi::Runtime> runtime_;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
} // namespace facebook::react
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "ReactInstance.h"
|
|
9
9
|
|
|
10
|
+
#include <ReactCommon/RuntimeExecutor.h>
|
|
10
11
|
#include <cxxreact/ErrorUtils.h>
|
|
11
12
|
#include <cxxreact/JSBigString.h>
|
|
12
13
|
#include <cxxreact/JSExecutor.h>
|
|
@@ -15,14 +16,13 @@
|
|
|
15
16
|
#include <glog/logging.h>
|
|
16
17
|
#include <jsi/JSIDynamic.h>
|
|
17
18
|
#include <jsi/instrumentation.h>
|
|
19
|
+
#include <jsinspector-modern/HostTarget.h>
|
|
18
20
|
#include <jsireact/JSIExecutor.h>
|
|
19
21
|
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
20
22
|
#include <react/renderer/runtimescheduler/RuntimeSchedulerBinding.h>
|
|
21
|
-
// [Windows
|
|
22
23
|
#include <react/utils/jsi-utils.h>
|
|
23
|
-
// Windows]
|
|
24
24
|
#include <iostream>
|
|
25
|
-
#include <
|
|
25
|
+
#include <memory>
|
|
26
26
|
#include <utility>
|
|
27
27
|
|
|
28
28
|
namespace facebook::react {
|
|
@@ -31,86 +31,110 @@ ReactInstance::ReactInstance(
|
|
|
31
31
|
std::unique_ptr<JSRuntime> runtime,
|
|
32
32
|
std::shared_ptr<MessageQueueThread> jsMessageQueueThread,
|
|
33
33
|
std::shared_ptr<TimerManager> timerManager,
|
|
34
|
-
JsErrorHandler::
|
|
35
|
-
jsinspector_modern::
|
|
34
|
+
JsErrorHandler::OnJsError onJsError,
|
|
35
|
+
jsinspector_modern::HostTarget* parentInspectorTarget)
|
|
36
36
|
: runtime_(std::move(runtime)),
|
|
37
37
|
jsMessageQueueThread_(jsMessageQueueThread),
|
|
38
38
|
timerManager_(std::move(timerManager)),
|
|
39
|
-
jsErrorHandler_(
|
|
40
|
-
hasFatalJsError_(std::make_shared<bool>(false)),
|
|
39
|
+
jsErrorHandler_(std::make_shared<JsErrorHandler>(std::move(onJsError))),
|
|
41
40
|
parentInspectorTarget_(parentInspectorTarget) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (std::shared_ptr<bool> sharedHasFatalJsError =
|
|
53
|
-
weakHasFatalJsError.lock()) {
|
|
54
|
-
if (*sharedHasFatalJsError) {
|
|
55
|
-
LOG(INFO)
|
|
56
|
-
<< "Calling into JS using runtimeExecutor but hasFatalJsError_ is true";
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
41
|
+
RuntimeExecutor runtimeExecutor = [weakRuntime = std::weak_ptr(runtime_),
|
|
42
|
+
weakTimerManager =
|
|
43
|
+
std::weak_ptr(timerManager_),
|
|
44
|
+
weakJsThread =
|
|
45
|
+
std::weak_ptr(jsMessageQueueThread_),
|
|
46
|
+
weakJsErrorHander = std::weak_ptr(
|
|
47
|
+
jsErrorHandler_)](auto callback) {
|
|
48
|
+
auto jsErrorHandler = weakJsErrorHander.lock();
|
|
49
|
+
if (weakRuntime.expired() || !jsErrorHandler) {
|
|
50
|
+
return;
|
|
59
51
|
}
|
|
60
|
-
|
|
52
|
+
|
|
53
|
+
if (jsErrorHandler->hasHandledFatalError()) {
|
|
54
|
+
LOG(INFO)
|
|
55
|
+
<< "RuntimeExecutor: Detected fatal js error. Dropping work on non-js thread."
|
|
56
|
+
<< std::endl;
|
|
61
57
|
return;
|
|
62
58
|
}
|
|
63
59
|
|
|
64
|
-
if (
|
|
65
|
-
|
|
66
|
-
sharedJsMessageQueueThread->runOnQueue(
|
|
60
|
+
if (auto jsThread = weakJsThread.lock()) {
|
|
61
|
+
jsThread->runOnQueue(
|
|
67
62
|
[weakRuntime, weakTimerManager, callback = std::move(callback)]() {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
63
|
+
auto runtime = weakRuntime.lock();
|
|
64
|
+
if (!runtime) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
jsi::Runtime& jsiRuntime = runtime->getRuntime();
|
|
69
|
+
SystraceSection s("ReactInstance::_runtimeExecutor[Callback]");
|
|
70
|
+
try {
|
|
71
|
+
callback(jsiRuntime);
|
|
72
|
+
|
|
73
|
+
// If we have first-class support for microtasks,
|
|
74
|
+
// they would've been called as part of the previous callback.
|
|
75
|
+
if (!ReactNativeFeatureFlags::enableMicrotasks()) {
|
|
76
|
+
if (auto timerManager = weakTimerManager.lock()) {
|
|
77
|
+
timerManager->callReactNativeMicrotasks(jsiRuntime);
|
|
80
78
|
}
|
|
81
|
-
} catch (jsi::JSError& originalError) {
|
|
82
|
-
handleJSError(jsiRuntime, originalError, true);
|
|
83
79
|
}
|
|
80
|
+
} catch (jsi::JSError& originalError) {
|
|
81
|
+
handleJSError(jsiRuntime, originalError, true);
|
|
84
82
|
}
|
|
85
83
|
});
|
|
86
84
|
}
|
|
87
85
|
};
|
|
88
86
|
|
|
89
87
|
if (parentInspectorTarget_) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
auto executor = parentInspectorTarget_->executorFromThis();
|
|
89
|
+
|
|
90
|
+
auto runtimeExecutorThatWaitsForInspectorSetup =
|
|
91
|
+
std::make_shared<BufferedRuntimeExecutor>(runtimeExecutor);
|
|
92
|
+
|
|
93
|
+
// This code can execute from any thread, so we need to make sure we set up
|
|
94
|
+
// the inspector logic in the right one. The callback executes immediately
|
|
95
|
+
// if we are already in the right thread.
|
|
96
|
+
executor([this, runtimeExecutor, runtimeExecutorThatWaitsForInspectorSetup](
|
|
97
|
+
jsinspector_modern::HostTarget& hostTarget) {
|
|
98
|
+
// Callbacks scheduled through the page target executor are generally
|
|
99
|
+
// not guaranteed to run (e.g.: if the page target is destroyed)
|
|
100
|
+
// but in this case it is because the page target cannot be destroyed
|
|
101
|
+
// before the instance finishes its setup:
|
|
102
|
+
// * On iOS it's because we do the setup synchronously.
|
|
103
|
+
// * On Android it's because we explicitly wait for the instance
|
|
104
|
+
// creation task to finish before starting the destruction.
|
|
105
|
+
inspectorTarget_ = &hostTarget.registerInstance(*this);
|
|
106
|
+
runtimeInspectorTarget_ =
|
|
107
|
+
&inspectorTarget_->registerRuntime(*runtime_, runtimeExecutor);
|
|
108
|
+
runtimeExecutorThatWaitsForInspectorSetup->flush();
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// We decorate the runtime executor used everywhere else to wait for the
|
|
112
|
+
// inspector to finish its setup.
|
|
113
|
+
runtimeExecutor =
|
|
114
|
+
[runtimeExecutorThatWaitsForInspectorSetup](
|
|
115
|
+
std::function<void(jsi::Runtime & runtime)>&& callback) {
|
|
116
|
+
runtimeExecutorThatWaitsForInspectorSetup->execute(
|
|
117
|
+
std::move(callback));
|
|
118
|
+
};
|
|
93
119
|
}
|
|
94
120
|
|
|
95
|
-
runtimeScheduler_ =
|
|
96
|
-
std::make_shared<RuntimeScheduler>(std::move(runtimeExecutor));
|
|
121
|
+
runtimeScheduler_ = std::make_shared<RuntimeScheduler>(runtimeExecutor);
|
|
97
122
|
|
|
98
|
-
|
|
123
|
+
bufferedRuntimeExecutor_ = std::make_shared<BufferedRuntimeExecutor>(
|
|
99
124
|
[runtimeScheduler = runtimeScheduler_.get()](
|
|
100
125
|
std::function<void(jsi::Runtime & runtime)>&& callback) {
|
|
101
126
|
runtimeScheduler->scheduleWork(std::move(callback));
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
bufferedRuntimeExecutor_ =
|
|
105
|
-
std::make_shared<BufferedRuntimeExecutor>(pipedRuntimeExecutor);
|
|
127
|
+
});
|
|
106
128
|
}
|
|
107
129
|
|
|
108
130
|
void ReactInstance::unregisterFromInspector() {
|
|
109
131
|
if (inspectorTarget_) {
|
|
110
132
|
assert(runtimeInspectorTarget_);
|
|
111
133
|
inspectorTarget_->unregisterRuntime(*runtimeInspectorTarget_);
|
|
134
|
+
|
|
112
135
|
assert(parentInspectorTarget_);
|
|
113
136
|
parentInspectorTarget_->unregisterInstance(*inspectorTarget_);
|
|
137
|
+
|
|
114
138
|
inspectorTarget_ = nullptr;
|
|
115
139
|
}
|
|
116
140
|
}
|
|
@@ -137,6 +161,8 @@ RuntimeExecutor ReactInstance::getBufferedRuntimeExecutor() noexcept {
|
|
|
137
161
|
};
|
|
138
162
|
}
|
|
139
163
|
|
|
164
|
+
// TODO(T184010230): Should the RuntimeScheduler returned from this method be
|
|
165
|
+
// buffered?
|
|
140
166
|
std::shared_ptr<RuntimeScheduler>
|
|
141
167
|
ReactInstance::getRuntimeScheduler() noexcept {
|
|
142
168
|
return runtimeScheduler_;
|
|
@@ -194,9 +220,7 @@ void ReactInstance::loadScript(
|
|
|
194
220
|
strongBufferedRuntimeExecuter->flush();
|
|
195
221
|
}
|
|
196
222
|
} catch (jsi::JSError& error) {
|
|
197
|
-
|
|
198
|
-
*hasFatalJsError_ = true;
|
|
199
|
-
this->jsErrorHandler_.handleJsError(error, true);
|
|
223
|
+
jsErrorHandler_->handleFatalError(error);
|
|
200
224
|
}
|
|
201
225
|
});
|
|
202
226
|
}
|
|
@@ -208,20 +232,24 @@ void ReactInstance::loadScript(
|
|
|
208
232
|
void ReactInstance::callFunctionOnModule(
|
|
209
233
|
const std::string& moduleName,
|
|
210
234
|
const std::string& methodName,
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
235
|
+
folly::dynamic&& args) {
|
|
236
|
+
bufferedRuntimeExecutor_->execute([this,
|
|
237
|
+
moduleName = moduleName,
|
|
238
|
+
methodName = methodName,
|
|
239
|
+
args = std::move(args)](
|
|
240
|
+
jsi::Runtime& runtime) {
|
|
215
241
|
SystraceSection s(
|
|
216
242
|
"ReactInstance::callFunctionOnModule",
|
|
217
243
|
"moduleName",
|
|
218
244
|
moduleName,
|
|
219
245
|
"methodName",
|
|
220
246
|
methodName);
|
|
221
|
-
|
|
247
|
+
auto it = callableModules_.find(moduleName);
|
|
248
|
+
if (it == callableModules_.end()) {
|
|
222
249
|
std::ostringstream knownModules;
|
|
223
250
|
int i = 0;
|
|
224
|
-
for (
|
|
251
|
+
for (it = callableModules_.begin(); it != callableModules_.end();
|
|
252
|
+
it++, i++) {
|
|
225
253
|
const char* space = (i > 0 ? ", " : " ");
|
|
226
254
|
knownModules << space << it->first;
|
|
227
255
|
}
|
|
@@ -230,24 +258,25 @@ void ReactInstance::callFunctionOnModule(
|
|
|
230
258
|
"Failed to call into JavaScript module method " + moduleName + "." +
|
|
231
259
|
methodName +
|
|
232
260
|
"(). Module has not been registered as callable. Registered callable JavaScript modules (n = " +
|
|
233
|
-
std::to_string(
|
|
234
|
-
"
|
|
261
|
+
std::to_string(callableModules_.size()) +
|
|
262
|
+
"):" + knownModules.str() +
|
|
263
|
+
". Did you forget to call `registerCallableModule`?");
|
|
235
264
|
}
|
|
236
265
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
runtime,
|
|
242
|
-
"Failed to call into JavaScript module method " + moduleName + "." +
|
|
243
|
-
methodName + ". Module exists, but the method is undefined.");
|
|
266
|
+
if (std::holds_alternative<jsi::Function>(it->second)) {
|
|
267
|
+
auto module =
|
|
268
|
+
std::get<jsi::Function>(it->second).call(runtime).asObject(runtime);
|
|
269
|
+
it->second = std::move(module);
|
|
244
270
|
}
|
|
245
271
|
|
|
272
|
+
auto& module = std::get<jsi::Object>(it->second);
|
|
273
|
+
auto method = module.getPropertyAsFunction(runtime, methodName.c_str());
|
|
274
|
+
|
|
246
275
|
std::vector<jsi::Value> jsArgs;
|
|
247
276
|
for (auto& arg : args) {
|
|
248
277
|
jsArgs.push_back(jsi::valueFromDynamic(runtime, arg));
|
|
249
278
|
}
|
|
250
|
-
method.
|
|
279
|
+
method.callWithThis(
|
|
251
280
|
runtime, module, (const jsi::Value*)jsArgs.data(), jsArgs.size());
|
|
252
281
|
});
|
|
253
282
|
}
|
|
@@ -343,13 +372,14 @@ void ReactInstance::initializeRuntime(
|
|
|
343
372
|
}
|
|
344
373
|
auto name = args[0].asString(runtime).utf8(runtime);
|
|
345
374
|
if (!args[1].isObject() ||
|
|
346
|
-
!args[1].
|
|
375
|
+
!args[1].getObject(runtime).isFunction(runtime)) {
|
|
347
376
|
throw jsi::JSError(
|
|
348
377
|
runtime,
|
|
349
378
|
"The second argument to registerCallableModule must be a function that returns the JS module.");
|
|
350
379
|
}
|
|
351
|
-
|
|
352
|
-
|
|
380
|
+
callableModules_.emplace(
|
|
381
|
+
std::move(name),
|
|
382
|
+
args[1].getObject(runtime).getFunction(runtime));
|
|
353
383
|
return jsi::Value::undefined();
|
|
354
384
|
}));
|
|
355
385
|
|
|
@@ -80,6 +80,10 @@ New-Item -ItemType Directory -Path $TargetRoot\Microsoft.ReactNative.Cxx\ReactCo
|
|
|
80
80
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\callinvoker\ReactCommon\CallInvoker.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
81
81
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\callinvoker\ReactCommon\SchedulerPriority.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
82
82
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\CallbackWrapper.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
83
|
+
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\EventEmitter.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
84
|
+
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\Function.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
85
|
+
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\Base.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
86
|
+
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\Convert.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
83
87
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\LongLivedObject.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
84
88
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\LongLivedObject.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|
|
85
89
|
Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\nativemodule\core\ReactCommon\TurboModule.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
|