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
|
@@ -1,151 +0,0 @@
|
|
|
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
|
-
* @format
|
|
8
|
-
* @flow strict
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
/*
|
|
14
|
-
const getReactData = require('getReactData').default;
|
|
15
|
-
|
|
16
|
-
const INDENTATION_SIZE = 2;
|
|
17
|
-
const MAX_DEPTH = 2;
|
|
18
|
-
const MAX_STRING_LENGTH = 50;
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Dump all React Native root views and their content. This function tries
|
|
23
|
-
* it best to get the content but ultimately relies on implementation details
|
|
24
|
-
* of React and will fail in future versions.
|
|
25
|
-
*/
|
|
26
|
-
function dumpReactTree(): string {
|
|
27
|
-
try {
|
|
28
|
-
return getReactTree();
|
|
29
|
-
} catch (e) {
|
|
30
|
-
return 'Failed to dump react tree: ' + e;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function getReactTree() {
|
|
35
|
-
// TODO(sema): Reenable tree dumps using the Fiber tree structure. #15945684
|
|
36
|
-
return (
|
|
37
|
-
'React tree dumps have been temporarily disabled while React is ' +
|
|
38
|
-
'upgraded to Fiber.'
|
|
39
|
-
);
|
|
40
|
-
/*
|
|
41
|
-
let output = '';
|
|
42
|
-
const rootIds = Object.getOwnPropertyNames(ReactNativeMount._instancesByContainerID);
|
|
43
|
-
for (const rootId of rootIds) {
|
|
44
|
-
const instance = ReactNativeMount._instancesByContainerID[rootId];
|
|
45
|
-
output += `============ Root ID: ${rootId} ============\n`;
|
|
46
|
-
output += dumpNode(instance, 0);
|
|
47
|
-
output += `============ End root ID: ${rootId} ============\n`;
|
|
48
|
-
}
|
|
49
|
-
return output;
|
|
50
|
-
*/
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/*
|
|
54
|
-
function dumpNode(node: Object, indentation: number) {
|
|
55
|
-
const data = getReactData(node);
|
|
56
|
-
if (data.nodeType === 'Text') {
|
|
57
|
-
return indent(indentation) + data.text + '\n';
|
|
58
|
-
} else if (data.nodeType === 'Empty') {
|
|
59
|
-
return '';
|
|
60
|
-
}
|
|
61
|
-
let output = indent(indentation) + `<${data.name}`;
|
|
62
|
-
if (data.nodeType === 'Composite') {
|
|
63
|
-
for (const propName of Object.getOwnPropertyNames(data.props || {})) {
|
|
64
|
-
if (isNormalProp(propName)) {
|
|
65
|
-
try {
|
|
66
|
-
const value = convertValue(data.props[propName]);
|
|
67
|
-
if (value) {
|
|
68
|
-
output += ` ${propName}=${value}`;
|
|
69
|
-
}
|
|
70
|
-
} catch (e) {
|
|
71
|
-
const message = `[Failed to get property: ${e}]`;
|
|
72
|
-
output += ` ${propName}=${message}`;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
let childOutput = '';
|
|
78
|
-
for (const child of data.children || []) {
|
|
79
|
-
childOutput += dumpNode(child, indentation + 1);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (childOutput) {
|
|
83
|
-
output += '>\n' + childOutput + indent(indentation) + `</${data.name}>\n`;
|
|
84
|
-
} else {
|
|
85
|
-
output += ' />\n';
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
return output;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function isNormalProp(name: string): boolean {
|
|
92
|
-
switch (name) {
|
|
93
|
-
case 'children':
|
|
94
|
-
case 'key':
|
|
95
|
-
case 'ref':
|
|
96
|
-
return false;
|
|
97
|
-
default:
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function convertObject(object: Object, depth: number) {
|
|
103
|
-
if (depth >= MAX_DEPTH) {
|
|
104
|
-
return '[...omitted]';
|
|
105
|
-
}
|
|
106
|
-
let output = '{';
|
|
107
|
-
let first = true;
|
|
108
|
-
for (const key of Object.getOwnPropertyNames(object)) {
|
|
109
|
-
if (!first) {
|
|
110
|
-
output += ', ';
|
|
111
|
-
}
|
|
112
|
-
output += `${key}: ${convertValue(object[key], depth + 1)}`;
|
|
113
|
-
first = false;
|
|
114
|
-
}
|
|
115
|
-
return output + '}';
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function convertValue(value, depth = 0): ?string {
|
|
119
|
-
if (!value) {
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
switch (typeof value) {
|
|
124
|
-
case 'string':
|
|
125
|
-
return JSON.stringify(possiblyEllipsis(value).replace('\n', '\\n'));
|
|
126
|
-
case 'boolean':
|
|
127
|
-
case 'number':
|
|
128
|
-
return JSON.stringify(value);
|
|
129
|
-
case 'function':
|
|
130
|
-
return '[function]';
|
|
131
|
-
case 'object':
|
|
132
|
-
return convertObject(value, depth);
|
|
133
|
-
default:
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
function possiblyEllipsis(value: string) {
|
|
139
|
-
if (value.length > MAX_STRING_LENGTH) {
|
|
140
|
-
return value.slice(0, MAX_STRING_LENGTH) + '...';
|
|
141
|
-
} else {
|
|
142
|
-
return value;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
function indent(size: number) {
|
|
147
|
-
return ' '.repeat(size * INDENTATION_SIZE);
|
|
148
|
-
}
|
|
149
|
-
*/
|
|
150
|
-
|
|
151
|
-
export default dumpReactTree;
|
|
@@ -1,187 +0,0 @@
|
|
|
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
|
-
* @format
|
|
8
|
-
* @flow
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Convert a react internal instance to a sanitized data object.
|
|
15
|
-
*
|
|
16
|
-
* This is shamelessly stolen from react-devtools:
|
|
17
|
-
* https://github.com/facebook/react-devtools/blob/HEAD/backend/getData.js
|
|
18
|
-
*/
|
|
19
|
-
function getData(element: Object): Object {
|
|
20
|
-
let children = null;
|
|
21
|
-
let props = null;
|
|
22
|
-
let state = null;
|
|
23
|
-
let context = null;
|
|
24
|
-
let updater = null;
|
|
25
|
-
let name = null;
|
|
26
|
-
let type = null;
|
|
27
|
-
let text = null;
|
|
28
|
-
let publicInstance = null;
|
|
29
|
-
let nodeType = 'Native';
|
|
30
|
-
// If the parent is a native node without rendered children, but with
|
|
31
|
-
// multiple string children, then the `element` that gets passed in here is
|
|
32
|
-
// a plain value -- a string or number.
|
|
33
|
-
if (typeof element !== 'object') {
|
|
34
|
-
nodeType = 'Text';
|
|
35
|
-
text = element + '';
|
|
36
|
-
} else if (
|
|
37
|
-
element._currentElement === null ||
|
|
38
|
-
element._currentElement === false
|
|
39
|
-
) {
|
|
40
|
-
nodeType = 'Empty';
|
|
41
|
-
} else if (element._renderedComponent) {
|
|
42
|
-
nodeType = 'NativeWrapper';
|
|
43
|
-
children = [element._renderedComponent];
|
|
44
|
-
props = element._instance.props;
|
|
45
|
-
state = element._instance.state;
|
|
46
|
-
context = element._instance.context;
|
|
47
|
-
if (context && Object.keys(context).length === 0) {
|
|
48
|
-
context = null;
|
|
49
|
-
}
|
|
50
|
-
} else if (element._renderedChildren) {
|
|
51
|
-
children = childrenList(element._renderedChildren);
|
|
52
|
-
} else if (element._currentElement && element._currentElement.props) {
|
|
53
|
-
// This is a native node without rendered children -- meaning the children
|
|
54
|
-
// prop is just a string or (in the case of the <option>) a list of
|
|
55
|
-
// strings & numbers.
|
|
56
|
-
children = element._currentElement.props.children;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (!props && element._currentElement && element._currentElement.props) {
|
|
60
|
-
props = element._currentElement.props;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// != used deliberately here to catch undefined and null
|
|
64
|
-
if (element._currentElement != null) {
|
|
65
|
-
type = element._currentElement.type;
|
|
66
|
-
if (typeof type === 'string') {
|
|
67
|
-
name = type;
|
|
68
|
-
} else if (element.getName) {
|
|
69
|
-
nodeType = 'Composite';
|
|
70
|
-
name = element.getName();
|
|
71
|
-
// 0.14 top-level wrapper
|
|
72
|
-
// TODO(jared): The backend should just act as if these don't exist.
|
|
73
|
-
if (
|
|
74
|
-
element._renderedComponent &&
|
|
75
|
-
element._currentElement.props ===
|
|
76
|
-
element._renderedComponent._currentElement
|
|
77
|
-
) {
|
|
78
|
-
nodeType = 'Wrapper';
|
|
79
|
-
}
|
|
80
|
-
if (name === null) {
|
|
81
|
-
name = 'No display name';
|
|
82
|
-
}
|
|
83
|
-
} else if (element._stringText) {
|
|
84
|
-
nodeType = 'Text';
|
|
85
|
-
text = element._stringText;
|
|
86
|
-
} else {
|
|
87
|
-
name = type.displayName || type.name || 'Unknown';
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
if (element._instance) {
|
|
92
|
-
const inst = element._instance;
|
|
93
|
-
updater = {
|
|
94
|
-
setState: inst.setState && inst.setState.bind(inst),
|
|
95
|
-
forceUpdate: inst.forceUpdate && inst.forceUpdate.bind(inst),
|
|
96
|
-
setInProps: inst.forceUpdate && setInProps.bind(null, element),
|
|
97
|
-
setInState: inst.forceUpdate && setInState.bind(null, inst),
|
|
98
|
-
setInContext: inst.forceUpdate && setInContext.bind(null, inst),
|
|
99
|
-
};
|
|
100
|
-
publicInstance = inst;
|
|
101
|
-
|
|
102
|
-
// TODO: React ART currently falls in this bucket, but this doesn't
|
|
103
|
-
// actually make sense and we should clean this up after stabilizing our
|
|
104
|
-
// API for backends
|
|
105
|
-
if (inst._renderedChildren) {
|
|
106
|
-
children = childrenList(inst._renderedChildren);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return {
|
|
111
|
-
nodeType,
|
|
112
|
-
type,
|
|
113
|
-
name,
|
|
114
|
-
props,
|
|
115
|
-
state,
|
|
116
|
-
context,
|
|
117
|
-
children,
|
|
118
|
-
text,
|
|
119
|
-
updater,
|
|
120
|
-
publicInstance,
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function setInProps(
|
|
125
|
-
internalInst: any,
|
|
126
|
-
path: Array<string | number>,
|
|
127
|
-
value: any,
|
|
128
|
-
) {
|
|
129
|
-
const element = internalInst._currentElement;
|
|
130
|
-
internalInst._currentElement = {
|
|
131
|
-
...element,
|
|
132
|
-
props: copyWithSet(element.props, path, value),
|
|
133
|
-
};
|
|
134
|
-
internalInst._instance.forceUpdate();
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function setInState(inst: any, path: Array<string | number>, value: any) {
|
|
138
|
-
setIn(inst.state, path, value);
|
|
139
|
-
inst.forceUpdate();
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function setInContext(inst: any, path: Array<string | number>, value: any) {
|
|
143
|
-
setIn(inst.context, path, value);
|
|
144
|
-
inst.forceUpdate();
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function setIn(obj: Object, path: Array<string | number>, value: any) {
|
|
148
|
-
const last = path.pop();
|
|
149
|
-
const parent = path.reduce((obj_, attr) => (obj_ ? obj_[attr] : null), obj);
|
|
150
|
-
if (parent) {
|
|
151
|
-
parent[last] = value;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
function childrenList(children: any) {
|
|
156
|
-
const res = [];
|
|
157
|
-
for (const name in children) {
|
|
158
|
-
res.push(children[name]);
|
|
159
|
-
}
|
|
160
|
-
return res;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
function copyWithSetImpl(
|
|
164
|
-
obj: any | Array<any>,
|
|
165
|
-
path: Array<string | number>,
|
|
166
|
-
idx: number,
|
|
167
|
-
value: any,
|
|
168
|
-
): any {
|
|
169
|
-
if (idx >= path.length) {
|
|
170
|
-
return value;
|
|
171
|
-
}
|
|
172
|
-
const key = path[idx];
|
|
173
|
-
const updated = Array.isArray(obj) ? obj.slice() : {...obj};
|
|
174
|
-
// $FlowFixMe[incompatible-use] number or string is fine here
|
|
175
|
-
updated[key] = copyWithSetImpl(obj[key], path, idx + 1, value);
|
|
176
|
-
return updated;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function copyWithSet(
|
|
180
|
-
obj: Object | Array<any>,
|
|
181
|
-
path: Array<string | number>,
|
|
182
|
-
value: any,
|
|
183
|
-
): Object | Array<any> {
|
|
184
|
-
return copyWithSetImpl(obj, path, 0, value);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
export default getData;
|
|
@@ -1,88 +0,0 @@
|
|
|
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
|
-
* @format
|
|
8
|
-
* @flow
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
const infoLog = require('../Utilities/infoLog').default;
|
|
14
|
-
|
|
15
|
-
type Handler = {
|
|
16
|
-
onIterate?: () => void,
|
|
17
|
-
onStall: (params: {lastInterval: number, busyTime: number, ...}) => ?string,
|
|
18
|
-
...
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* A utility for tracking stalls in the JS event loop that prevent timers and
|
|
23
|
-
* other events from being processed in a timely manner.
|
|
24
|
-
*
|
|
25
|
-
* The "stall" time is defined as the amount of time in access of the acceptable
|
|
26
|
-
* threshold, which is typically around 100-200ms. So if the threshold is set to
|
|
27
|
-
* 100 and a timer fires 150 ms later than it was scheduled because the event
|
|
28
|
-
* loop was tied up, that would be considered a 50ms stall.
|
|
29
|
-
*
|
|
30
|
-
* By default, logs stall events to the console when installed. Can also be
|
|
31
|
-
* queried with `getStats`.
|
|
32
|
-
*/
|
|
33
|
-
const JSEventLoopWatchdog = {
|
|
34
|
-
getStats: function (): Object {
|
|
35
|
-
return {stallCount, totalStallTime, longestStall, acceptableBusyTime};
|
|
36
|
-
},
|
|
37
|
-
reset: function () {
|
|
38
|
-
infoLog('JSEventLoopWatchdog: reset');
|
|
39
|
-
totalStallTime = 0;
|
|
40
|
-
stallCount = 0;
|
|
41
|
-
longestStall = 0;
|
|
42
|
-
lastInterval = global.performance.now();
|
|
43
|
-
},
|
|
44
|
-
addHandler: function (handler: Handler) {
|
|
45
|
-
handlers.push(handler);
|
|
46
|
-
},
|
|
47
|
-
install: function ({thresholdMS}: {thresholdMS: number, ...}) {
|
|
48
|
-
acceptableBusyTime = thresholdMS;
|
|
49
|
-
if (installed) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
installed = true;
|
|
53
|
-
lastInterval = global.performance.now();
|
|
54
|
-
function iteration() {
|
|
55
|
-
const now = global.performance.now();
|
|
56
|
-
const busyTime = now - lastInterval;
|
|
57
|
-
if (busyTime >= thresholdMS) {
|
|
58
|
-
const stallTime = busyTime - thresholdMS;
|
|
59
|
-
stallCount++;
|
|
60
|
-
totalStallTime += stallTime;
|
|
61
|
-
longestStall = Math.max(longestStall, stallTime);
|
|
62
|
-
let msg =
|
|
63
|
-
`JSEventLoopWatchdog: JS thread busy for ${busyTime}ms. ` +
|
|
64
|
-
`${totalStallTime}ms in ${stallCount} stalls so far. `;
|
|
65
|
-
handlers.forEach(handler => {
|
|
66
|
-
msg += handler.onStall({lastInterval, busyTime}) || '';
|
|
67
|
-
});
|
|
68
|
-
infoLog(msg);
|
|
69
|
-
}
|
|
70
|
-
handlers.forEach(handler => {
|
|
71
|
-
handler.onIterate && handler.onIterate();
|
|
72
|
-
});
|
|
73
|
-
lastInterval = now;
|
|
74
|
-
setTimeout(iteration, thresholdMS / 5);
|
|
75
|
-
}
|
|
76
|
-
iteration();
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
let acceptableBusyTime = 0;
|
|
81
|
-
let installed = false;
|
|
82
|
-
let totalStallTime = 0;
|
|
83
|
-
let stallCount = 0;
|
|
84
|
-
let longestStall = 0;
|
|
85
|
-
let lastInterval = 0;
|
|
86
|
-
const handlers: Array<Handler> = [];
|
|
87
|
-
|
|
88
|
-
export default JSEventLoopWatchdog;
|
|
@@ -1,78 +0,0 @@
|
|
|
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 "JSExecutor.h"
|
|
9
|
-
|
|
10
|
-
#include "RAMBundleRegistry.h"
|
|
11
|
-
|
|
12
|
-
#include <jsinspector-modern/ReactCdp.h>
|
|
13
|
-
#include <jsinspector-modern/tracing/InstanceTracingProfile.h>
|
|
14
|
-
#include <react/timing/primitives.h>
|
|
15
|
-
|
|
16
|
-
#include <array>
|
|
17
|
-
#include <chrono>
|
|
18
|
-
|
|
19
|
-
namespace facebook::react {
|
|
20
|
-
|
|
21
|
-
std::string JSExecutor::getSyntheticBundlePath(
|
|
22
|
-
uint32_t bundleId,
|
|
23
|
-
const std::string& bundlePath) {
|
|
24
|
-
if (bundleId == RAMBundleRegistry::MAIN_BUNDLE_ID) {
|
|
25
|
-
return bundlePath;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
std::array<char, 32> buffer{};
|
|
29
|
-
std::snprintf(buffer.data(), buffer.size(), "seg-%u.js", bundleId);
|
|
30
|
-
return buffer.data();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
double JSExecutor::performanceNow() {
|
|
34
|
-
return chronoToDOMHighResTimeStamp(std::chrono::steady_clock::now());
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
void JSExecutor::addConsoleMessage(jsi::Runtime& runtime, jsinspector_modern::ConsoleMessage message){
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
bool JSExecutor::supportsConsole() const {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
std::unique_ptr<facebook::react::jsinspector_modern::StackTrace> JSExecutor::captureStackTrace(
|
|
46
|
-
facebook::jsi::Runtime &runtime,
|
|
47
|
-
size_t framesToSkip) {
|
|
48
|
-
return std::make_unique<facebook::react::jsinspector_modern::StackTrace>();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
void JSExecutor::enableSamplingProfiler() {
|
|
52
|
-
return; // [Windows TODO: stubbed implementation #14700]
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
void JSExecutor::disableSamplingProfiler() {
|
|
56
|
-
return; // [Windows TODO: stubbed implementation #14700]
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile JSExecutor::collectSamplingProfile() {
|
|
60
|
-
return facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile(
|
|
61
|
-
"stubbed_impl", {}); // [Windows TODO: stubbed implementation #14700]
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate>
|
|
65
|
-
JSExecutor::createAgentDelegate(
|
|
66
|
-
jsinspector_modern::FrontendChannel frontendChannel,
|
|
67
|
-
jsinspector_modern::SessionState& sessionState,
|
|
68
|
-
std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate::ExportedState>,
|
|
69
|
-
const jsinspector_modern::ExecutionContextDescription&
|
|
70
|
-
executionContextDescription,
|
|
71
|
-
RuntimeExecutor runtimeExecutor) {
|
|
72
|
-
(void)executionContextDescription;
|
|
73
|
-
(void)runtimeExecutor;
|
|
74
|
-
return std::make_unique<jsinspector_modern::FallbackRuntimeAgentDelegate>(
|
|
75
|
-
std::move(frontendChannel), sessionState, getDescription());
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
} // namespace facebook::react
|
|
@@ -1,196 +0,0 @@
|
|
|
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 <memory>
|
|
11
|
-
#include <string>
|
|
12
|
-
|
|
13
|
-
#include <cxxreact/NativeModule.h>
|
|
14
|
-
#include <folly/dynamic.h>
|
|
15
|
-
#include <jsinspector-modern/InspectorInterfaces.h>
|
|
16
|
-
#include <jsinspector-modern/FallbackRuntimeAgentDelegate.h>
|
|
17
|
-
#include <jsinspector-modern/ReactCdp.h>
|
|
18
|
-
#include <jsinspector-modern/ConsoleMessage.h>
|
|
19
|
-
#include <jsinspector-modern/StackTrace.h>
|
|
20
|
-
|
|
21
|
-
#ifndef RN_EXPORT
|
|
22
|
-
#define RN_EXPORT __attribute__((visibility("default")))
|
|
23
|
-
#endif
|
|
24
|
-
|
|
25
|
-
namespace facebook::react {
|
|
26
|
-
|
|
27
|
-
class JSBigString;
|
|
28
|
-
class JSExecutor;
|
|
29
|
-
class JSModulesUnbundle;
|
|
30
|
-
class MessageQueueThread;
|
|
31
|
-
class ModuleRegistry;
|
|
32
|
-
class RAMBundleRegistry;
|
|
33
|
-
|
|
34
|
-
// This interface describes the delegate interface required by
|
|
35
|
-
// Executor implementations to call from JS into native code.
|
|
36
|
-
class ExecutorDelegate {
|
|
37
|
-
public:
|
|
38
|
-
virtual ~ExecutorDelegate() {}
|
|
39
|
-
|
|
40
|
-
virtual std::shared_ptr<ModuleRegistry> getModuleRegistry() = 0;
|
|
41
|
-
|
|
42
|
-
virtual void callNativeModules(
|
|
43
|
-
JSExecutor& executor,
|
|
44
|
-
folly::dynamic&& calls,
|
|
45
|
-
bool isEndOfBatch) = 0;
|
|
46
|
-
virtual MethodCallResult callSerializableNativeHook(
|
|
47
|
-
JSExecutor& executor,
|
|
48
|
-
unsigned int moduleId,
|
|
49
|
-
unsigned int methodId,
|
|
50
|
-
folly::dynamic&& args) = 0;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
class JSExecutorFactory {
|
|
54
|
-
public:
|
|
55
|
-
virtual std::unique_ptr<JSExecutor> createJSExecutor(
|
|
56
|
-
std::shared_ptr<ExecutorDelegate> delegate,
|
|
57
|
-
std::shared_ptr<MessageQueueThread> jsQueue) = 0;
|
|
58
|
-
virtual ~JSExecutorFactory() {}
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
class RN_EXPORT JSExecutor : public jsinspector_modern::RuntimeTargetDelegate {
|
|
62
|
-
public:
|
|
63
|
-
/**
|
|
64
|
-
* Prepares the JS runtime for React Native by installing global variables.
|
|
65
|
-
* Called once before any JS is evaluated.
|
|
66
|
-
*/
|
|
67
|
-
virtual void initializeRuntime() = 0;
|
|
68
|
-
/**
|
|
69
|
-
* Execute an application script bundle in the JS context.
|
|
70
|
-
*/
|
|
71
|
-
virtual void loadBundle(
|
|
72
|
-
std::unique_ptr<const JSBigString> script,
|
|
73
|
-
std::string sourceURL) = 0;
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Add an application "RAM" bundle registry
|
|
77
|
-
*/
|
|
78
|
-
virtual void setBundleRegistry(
|
|
79
|
-
std::unique_ptr<RAMBundleRegistry> bundleRegistry) = 0;
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Register a file path for an additional "RAM" bundle
|
|
83
|
-
*/
|
|
84
|
-
virtual void registerBundle(
|
|
85
|
-
uint32_t bundleId,
|
|
86
|
-
const std::string& bundlePath) = 0;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Executes BatchedBridge.callFunctionReturnFlushedQueue with the module ID,
|
|
90
|
-
* method ID and optional additional arguments in JS. The executor is
|
|
91
|
-
* responsible for using Bridge->callNativeModules to invoke any necessary
|
|
92
|
-
* native modules methods.
|
|
93
|
-
*/
|
|
94
|
-
virtual void callFunction(
|
|
95
|
-
const std::string& moduleId,
|
|
96
|
-
const std::string& methodId,
|
|
97
|
-
const folly::dynamic& arguments) = 0;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Executes BatchedBridge.invokeCallbackAndReturnFlushedQueue with the cbID,
|
|
101
|
-
* and optional additional arguments in JS and returns the next queue. The
|
|
102
|
-
* executor is responsible for using Bridge->callNativeModules to invoke any
|
|
103
|
-
* necessary native modules methods.
|
|
104
|
-
*/
|
|
105
|
-
virtual void invokeCallback(
|
|
106
|
-
const double callbackId,
|
|
107
|
-
const folly::dynamic& arguments) = 0;
|
|
108
|
-
|
|
109
|
-
virtual void setGlobalVariable(
|
|
110
|
-
std::string propName,
|
|
111
|
-
std::unique_ptr<const JSBigString> jsonValue) = 0;
|
|
112
|
-
|
|
113
|
-
virtual void* getJavaScriptContext() {
|
|
114
|
-
return nullptr;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Returns whether or not the underlying executor supports debugging via the
|
|
119
|
-
* Chrome remote debugging protocol. If true, the executor should also
|
|
120
|
-
* override the \c createAgentDelegate method.
|
|
121
|
-
*/
|
|
122
|
-
virtual bool isInspectable() {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* The description is displayed in the dev menu, if there is one in
|
|
128
|
-
* this build. There is a default, but if this method returns a
|
|
129
|
-
* non-empty string, it will be used instead.
|
|
130
|
-
*/
|
|
131
|
-
virtual std::string getDescription() = 0;
|
|
132
|
-
|
|
133
|
-
virtual void handleMemoryPressure([[maybe_unused]] int pressureLevel) {}
|
|
134
|
-
|
|
135
|
-
virtual void destroy() {}
|
|
136
|
-
virtual ~JSExecutor() override {}
|
|
137
|
-
|
|
138
|
-
virtual void flush() {}
|
|
139
|
-
|
|
140
|
-
static std::string getSyntheticBundlePath(
|
|
141
|
-
uint32_t bundleId,
|
|
142
|
-
const std::string& bundlePath);
|
|
143
|
-
|
|
144
|
-
static double performanceNow();
|
|
145
|
-
|
|
146
|
-
virtual void addConsoleMessage(jsi::Runtime& runtime, jsinspector_modern::ConsoleMessage message);
|
|
147
|
-
|
|
148
|
-
virtual bool supportsConsole() const;
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* \returns an opaque representation of a stack trace. This may be passed back
|
|
152
|
-
* to the `RuntimeTargetDelegate` as part of `addConsoleMessage` or other APIs
|
|
153
|
-
* that report stack traces.
|
|
154
|
-
* \param framesToSkip The number of call frames to skip. The first call frame
|
|
155
|
-
* is the topmost (current) frame on the Runtime's call stack, which will
|
|
156
|
-
* typically be the (native) JSI HostFunction that called this method.
|
|
157
|
-
* \note The method is called on the JS thread, and receives a valid reference
|
|
158
|
-
* to the current \c jsi::Runtime. The callee MAY use its own intrinsic
|
|
159
|
-
* Runtime reference, if it has one, without checking it for equivalence with
|
|
160
|
-
* the one provided here.
|
|
161
|
-
*/
|
|
162
|
-
std::unique_ptr<jsinspector_modern::StackTrace> captureStackTrace(
|
|
163
|
-
jsi::Runtime& runtime,
|
|
164
|
-
size_t framesToSkip = 0) override;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Start sampling profiler.
|
|
169
|
-
*/
|
|
170
|
-
virtual void enableSamplingProfiler() override;
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Stop sampling profiler.
|
|
174
|
-
*/
|
|
175
|
-
virtual void disableSamplingProfiler() override;
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Return recorded sampling profile for the previous sampling session.
|
|
179
|
-
*/
|
|
180
|
-
virtual facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile collectSamplingProfile() override;
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Create a RuntimeAgentDelegate that can be used to debug the JS VM instance.
|
|
184
|
-
*/
|
|
185
|
-
virtual std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate>
|
|
186
|
-
createAgentDelegate(
|
|
187
|
-
jsinspector_modern::FrontendChannel frontendChannel,
|
|
188
|
-
jsinspector_modern::SessionState& sessionState,
|
|
189
|
-
std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate::ExportedState>
|
|
190
|
-
previouslyExportedState,
|
|
191
|
-
const jsinspector_modern::ExecutionContextDescription&
|
|
192
|
-
executionContextDescription,
|
|
193
|
-
RuntimeExecutor runtimeExecutor) override;
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
} // namespace facebook::react
|