react-native-windows 0.80.0 → 0.81.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 +10 -5
- package/Directory.Build.props +1 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.js +3 -3
- package/Libraries/Alert/Alert.windows.js +5 -2
- package/Libraries/Alert/NativeAlertManager.js +1 -0
- package/Libraries/Alert/RCTAlertManager.android.js +19 -13
- package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
- package/Libraries/Alert/RCTAlertManager.js +1 -3
- package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
- package/Libraries/Animated/Animated.js +0 -1
- package/Libraries/Animated/Animated.js.flow +0 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +0 -1
- package/Libraries/Animated/AnimatedExports.js.flow +5 -1
- package/Libraries/Animated/AnimatedImplementation.js +44 -44
- package/Libraries/Animated/AnimatedMock.js +2 -2
- package/Libraries/Animated/Easing.js +1 -1
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/SpringConfig.js +1 -1
- package/Libraries/Animated/animations/Animation.js +10 -2
- package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
- package/Libraries/Animated/components/AnimatedText.js +2 -5
- package/Libraries/Animated/components/AnimatedView.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +39 -37
- package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
- package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/AppTheme/AppTheme.js +1 -1
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/BlobManager.js +4 -0
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +5 -1
- package/Libraries/Blob/URLSearchParams.js.flow +2 -1
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
- package/Libraries/Components/Button.js +10 -7
- package/Libraries/Components/Button.windows.js +4 -4
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +1 -1
- package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
- package/Libraries/Components/Popup/PopupNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.js +17 -8
- package/Libraries/Components/Pressable/Pressable.windows.js +17 -14
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
- package/Libraries/Components/ScrollView/ScrollView.js +25 -15
- package/Libraries/Components/ScrollView/ScrollView.windows.js +25 -14
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
- package/Libraries/Components/Sound/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
- package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
- package/Libraries/Components/Switch/Switch.js +10 -3
- package/Libraries/Components/Switch/Switch.windows.js +10 -3
- package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -15
- package/Libraries/Components/TextInput/TextInput.js +42 -39
- package/Libraries/Components/TextInput/TextInput.windows.js +69 -38
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -17
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
- package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Position.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +17 -3
- package/Libraries/Components/Touchable/Touchable.windows.js +17 -3
- package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +9 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +14 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +5 -3
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +10 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
- package/Libraries/Components/View/View.js +114 -29
- package/Libraries/Components/View/View.windows.js +261 -217
- package/Libraries/Components/View/ViewAccessibility.js +1 -8
- package/Libraries/Components/View/ViewAccessibility.windows.js +1 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +21 -1
- package/Libraries/Components/View/ViewPropTypes.js +9 -1
- package/Libraries/Components/View/ViewPropTypes.windows.js +9 -1
- package/Libraries/Core/Devtools/getDevServer.js +1 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +49 -7
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +27 -16
- package/Libraries/Core/InitializeCore.js +2 -23
- package/Libraries/Core/NativeExceptionsManager.js +1 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -2
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/checkNativeVersion.js +1 -0
- package/Libraries/Core/setUpDeveloperTools.js +13 -11
- package/Libraries/Core/setUpReactDevTools.js +21 -4
- package/Libraries/Debugging/DebuggingOverlay.js +12 -14
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/Image/AssetRegistry.js +4 -10
- package/Libraries/Image/Image.android.js +113 -107
- package/Libraries/Image/Image.ios.js +10 -2
- package/Libraries/Image/Image.windows.js +30 -20
- package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageSource.d.ts +5 -0
- package/Libraries/Image/ImageViewNativeComponent.js +3 -3
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/RelativeImageStub.js +2 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Image/resolveAssetSource.windows.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +64 -54
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/TaskQueue.js +8 -9
- package/Libraries/Interaction/TouchHistoryMath.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/Lists/FlatList.d.ts +9 -5
- package/Libraries/Lists/FlatList.js +6 -7
- package/Libraries/Lists/SectionList.js +4 -4
- package/Libraries/Lists/SectionListModern.js +9 -3
- package/Libraries/Lists/VirtualizedList.js +3 -2
- package/Libraries/LogBox/Data/LogBoxData.js +7 -4
- package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
- package/Libraries/LogBox/LogBox.js +72 -99
- package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
- package/Libraries/Modal/Modal.d.ts +8 -2
- package/Libraries/Modal/Modal.js +24 -3
- package/Libraries/Modal/Modal.windows.js +24 -3
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +9 -18
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +3 -3
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.windows.js +1 -1
- package/Libraries/Promise.js +1 -1
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
- package/Libraries/ReactNative/AppContainer-dev.js +4 -4
- package/Libraries/ReactNative/AppContainer-prod.js +0 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/RendererProxy.js +1 -1
- package/Libraries/ReactNative/RootTag.js +2 -2
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +261 -0
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/Settings/Settings.js +1 -1
- package/Libraries/Settings/SettingsFallback.js +1 -1
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
- package/Libraries/StyleSheet/processBoxShadow.js +0 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/StyleSheet/processColorArray.js +1 -1
- package/Libraries/StyleSheet/processFilter.js +1 -2
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +1 -1
- package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/Text/Text.d.ts +1 -2
- package/Libraries/Text/Text.js +255 -246
- package/Libraries/Text/Text.windows.js +282 -301
- package/Libraries/Text/TextAncestor.js +3 -9
- package/Libraries/Text/TextAncestorContext.js +23 -0
- package/Libraries/Text/TextNativeComponent.js +4 -0
- package/Libraries/Text/TextProps.js +2 -5
- package/Libraries/Text/TextProps.windows.js +2 -6
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CodegenTypesNamespace.js +2 -1
- package/Libraries/Types/CoreEventTypes.d.ts +4 -0
- package/Libraries/Types/ReactDevToolsTypes.js +0 -1
- package/Libraries/Utilities/Appearance.js +1 -1
- package/Libraries/Utilities/BackHandler.js.flow +1 -1
- package/Libraries/Utilities/DevLoadingView.js +1 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/HMRClient.js +13 -3
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
- package/Libraries/Utilities/PixelRatio.js +1 -1
- package/Libraries/Utilities/Platform.android.js +2 -5
- package/Libraries/Utilities/Platform.ios.js +2 -5
- package/Libraries/Utilities/Platform.js +1 -1
- package/Libraries/Utilities/Platform.js.flow +2 -2
- package/Libraries/Utilities/Platform.windows.js +2 -5
- package/Libraries/Utilities/PlatformTypes.js +2 -2
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +5 -3
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/createPerformanceLogger.js +27 -20
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +1 -1
- package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
- package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
- package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/Utilities/stringifyViewConfig.js +1 -1
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +1 -1
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/Vibration/Vibration.js +1 -2
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
- package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
- package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
- package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +5 -37
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +6 -6
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.h +0 -3
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +41 -37
- package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
- package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
- package/Microsoft.ReactNative/JsiApi.cpp +1 -1
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
- package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
- package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
- package/Microsoft.ReactNative/QuirkSettings.h +3 -0
- package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
- package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
- package/Microsoft.ReactNative/ReactHost/React.h +11 -4
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +166 -29
- package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
- package/Microsoft.ReactNative/ReactRootView.h +6 -0
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
- package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
- package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
- package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
- package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
- package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
- package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
- package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
- package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
- package/PropertySheets/Generated/PackageVersion.g.props +3 -3
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/React.Cpp.props +6 -4
- package/README.md +1 -1
- package/ReactCommon/ReactCommon.vcxproj +29 -21
- package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
- package/ReactCommon/cgmanifest.json +1 -1
- package/Scripts/Analyze-Crash.ps1 +87 -3
- package/Scripts/OfficeReact.Win32.nuspec +0 -1
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
- package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
- package/Scripts/creaternwapp.cmd +10 -6
- package/Scripts/rnw-dependencies.ps1 +33 -4
- package/Shared/CreateModules.h +0 -35
- package/Shared/DevServerHelper.h +13 -3
- package/Shared/DevSettings.h +6 -5
- package/Shared/DevSupportManager.cpp +79 -20
- package/Shared/DevSupportManager.h +7 -19
- package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
- package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
- package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
- package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
- package/Shared/HermesRuntimeHolder.cpp +29 -111
- package/Shared/HermesRuntimeHolder.h +214 -32
- package/Shared/IDevSupportManager.h +5 -2
- package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
- package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
- package/Shared/Inspector/ReactInspectorThread.h +18 -0
- package/Shared/JSI/RuntimeHolder.h +5 -2
- package/Shared/Modules/BlobModule.cpp +0 -90
- package/Shared/Modules/BlobModule.h +0 -40
- package/Shared/Modules/FileReaderModule.cpp +0 -104
- package/Shared/Modules/FileReaderModule.h +0 -38
- package/Shared/Modules/HttpModule.cpp +0 -172
- package/Shared/Modules/HttpModule.h +0 -47
- package/Shared/Modules/WebSocketModule.cpp +0 -287
- package/Shared/Modules/WebSocketModule.h +1 -94
- package/Shared/OInstance.cpp +45 -139
- package/Shared/OInstance.h +0 -1
- package/Shared/Shared.vcxitems +33 -32
- package/Shared/Shared.vcxitems.filters +38 -51
- package/Shared/TurboModuleManager.cpp +0 -1
- package/codegen/NativeDOMSpec.g.h +6 -0
- package/codegen/NativeDeviceInfoSpec.g.h +2 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
- package/codegen/NativeMutationObserverSpec.g.h +4 -4
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
- package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
- package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
- package/codegen/react/components/rnwcore/Props.cpp +535 -24
- package/codegen/react/components/rnwcore/Props.h +138 -0
- package/codegen/react/components/rnwcore/States.h +9 -78
- package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
- package/codegen/rnwcoreJSI-generated.cpp +101 -31
- package/codegen/rnwcoreJSI.h +169 -88
- package/include/Shared/II18nModule.h +0 -1
- package/index.js +22 -2
- package/index.windows.js +131 -221
- package/interface.js +1 -1
- package/jest/MockNativeMethods.js +9 -3
- package/jest/RefreshControlMock.js +32 -0
- package/jest/assetFileTransformer.js +1 -0
- package/jest/local-setup.js +4 -3
- package/jest/mock.js +39 -0
- package/jest/mockComponent.js +47 -17
- package/jest/mockNativeComponent.js +26 -15
- package/jest/mocks/AccessibilityInfo.js +62 -0
- package/jest/mocks/ActivityIndicator.js +23 -0
- package/jest/mocks/AppState.js +19 -0
- package/jest/mocks/Clipboard.js +16 -0
- package/jest/mocks/Image.js +23 -0
- package/jest/mocks/InitializeCore.js +9 -0
- package/jest/mocks/Linking.js +28 -0
- package/jest/mocks/Modal.js +33 -0
- package/jest/mocks/NativeComponentRegistry.js +30 -0
- package/jest/mocks/NativeModules.js +239 -0
- package/jest/mocks/RefreshControl.js +31 -0
- package/jest/mocks/RendererProxy.js +45 -0
- package/jest/mocks/ScrollView.js +58 -0
- package/jest/mocks/Text.js +27 -0
- package/jest/mocks/TextInput.js +32 -0
- package/jest/mocks/UIManager.js +60 -0
- package/jest/mocks/Vibration.js +16 -0
- package/jest/mocks/View.js +27 -0
- package/jest/mocks/ViewNativeComponent.js +23 -0
- package/jest/mocks/requireNativeComponent.js +22 -0
- package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
- package/jest/react-native-env.js +1 -0
- package/jest/renderer.js +1 -2
- package/jest/resolver.js +1 -0
- package/jest/setup.js +64 -449
- package/package.json +24 -24
- package/src/private/animated/NativeAnimatedHelper.js +8 -1
- package/src/private/animated/createAnimatedPropsHook.js +14 -4
- package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
- package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
- package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
- package/src/private/components/virtualview/VirtualView.js +145 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
- package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
- package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
- package/src/private/setup/setUpPerformanceObserver.js +7 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
- package/src/private/styles/composeStyles.js +5 -12
- package/src/private/types/HostInstance.js +1 -1
- package/src/private/webapis/dom/events/Event.js +3 -0
- package/src/private/webapis/dom/events/EventTarget.js +3 -0
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
- package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
- package/src/private/webapis/errors/DOMException.js +166 -0
- package/src/private/webapis/geometry/DOMRect.js +5 -0
- package/src/private/webapis/geometry/DOMRectList.js +4 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
- package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
- package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
- package/src/private/webapis/performance/EventTiming.js +1 -1
- package/src/private/webapis/performance/LongTasks.js +1 -1
- package/src/private/webapis/performance/MemoryInfo.js +4 -1
- package/src/private/webapis/performance/Performance.js +20 -9
- package/src/private/webapis/performance/PerformanceEntry.js +5 -1
- package/src/private/webapis/performance/PerformanceObserver.js +32 -28
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
- package/src/private/webapis/performance/ResourceTiming.js +108 -0
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
- package/src/private/webapis/performance/internals/Utilities.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
- package/src/private/webapis/structuredClone/structuredClone.js +233 -0
- package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
- package/src/private/webapis/webidl/PlatformObjects.js +59 -0
- package/templates/cpp-lib/example/metro.config.js +1 -1
- package/templates/cpp-lib/template.config.js +24 -0
- package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
- package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
- package/types/modules/Devtools.d.ts +23 -9
- package/Libraries/BugReporting/BugReporting.js +0 -140
- package/Libraries/BugReporting/NativeBugReporting.js +0 -13
- package/Libraries/BugReporting/dumpReactTree.js +0 -151
- package/Libraries/BugReporting/getReactData.js +0 -187
- package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
- package/Shared/InspectorPackagerConnection.cpp +0 -232
- package/Shared/InspectorPackagerConnection.h +0 -61
- package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
- package/Shared/Modules/ExceptionsManagerModule.h +0 -32
- package/Shared/Modules/I18nModule.cpp +0 -36
- package/Shared/Modules/I18nModule.h +0 -28
- package/Shared/Modules/NetworkingModule.cpp +0 -432
- package/Shared/Modules/NetworkingModule.h +0 -34
- package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
- package/Shared/Modules/PlatformConstantsModule.h +0 -23
- package/Shared/Modules/SourceCodeModule.cpp +0 -35
- package/Shared/Modules/SourceCodeModule.h +0 -27
- package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
- package/Shared/Modules/StatusBarManagerModule.h +0 -19
- package/codegen/NativeBugReportingSpec.g.h +0 -41
- package/jest/mockModal.js +0 -32
- package/jest/mockScrollView.js +0 -35
- package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
- /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
- /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
#ifndef JSI_VERSION
|
|
30
30
|
// Use the latest version by default
|
|
31
|
-
#define JSI_VERSION
|
|
31
|
+
#define JSI_VERSION 20
|
|
32
32
|
#endif
|
|
33
33
|
|
|
34
34
|
#if JSI_VERSION >= 3
|
|
@@ -65,6 +65,109 @@ class FBJSRuntime;
|
|
|
65
65
|
namespace facebook {
|
|
66
66
|
namespace jsi {
|
|
67
67
|
|
|
68
|
+
#if JSI_VERSION >= 20
|
|
69
|
+
/// UUID version 1 implementation. This should be constructed with constant
|
|
70
|
+
/// arguments to identify fixed UUIDs.
|
|
71
|
+
class JSI_EXPORT UUID {
|
|
72
|
+
public:
|
|
73
|
+
// Construct from raw parts
|
|
74
|
+
constexpr UUID(
|
|
75
|
+
uint32_t timeLow,
|
|
76
|
+
uint16_t timeMid,
|
|
77
|
+
uint16_t timeHighAndVersion,
|
|
78
|
+
uint16_t variantAndClockSeq,
|
|
79
|
+
uint64_t node)
|
|
80
|
+
: high(
|
|
81
|
+
((uint64_t)(timeLow) << 32) | ((uint64_t)(timeMid) << 16) |
|
|
82
|
+
((uint64_t)(timeHighAndVersion))),
|
|
83
|
+
low(((uint64_t)(variantAndClockSeq) << 48) | node) {}
|
|
84
|
+
|
|
85
|
+
// Default constructor (zero UUID)
|
|
86
|
+
constexpr UUID() : high(0), low(0) {}
|
|
87
|
+
|
|
88
|
+
constexpr UUID(const UUID&) = default;
|
|
89
|
+
constexpr UUID& operator=(const UUID&) = default;
|
|
90
|
+
|
|
91
|
+
constexpr bool operator==(const UUID& other) const {
|
|
92
|
+
return high == other.high && low == other.low;
|
|
93
|
+
}
|
|
94
|
+
constexpr bool operator!=(const UUID& other) const {
|
|
95
|
+
return !(*this == other);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Ordering (for std::map, sorting, etc.)
|
|
99
|
+
constexpr bool operator<(const UUID& other) const {
|
|
100
|
+
return (high < other.high) || (high == other.high && low < other.low);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Hash support for UUID (for unordered_map compatibility)
|
|
104
|
+
struct Hash {
|
|
105
|
+
std::size_t operator()(const UUID& uuid) const noexcept {
|
|
106
|
+
return std::hash<uint64_t>{}(uuid.high) ^
|
|
107
|
+
(std::hash<uint64_t>{}(uuid.low) << 1);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
// UUID format: 8-4-4-4-12
|
|
112
|
+
std::string toString() const {
|
|
113
|
+
std::string buffer(36, ' ');
|
|
114
|
+
std::snprintf(
|
|
115
|
+
buffer.data(),
|
|
116
|
+
buffer.size() + 1,
|
|
117
|
+
"%08x-%04x-%04x-%04x-%012llx",
|
|
118
|
+
getTimeLow(),
|
|
119
|
+
getTimeMid(),
|
|
120
|
+
getTimeHighAndVersion(),
|
|
121
|
+
getVariantAndClockSeq(),
|
|
122
|
+
(unsigned long long)getNode());
|
|
123
|
+
return buffer;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
constexpr uint32_t getTimeLow() const {
|
|
127
|
+
return (uint32_t)(high >> 32);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
constexpr uint16_t getTimeMid() const {
|
|
131
|
+
return (uint16_t)(high >> 16);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
constexpr uint16_t getTimeHighAndVersion() const {
|
|
135
|
+
return (uint16_t)high;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
constexpr uint16_t getVariantAndClockSeq() const {
|
|
139
|
+
return (uint16_t)(low >> 48);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
constexpr uint64_t getNode() const {
|
|
143
|
+
return low & 0xFFFFFFFFFFFF;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
private:
|
|
147
|
+
uint64_t high;
|
|
148
|
+
uint64_t low;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
/// Base interface that all JSI interfaces inherit from. Users should not try to
|
|
152
|
+
/// manipulate this base type directly, and should use castInterface to get the
|
|
153
|
+
/// appropriate subtype.
|
|
154
|
+
struct JSI_EXPORT ICast {
|
|
155
|
+
/// If the current object can be cast into the interface specified by \p
|
|
156
|
+
/// interfaceUUID, return a pointer to the object. Otherwise, return a null
|
|
157
|
+
/// pointer.
|
|
158
|
+
/// The returned interface has the same lifetime as the underlying object. It
|
|
159
|
+
/// does not need to be released when not needed.
|
|
160
|
+
virtual ICast* castInterface(const UUID& interfaceUUID) = 0;
|
|
161
|
+
|
|
162
|
+
protected:
|
|
163
|
+
/// Interfaces are not destructible, thus the destructor is intentionally
|
|
164
|
+
/// protected to prevent delete calls on the interface.
|
|
165
|
+
/// Additionally, the destructor is non-virtual to reduce the vtable
|
|
166
|
+
/// complexity from inheritance.
|
|
167
|
+
~ICast() = default;
|
|
168
|
+
};
|
|
169
|
+
#endif
|
|
170
|
+
|
|
68
171
|
/// Base class for buffers of data or bytecode that need to be passed to the
|
|
69
172
|
/// runtime. The buffer is expected to be fully immutable, so the result of
|
|
70
173
|
/// size(), data(), and the contents of the pointer returned by data() must not
|
|
@@ -209,10 +312,18 @@ class JSI_EXPORT NativeState {
|
|
|
209
312
|
/// in a non-Runtime-managed object, and not clean it up before the Runtime
|
|
210
313
|
/// is shut down. If your lifecycle is such that avoiding this is hard,
|
|
211
314
|
/// you will probably need to do use your own locks.
|
|
315
|
+
#if JSI_VERSION >= 20
|
|
316
|
+
class JSI_EXPORT Runtime : public ICast {
|
|
317
|
+
#else
|
|
212
318
|
class JSI_EXPORT Runtime {
|
|
319
|
+
#endif
|
|
213
320
|
public:
|
|
214
321
|
virtual ~Runtime();
|
|
215
322
|
|
|
323
|
+
#if JSI_VERSION >= 20
|
|
324
|
+
ICast* castInterface(const UUID& interfaceUUID) override;
|
|
325
|
+
#endif
|
|
326
|
+
|
|
216
327
|
/// Evaluates the given JavaScript \c buffer. \c sourceURL is used
|
|
217
328
|
/// to annotate the stack trace if there is an exception. The
|
|
218
329
|
/// contents may be utf8-encoded JS source code, or binary bytecode
|
|
@@ -310,6 +421,18 @@ class JSI_EXPORT Runtime {
|
|
|
310
421
|
/// implementation of this function returns an \c Instrumentation instance
|
|
311
422
|
/// which returns no metrics.
|
|
312
423
|
virtual Instrumentation& instrumentation();
|
|
424
|
+
|
|
425
|
+
#if JSI_VERSION >= 20
|
|
426
|
+
/// Stores the pointer \p data with the \p uuid in the runtime. This can be
|
|
427
|
+
/// used to store some custom data within the runtime. When the runtime is
|
|
428
|
+
/// destroyed, or if an entry at an existing key is overwritten, the runtime
|
|
429
|
+
/// will release its ownership of the held object.
|
|
430
|
+
void setRuntimeData(const UUID& uuid, const std::shared_ptr<void>& data);
|
|
431
|
+
|
|
432
|
+
/// Returns the data associated with the \p uuid in the runtime. If there's no
|
|
433
|
+
/// data associated with the uuid, return a null pointer.
|
|
434
|
+
std::shared_ptr<void> getRuntimeData(const UUID& uuid);
|
|
435
|
+
#endif
|
|
313
436
|
|
|
314
437
|
protected:
|
|
315
438
|
friend class Pointer;
|
|
@@ -327,6 +450,21 @@ class JSI_EXPORT Runtime {
|
|
|
327
450
|
friend class Value;
|
|
328
451
|
friend class Scope;
|
|
329
452
|
friend class JSError;
|
|
453
|
+
|
|
454
|
+
#if JSI_VERSION >= 20
|
|
455
|
+
/// Stores the pointer \p data with the \p uuid in the runtime. This can be
|
|
456
|
+
/// used to store some custom data within the runtime. When the runtime is
|
|
457
|
+
/// destroyed, or if an entry at an existing key is overwritten, the runtime
|
|
458
|
+
/// will release its ownership by calling \p deleter.
|
|
459
|
+
virtual void setRuntimeDataImpl(
|
|
460
|
+
const UUID& uuid,
|
|
461
|
+
const void* data,
|
|
462
|
+
void (*deleter)(const void* data));
|
|
463
|
+
|
|
464
|
+
/// Returns the data associated with the \p uuid in the runtime. If there's no
|
|
465
|
+
/// data associated with the uuid, return a null pointer.
|
|
466
|
+
virtual const void* getRuntimeDataImpl(const UUID& uuid);
|
|
467
|
+
#endif
|
|
330
468
|
|
|
331
469
|
// Potential optimization: avoid the cloneFoo() virtual dispatch,
|
|
332
470
|
// and instead just fix the number of fields, and copy them, since
|
|
@@ -1793,6 +1931,34 @@ class JSI_EXPORT JSError : public JSIException {
|
|
|
1793
1931
|
std::string stack_;
|
|
1794
1932
|
};
|
|
1795
1933
|
|
|
1934
|
+
/// Helper function to cast the object pointed to by \p ptr into an interface
|
|
1935
|
+
/// specified by \c U. If cast is successful, return a pointer to the object
|
|
1936
|
+
/// as a raw pointer of \c U. Otherwise, return nullptr.
|
|
1937
|
+
/// The returned interface same lifetime as the object referenced by \p ptr.
|
|
1938
|
+
#if JSI_VERSION >= 20
|
|
1939
|
+
template <typename U, typename T>
|
|
1940
|
+
U* castInterface(T* ptr) {
|
|
1941
|
+
if (ptr) {
|
|
1942
|
+
return static_cast<U*>(ptr->castInterface(U::uuid));
|
|
1943
|
+
}
|
|
1944
|
+
return nullptr;
|
|
1945
|
+
};
|
|
1946
|
+
|
|
1947
|
+
/// Helper function to cast the object managed by the shared_ptr \p ptr into an
|
|
1948
|
+
/// interface specified by \c U. If the cast is successful, return a shared_ptr
|
|
1949
|
+
/// of type \c U to the object. Otherwise, return an empty pointer.
|
|
1950
|
+
/// The returned shared_ptr shares ownership of the object with \p ptr.
|
|
1951
|
+
template <typename U, typename T>
|
|
1952
|
+
std::shared_ptr<U> dynamicInterfaceCast(T&& ptr) {
|
|
1953
|
+
auto* p = ptr->castInterface(U::uuid);
|
|
1954
|
+
U* res = static_cast<U*>(p);
|
|
1955
|
+
if (res) {
|
|
1956
|
+
return std::shared_ptr<U>(std::forward<T>(ptr), res);
|
|
1957
|
+
}
|
|
1958
|
+
return nullptr;
|
|
1959
|
+
}
|
|
1960
|
+
#endif
|
|
1961
|
+
|
|
1796
1962
|
} // namespace jsi
|
|
1797
1963
|
} // namespace facebook
|
|
1798
1964
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<!-- If your project is using glog, then GLog_IncludeDir could be set to include the actual location of glog -->
|
|
15
15
|
<GLog_IncludeDir Condition="'$(GLog_IncludeDir)' == '' AND Exists('$(MSBuildThisFileDirectory)stubs\glog\logging.h')">$(MSBuildThisFileDirectory)stubs</GLog_IncludeDir>
|
|
16
16
|
|
|
17
|
-
<NodeApiJsiCommitHash>
|
|
17
|
+
<NodeApiJsiCommitHash>21b47f08b762b21b1d4d970940ab23f59f43249c</NodeApiJsiCommitHash>
|
|
18
18
|
<NodeApiJsiLocal Condition="Exists('$(MSBuildThisFileDirectory)NodeApiJsiRuntime.cpp')">true</NodeApiJsiLocal>
|
|
19
19
|
<NodeApiJsiDir Condition="'$(NodeApiJsiDir)' == '' AND '$(NodeApiJsiLocal)' == 'true'">$(MSBuildThisFileDirectory)</NodeApiJsiDir>
|
|
20
20
|
<NodeApiJsiDir Condition="'$(NodeApiJsiDir)' == '' AND '$(ReactNativeDir)' != ''">$(ReactNativeDir)\..\..\node_modules\.node-api-jsi\node-api-jsi-$(NodeApiJsiCommitHash)\</NodeApiJsiDir>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
$(NodeApiJsiSrcDir);
|
|
36
36
|
%(AdditionalIncludeDirectories)
|
|
37
37
|
</AdditionalIncludeDirectories>
|
|
38
|
-
<PreprocessorDefinitions>JSI_VERSION=
|
|
38
|
+
<PreprocessorDefinitions>JSI_VERSION=20;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
39
39
|
</ClCompile>
|
|
40
40
|
<Midl>
|
|
41
41
|
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
@@ -44,12 +44,21 @@ using namespace std::string_view_literals;
|
|
|
44
44
|
// We use macros to report errors.
|
|
45
45
|
// Macros provide more flexibility to show assert and provide failure context.
|
|
46
46
|
|
|
47
|
+
#if defined(__clang__) || defined(__GNUC__)
|
|
48
|
+
#define CRASH_NOW() __builtin_trap()
|
|
49
|
+
#elif defined(_MSC_VER)
|
|
50
|
+
#include <intrin.h>
|
|
51
|
+
#define CRASH_NOW() __fastfail(/*FAST_FAIL_FATAL_APP_EXIT*/ 7)
|
|
52
|
+
#else
|
|
53
|
+
#define CRASH_NOW() *((volatile int *)0) = 1
|
|
54
|
+
#endif
|
|
55
|
+
|
|
47
56
|
// Check condition and crash process if it fails.
|
|
48
57
|
#define CHECK_ELSE_CRASH(condition, message) \
|
|
49
58
|
do { \
|
|
50
59
|
if (!(condition)) { \
|
|
51
60
|
assert(false && "Failed: " #condition && (message)); \
|
|
52
|
-
|
|
61
|
+
CRASH_NOW(); \
|
|
53
62
|
} \
|
|
54
63
|
} while (false)
|
|
55
64
|
|
|
@@ -286,7 +295,7 @@ class NodeApiJsiRuntime : public jsi::Runtime {
|
|
|
286
295
|
jsi::Array createArray(size_t length) override;
|
|
287
296
|
#if JSI_VERSION >= 9
|
|
288
297
|
jsi::ArrayBuffer createArrayBuffer(
|
|
289
|
-
std::shared_ptr<jsi::MutableBuffer> buffer);
|
|
298
|
+
std::shared_ptr<jsi::MutableBuffer> buffer) override;
|
|
290
299
|
#endif
|
|
291
300
|
size_t size(const jsi::Array &arr) override;
|
|
292
301
|
size_t size(const jsi::ArrayBuffer &arrBuf) override;
|
|
@@ -1628,8 +1637,8 @@ jsi::Object NodeApiJsiRuntime::createObject(
|
|
|
1628
1637
|
// access to the hostObject's get, set, and getPropertyNames methods. There is
|
|
1629
1638
|
// a special symbol property ID, 'hostObjectSymbol', used to access the
|
|
1630
1639
|
// hostObjectWrapper from the Proxy.
|
|
1631
|
-
napi_value hostObjectHolder =
|
|
1632
|
-
|
|
1640
|
+
napi_value hostObjectHolder = createExternalObject(
|
|
1641
|
+
std::make_unique<std::shared_ptr<jsi::HostObject>>(
|
|
1633
1642
|
std::move(hostObject)));
|
|
1634
1643
|
napi_value obj = createNodeApiObject();
|
|
1635
1644
|
setProperty(
|
|
@@ -2420,31 +2429,89 @@ jsi::JSError NodeApiJsiRuntime::makeJSError(Args &&...args) {
|
|
|
2420
2429
|
return jsi::JSError(*this, errorStream.str());
|
|
2421
2430
|
}
|
|
2422
2431
|
|
|
2423
|
-
// Throws jsi::JSError or jsi::JSINativeException from Node-API error.
|
|
2424
2432
|
[[noreturn]] void NodeApiJsiRuntime::throwJSException(
|
|
2425
2433
|
napi_status status) const {
|
|
2434
|
+
auto formatStatusError = [](napi_status status) -> std::string {
|
|
2435
|
+
// TODO: (vmoroz) use a more sophisticated error formatting.
|
|
2436
|
+
std::ostringstream errorStream;
|
|
2437
|
+
errorStream << "A call to Node-API returned error code 0x" << std::hex
|
|
2438
|
+
<< static_cast<int>(status) << '.';
|
|
2439
|
+
return errorStream.str();
|
|
2440
|
+
};
|
|
2441
|
+
|
|
2442
|
+
NodeApiScope scope{*this};
|
|
2443
|
+
// Retrieve the exception value and clear as we will rethrow it as a C++
|
|
2444
|
+
// exception.
|
|
2426
2445
|
napi_value jsError{};
|
|
2427
2446
|
CHECK_NAPI_ELSE_CRASH(
|
|
2428
2447
|
jsrApi_->napi_get_and_clear_last_exception(env_, &jsError));
|
|
2429
2448
|
napi_valuetype jsErrorType;
|
|
2430
2449
|
CHECK_NAPI_ELSE_CRASH(jsrApi_->napi_typeof(env_, jsError, &jsErrorType));
|
|
2450
|
+
if (jsErrorType == napi_undefined) {
|
|
2451
|
+
throw jsi::JSINativeException(formatStatusError(status).c_str());
|
|
2452
|
+
}
|
|
2453
|
+
jsi::Value jsiJSError = toJsiValue(jsError);
|
|
2454
|
+
|
|
2455
|
+
std::string msg = "No message";
|
|
2456
|
+
std::string stack = "No stack";
|
|
2457
|
+
if (jsErrorType == napi_string) {
|
|
2458
|
+
// If the exception is a string, use it as the message.
|
|
2459
|
+
msg = stringToStdString(jsError);
|
|
2460
|
+
} else if (jsErrorType == napi_object) {
|
|
2461
|
+
// If the exception is an object try to retrieve its message and stack
|
|
2462
|
+
// properties.
|
|
2463
|
+
|
|
2464
|
+
/// Attempt to retrieve a string property \p sym from \c jsError and store
|
|
2465
|
+
/// it in \p out. Ignore any catchable errors and non-string properties.
|
|
2466
|
+
auto getStrProp = [this, jsError](const char *sym, std::string &out) {
|
|
2467
|
+
napi_value value{};
|
|
2468
|
+
napi_status propStatus =
|
|
2469
|
+
jsrApi_->napi_get_named_property(env_, jsError, sym, &value);
|
|
2470
|
+
if (propStatus != napi_ok) {
|
|
2471
|
+
// An exception was thrown while retrieving the property, if it is
|
|
2472
|
+
// catchable, suppress it. Otherwise, rethrow this exception without
|
|
2473
|
+
// trying to invoke any more JavaScript.
|
|
2474
|
+
napi_value newJSError{};
|
|
2475
|
+
CHECK_NAPI_ELSE_CRASH(
|
|
2476
|
+
jsrApi_->napi_get_and_clear_last_exception(env_, &newJSError));
|
|
2477
|
+
napi_valuetype newJSErrorType;
|
|
2478
|
+
CHECK_NAPI_ELSE_CRASH(
|
|
2479
|
+
jsrApi_->napi_typeof(env_, newJSError, &newJSErrorType));
|
|
2480
|
+
|
|
2481
|
+
if (propStatus != napi_cannot_run_js)
|
|
2482
|
+
return;
|
|
2431
2483
|
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2484
|
+
// An uncatchable error occurred, it is unsafe to do anything that
|
|
2485
|
+
// might execute more JavaScript.
|
|
2486
|
+
if (newJSErrorType != napi_undefined) {
|
|
2487
|
+
throw jsi::JSError(
|
|
2488
|
+
toJsiValue(newJSError),
|
|
2489
|
+
"Uncatchable exception thrown while creating error",
|
|
2490
|
+
"No stack");
|
|
2491
|
+
} else {
|
|
2492
|
+
std::ostringstream errorStream;
|
|
2493
|
+
errorStream << "A call to Node-API returned error code 0x" << std::hex
|
|
2494
|
+
<< propStatus << '.';
|
|
2495
|
+
throw jsi::JSINativeException(errorStream.str().c_str());
|
|
2496
|
+
}
|
|
2497
|
+
}
|
|
2498
|
+
|
|
2499
|
+
// If the property is a string, update out. Otherwise ignore it.
|
|
2500
|
+
napi_valuetype valueType;
|
|
2501
|
+
CHECK_NAPI_ELSE_CRASH(jsrApi_->napi_typeof(env_, value, &valueType));
|
|
2502
|
+
if (valueType == napi_string) {
|
|
2503
|
+
out = stringToStdString(value);
|
|
2504
|
+
}
|
|
2505
|
+
};
|
|
2506
|
+
|
|
2507
|
+
getStrProp("message", msg);
|
|
2508
|
+
getStrProp("stack", stack);
|
|
2447
2509
|
}
|
|
2510
|
+
|
|
2511
|
+
// Use the constructor of jsi::JSError that cannot run additional
|
|
2512
|
+
// JS, since that may then result in additional exceptions and infinite
|
|
2513
|
+
// recursion.
|
|
2514
|
+
throw jsi::JSError(std::move(jsiJSError), msg, stack);
|
|
2448
2515
|
}
|
|
2449
2516
|
|
|
2450
2517
|
// Throws jsi::JSINativeException with a message.
|
|
@@ -2467,7 +2534,9 @@ void NodeApiJsiRuntime::rewriteErrorMessage(napi_value jsError) const {
|
|
|
2467
2534
|
jsrApi_->napi_get_and_clear_last_exception(env_, &ignoreJSError);
|
|
2468
2535
|
} else if (typeOf(message) == napi_string) {
|
|
2469
2536
|
// JSI unit tests expect V8- or JSC-like messages for the stack overflow.
|
|
2470
|
-
|
|
2537
|
+
std::string messageStr = stringToStdString(message);
|
|
2538
|
+
if (messageStr == "Out of stack space" ||
|
|
2539
|
+
messageStr.find("Maximum call stack") != std::string::npos) {
|
|
2471
2540
|
setProperty(
|
|
2472
2541
|
jsError,
|
|
2473
2542
|
getNodeApiValue(propertyId_.message),
|
|
@@ -2594,7 +2663,7 @@ napi_value NodeApiJsiRuntime::getBoolean(bool value) const {
|
|
|
2594
2663
|
|
|
2595
2664
|
// Gets value of the Boolean napi_value.
|
|
2596
2665
|
bool NodeApiJsiRuntime::getValueBool(napi_value value) const {
|
|
2597
|
-
bool result{
|
|
2666
|
+
bool result{false};
|
|
2598
2667
|
CHECK_NAPI(jsrApi_->napi_get_value_bool(env_, value, &result));
|
|
2599
2668
|
return result;
|
|
2600
2669
|
}
|
|
@@ -2848,13 +2917,14 @@ void NodeApiJsiRuntime::setElement(
|
|
|
2848
2917
|
napi_callback_info info) noexcept {
|
|
2849
2918
|
HostFunctionWrapper *hostFuncWrapper{};
|
|
2850
2919
|
size_t argc{};
|
|
2851
|
-
CHECK_NAPI_ELSE_CRASH(
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
|
|
2857
|
-
|
|
2920
|
+
CHECK_NAPI_ELSE_CRASH(
|
|
2921
|
+
JSRuntimeApi::current()->napi_get_cb_info(
|
|
2922
|
+
env,
|
|
2923
|
+
info,
|
|
2924
|
+
&argc,
|
|
2925
|
+
nullptr,
|
|
2926
|
+
nullptr,
|
|
2927
|
+
reinterpret_cast<void **>(&hostFuncWrapper)));
|
|
2858
2928
|
CHECK_ELSE_CRASH(hostFuncWrapper, "Cannot find the host function");
|
|
2859
2929
|
NodeApiJsiRuntime &runtime = hostFuncWrapper->runtime();
|
|
2860
2930
|
NodeApiPointerValueScope scope{runtime};
|
|
@@ -2863,8 +2933,9 @@ void NodeApiJsiRuntime::setElement(
|
|
|
2863
2933
|
[&env, &info, &argc, &runtime, &hostFuncWrapper]() {
|
|
2864
2934
|
SmallBuffer<napi_value, MaxStackArgCount> napiArgs(argc);
|
|
2865
2935
|
napi_value thisArg{};
|
|
2866
|
-
CHECK_NAPI_ELSE_CRASH(
|
|
2867
|
-
|
|
2936
|
+
CHECK_NAPI_ELSE_CRASH(
|
|
2937
|
+
JSRuntimeApi::current()->napi_get_cb_info(
|
|
2938
|
+
env, info, &argc, napiArgs.data(), &thisArg, nullptr));
|
|
2868
2939
|
CHECK_ELSE_CRASH(napiArgs.size() == argc, "Wrong argument count");
|
|
2869
2940
|
const JsiValueView jsiThisArg{&runtime, thisArg};
|
|
2870
2941
|
JsiValueViewArgs jsiArgs(
|
|
@@ -2986,13 +3057,14 @@ void NodeApiJsiRuntime::setProxyTrap(
|
|
|
2986
3057
|
NodeApiJsiRuntime *runtime{};
|
|
2987
3058
|
napi_value args[argCount]{};
|
|
2988
3059
|
size_t actualArgCount{argCount};
|
|
2989
|
-
CHECK_NAPI_ELSE_CRASH(
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
3060
|
+
CHECK_NAPI_ELSE_CRASH(
|
|
3061
|
+
JSRuntimeApi::current()->napi_get_cb_info(
|
|
3062
|
+
env,
|
|
3063
|
+
info,
|
|
3064
|
+
&actualArgCount,
|
|
3065
|
+
args,
|
|
3066
|
+
nullptr,
|
|
3067
|
+
reinterpret_cast<void **>(&runtime)));
|
|
2996
3068
|
CHECK_ELSE_CRASH(
|
|
2997
3069
|
actualArgCount == argCount, "proxy trap requires argCount arguments.");
|
|
2998
3070
|
NodeApiPointerValueScope scope{*runtime};
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
-
#include <functional>
|
|
11
|
-
#include <memory>
|
|
12
|
-
|
|
13
10
|
#include "SchedulerPriority.h"
|
|
14
11
|
|
|
12
|
+
#include <functional>
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
15
|
namespace facebook::jsi {
|
|
16
16
|
class Runtime;
|
|
17
17
|
}
|
|
@@ -45,7 +45,7 @@ class CallInvoker {
|
|
|
45
45
|
invokeSync([func](jsi::Runtime&) { func(); });
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
virtual ~CallInvoker()
|
|
48
|
+
virtual ~CallInvoker() = default;
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
using NativeMethodCallFunc = std::function<void()>;
|
|
@@ -58,7 +58,7 @@ class NativeMethodCallInvoker {
|
|
|
58
58
|
virtual void invokeSync(
|
|
59
59
|
const std::string& methodName,
|
|
60
60
|
NativeMethodCallFunc&& func) = 0;
|
|
61
|
-
virtual ~NativeMethodCallInvoker()
|
|
61
|
+
virtual ~NativeMethodCallInvoker() = default;
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
} // namespace facebook::react
|
|
@@ -35,23 +35,4 @@ jsi::Value createPromiseAsJSIValue(
|
|
|
35
35
|
jsi::Runtime& rt,
|
|
36
36
|
PromiseSetupFunctionType&& func);
|
|
37
37
|
|
|
38
|
-
// Deprecated. Use AsyncCallback instead.
|
|
39
|
-
class RAIICallbackWrapperDestroyer {
|
|
40
|
-
public:
|
|
41
|
-
RAIICallbackWrapperDestroyer(std::weak_ptr<CallbackWrapper> callbackWrapper)
|
|
42
|
-
: callbackWrapper_(callbackWrapper) {}
|
|
43
|
-
|
|
44
|
-
~RAIICallbackWrapperDestroyer() {
|
|
45
|
-
auto strongWrapper = callbackWrapper_.lock();
|
|
46
|
-
if (!strongWrapper) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
strongWrapper->destroy();
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
private:
|
|
54
|
-
std::weak_ptr<CallbackWrapper> callbackWrapper_;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
38
|
} // namespace facebook::react
|
|
@@ -33,14 +33,14 @@ namespace detail {
|
|
|
33
33
|
template <typename F>
|
|
34
34
|
struct function_wrapper;
|
|
35
35
|
|
|
36
|
-
template <typename
|
|
37
|
-
struct function_wrapper<
|
|
38
|
-
using type = std::function<
|
|
36
|
+
template <typename ClassT, typename ReturnT, typename... ArgsT>
|
|
37
|
+
struct function_wrapper<ReturnT (ClassT::*)(ArgsT...)> {
|
|
38
|
+
using type = std::function<ReturnT(ArgsT...)>;
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
template <typename
|
|
42
|
-
struct function_wrapper<
|
|
43
|
-
using type = std::function<
|
|
41
|
+
template <typename ClassT, typename ReturnT, typename... ArgsT>
|
|
42
|
+
struct function_wrapper<ReturnT (ClassT::*)(ArgsT...) const> {
|
|
43
|
+
using type = std::function<ReturnT(ArgsT...)>;
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
template <typename T, typename = void>
|
|
@@ -61,36 +61,47 @@ struct bridging_wrapper<
|
|
|
61
61
|
template <typename T>
|
|
62
62
|
using bridging_t = typename detail::bridging_wrapper<T>::type;
|
|
63
63
|
|
|
64
|
-
template <typename
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
template <typename ReturnT, typename JSArgT>
|
|
65
|
+
requires is_jsi_v<JSArgT>
|
|
66
|
+
auto fromJs(
|
|
67
|
+
jsi::Runtime& rt,
|
|
68
|
+
JSArgT&& value,
|
|
69
|
+
const std::shared_ptr<CallInvoker>& /*unused*/)
|
|
70
|
+
-> decltype(static_cast<ReturnT>(
|
|
71
|
+
std::move(convert(rt, std::forward<JSArgT>(value)))))
|
|
72
|
+
|
|
73
|
+
{
|
|
74
|
+
return static_cast<ReturnT>(
|
|
75
|
+
std::move(convert(rt, std::forward<JSArgT>(value))));
|
|
69
76
|
}
|
|
70
77
|
|
|
71
|
-
template <typename
|
|
72
|
-
auto fromJs(
|
|
73
|
-
|
|
78
|
+
template <typename ReturnT, typename JSArgT>
|
|
79
|
+
auto fromJs(
|
|
80
|
+
jsi::Runtime& rt,
|
|
81
|
+
JSArgT&& value,
|
|
82
|
+
const std::shared_ptr<CallInvoker>& /*unused*/)
|
|
83
|
+
-> decltype(Bridging<remove_cvref_t<ReturnT>>::fromJs(
|
|
74
84
|
rt,
|
|
75
|
-
convert(rt, std::forward<
|
|
76
|
-
return Bridging<remove_cvref_t<
|
|
77
|
-
rt, convert(rt, std::forward<
|
|
85
|
+
convert(rt, std::forward<JSArgT>(value)))) {
|
|
86
|
+
return Bridging<remove_cvref_t<ReturnT>>::fromJs(
|
|
87
|
+
rt, convert(rt, std::forward<JSArgT>(value)));
|
|
78
88
|
}
|
|
79
89
|
|
|
80
|
-
template <typename
|
|
90
|
+
template <typename ReturnT, typename JSArgT>
|
|
81
91
|
auto fromJs(
|
|
82
92
|
jsi::Runtime& rt,
|
|
83
|
-
|
|
93
|
+
JSArgT&& value,
|
|
84
94
|
const std::shared_ptr<CallInvoker>& jsInvoker)
|
|
85
|
-
-> decltype(Bridging<remove_cvref_t<
|
|
95
|
+
-> decltype(Bridging<remove_cvref_t<ReturnT>>::fromJs(
|
|
86
96
|
rt,
|
|
87
|
-
convert(rt, std::forward<
|
|
97
|
+
convert(rt, std::forward<JSArgT>(value)),
|
|
88
98
|
jsInvoker)) {
|
|
89
|
-
return Bridging<remove_cvref_t<
|
|
90
|
-
rt, convert(rt, std::forward<
|
|
99
|
+
return Bridging<remove_cvref_t<ReturnT>>::fromJs(
|
|
100
|
+
rt, convert(rt, std::forward<JSArgT>(value)), jsInvoker);
|
|
91
101
|
}
|
|
92
102
|
|
|
93
|
-
template <typename T
|
|
103
|
+
template <typename T>
|
|
104
|
+
requires is_jsi_v<T>
|
|
94
105
|
auto toJs(
|
|
95
106
|
jsi::Runtime& rt,
|
|
96
107
|
T&& value,
|
|
@@ -143,33 +154,33 @@ inline constexpr bool supportsFromJs<
|
|
|
143
154
|
template <typename, typename = jsi::Value, typename = void>
|
|
144
155
|
inline constexpr bool supportsToJs = false;
|
|
145
156
|
|
|
146
|
-
template <typename
|
|
157
|
+
template <typename JSReturnT, typename ReturnT>
|
|
147
158
|
inline constexpr bool supportsToJs<
|
|
148
|
-
|
|
149
|
-
|
|
159
|
+
JSReturnT,
|
|
160
|
+
ReturnT,
|
|
150
161
|
std::void_t<decltype(toJs(
|
|
151
162
|
std::declval<jsi::Runtime&>(),
|
|
152
|
-
std::declval<
|
|
163
|
+
std::declval<JSReturnT>(),
|
|
153
164
|
nullptr))>> =
|
|
154
165
|
std::is_convertible_v<
|
|
155
166
|
decltype(toJs(
|
|
156
167
|
std::declval<jsi::Runtime&>(),
|
|
157
|
-
std::declval<
|
|
168
|
+
std::declval<JSReturnT>(),
|
|
158
169
|
nullptr)),
|
|
159
|
-
|
|
170
|
+
ReturnT>;
|
|
160
171
|
|
|
161
|
-
template <typename
|
|
172
|
+
template <typename ReturnT>
|
|
162
173
|
inline constexpr bool supportsToJs<
|
|
163
|
-
|
|
174
|
+
ReturnT,
|
|
164
175
|
jsi::Value,
|
|
165
176
|
std::void_t<decltype(toJs(
|
|
166
177
|
std::declval<jsi::Runtime&>(),
|
|
167
|
-
std::declval<
|
|
178
|
+
std::declval<ReturnT>(),
|
|
168
179
|
nullptr))>> =
|
|
169
180
|
std::is_convertible_v<
|
|
170
181
|
decltype(toJs(
|
|
171
182
|
std::declval<jsi::Runtime&>(),
|
|
172
|
-
std::declval<
|
|
183
|
+
std::declval<ReturnT>(),
|
|
173
184
|
nullptr)),
|
|
174
185
|
jsi::Value>;
|
|
175
186
|
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include <react/bridging/Error.h>
|
|
16
16
|
#include <react/bridging/EventEmitter.h>
|
|
17
17
|
#include <react/bridging/Function.h>
|
|
18
|
+
#include <react/bridging/HighResTimeStamp.h>
|
|
18
19
|
#include <react/bridging/Number.h>
|
|
19
20
|
#include <react/bridging/Object.h>
|
|
20
21
|
#include <react/bridging/Promise.h>
|