Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46317
Changes `AnimatedProps` to avoid allocating `AnimatedStyle` (and `AnimatedTransform`, `AnimatedObject`) unless necessary.
This not only reduces memory and traversal overhead, but it enables us to implement allowlist strategies to prune unnecessary traversals.
Changelog:
[General][Changed] - Animated now omits `style` if the supplied value is null, undefined, or not an object. Previously, it would emit an empty `style` object.
[General][Changed] - Animated now resolves `style` to the original prop value if it contains no `AnimatedNode` instances. Previously, it would resolve to a flattened style object.
Reviewed By: javache
Differential Revision: D62117423
fbshipit-source-id: 34b0c9940be5b6f5d94467993a5344406cc56f93
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46373
Currently, the logic for managing the native subscription in `AnimatedNode` is scattered and difficult to follow. This refactors the code to make the subscription's state easier to understand and harder to break in future refactors.
Changelog:
[Internal]
Reviewed By: javache
Differential Revision: D62268695
fbshipit-source-id: 098cc6413db2abffa80983116dd0a5f440ba6fce
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46400
Since React 19 is not yet stable, we cannot publish a release of React Native depending on it, yet. As such, we have to revert our dependency on React 19 and bring back patterns such as `forwardRef`.
This is a spiritual revert of https://github.com/facebook/react-native/pull/45197.
Changelog:
[Internal]
Reviewed By: cipolleschi
Differential Revision: D62384482
fbshipit-source-id: 880ad1166e0b449ad5be6f914907661adb5f458d
Summary:
## Summary
This PR bumps Flow all the way to the latest 0.245.2.
Most of the suppressions comes from Flow v0.239.0's change to include
undefined in the return of `Array.pop`.
I also enabled `react.custom_jsx_typing=true` and added custom jsx
typing to match the old behavior that `React.createElement` is
effectively any typed. This is necessary since various builtin
components like `React.Fragment` is actually symbol in the React repo
instead of `React.AbstractComponent<...>`. It can be made more accurate
by customizing the `React$CustomJSXFactory` type, but I will leave it to
the React team to decide.
## How did you test this change?
`yarn flow` for all the renderers
DiffTrain build for commit https://github.com/facebook/react/commit/e210d08180a63f42079b91acaa7f6af15eef6d32.
Reviewed By: yungsters
Differential Revision: D62384646
Pulled By: SamChou19815
fbshipit-source-id: 727794f2d4091f37d771854b8e8a52f070309213
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46402
JS code for importing SafeAreaView is causing error in windows due to import being used.
Fix it by using conditional require instead
Changelog:
[Internal] - Fixed mis-used import of core only SafeAreaView in JS
Reviewed By: fkgozali
Differential Revision: D62392588
fbshipit-source-id: 65c4728ff73b43cc54543ec2d141a88fce1275ca
Summary:
This PR fixes animating controlled `Switch` component when it's initial value is set to `false`
When initial value was set to `false`, `_isInitialValueSet` flag wasn't changed to `YES`, because `oldSwitchProps.value` &`newSwitchProps.value` were equal, which resulted in controlled `Switch` component being updated without animation on first value change
This PR fixes it by moving setting `_isInitialValueSet` flag to the end of `updateProps` method
## Changelog:
[IOS] [FIXED] - Fix animating Switch component value change in Fabric
Pull Request resolved: https://github.com/facebook/react-native/pull/46173
Test Plan:
1. Open `Switch` example in `RNTester`
2. In `Change events can be detected` section press switch that is `off` by default
3. Switch under it should change with animation
Reviewed By: javache
Differential Revision: D62377771
Pulled By: cipolleschi
fbshipit-source-id: 0213287c935db79a199b086ebb36a6979df03913
Summary:
X-link: https://github.com/facebook/metro/pull/1348
Pull Request resolved: https://github.com/facebook/react-native/pull/46371
## Internal
Vector drawable image support was added in D59530172 but importing vector drawable asset types was not supported out of the box. It required custom source transformers like the one added in D60021474. This is because Android cannot load vector drawable XML over the network. Vector drawables are compiled by AAPT as part of the build process. Even though Metro can serve XML, it would never load.
## Summary
This adds some minor checks in the `AssetSourceResolver` to only attempt loading XML asset types from disk on the Android platform. XML assets like vector drawables are precompiled and cannot be served over the network by Metro.
## Changelog
[Android] [Added] - Adds support for importing XML assets as images
Reviewed By: javache
Differential Revision: D62302929
fbshipit-source-id: 01e49ac5b0429d291318984128dfca2dc058149d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46398
Bump Metro packages to the version stablising for RN 0.76
Changelog:
[General][Changed] - Bump Metro dependencies to 0.81.0-alpha.0
Reviewed By: cortinico
Differential Revision: D62377929
fbshipit-source-id: 0808b11ad534e6a649c28f32b19f95f691645be4
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46399
This is a patch release for Gradle. Let's include it inside main/0.76.
Changelog:
[Android] [Changed] - Gradle to 8.10.1
Reviewed By: tdn120
Differential Revision: D62377887
fbshipit-source-id: e8a5acaa48c15c9a12a09504c33c2a0d2834d92c
Summary:
Hey.
The react-native gradle plugin didn't properly filter out [Pure](https://github.com/react-native-community/cli/pull/2387) C++ TurboModules for autolinking, which caused build failures as a non-existing gradle dependency would be emitted.
This makes Pure C++ TurboModules work again for Android.
## Changelog:
<!-- Help reviewers and the release process by writing your own changelog entry.
Pick one each for the category and type tags:
[ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message
For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[ANDROID][FIXED] Fix autolinking issues for Pure C++ TurboModules
Pull Request resolved: https://github.com/facebook/react-native/pull/46381
Test Plan:
https://github.com/hsjoberg/rn75autolinkregression
Try running this repro project to observe the error:
```
1: Task failed with an exception.
-----------
* Where:
Build file '/Users/coco/Projects/Blixt/rn75autolinkregression/example/android/app/build.gradle' line: 54
* What went wrong:
A problem occurred evaluating project ':app'.
> Project with path ':react-native-cxx-turbomodule' could not be found in project ':app'.
```
Simply add the 1-line code from this PR to make the build succeed.
Cheers.
Reviewed By: cipolleschi
Differential Revision: D62377757
Pulled By: cortinico
fbshipit-source-id: 9e3fa3777b4e6e4d3f2eb0f996ac0ac7676eedbe
Summary:
Bumps the CLI to the next version
## Changelog:
[General][Changed] - Bump cli dependencies to 15.0.0-alpha.2
Pull Request resolved: https://github.com/facebook/react-native/pull/46394
Test Plan: CI
Reviewed By: huntie
Differential Revision: D62375405
Pulled By: cipolleschi
fbshipit-source-id: fec99216bc7ad6decfd83840091d807f603184da
Summary:
This PR exposes the `newArchEnabled` flag and deprecates all of the separate methods to enable new architecture.
As discussed with cipolleschi here: https://github.com/react-native-community/template/pull/45#discussion_r1732522705
## Changelog:
[IOS] [DEPRECATED] - Deprecate turboModuleEnabled, fabricEnabled, bridgelessEnabled
[IOS] [ADDED] - Add newArchEnabled method to RCTAppDelegate
Pull Request resolved: https://github.com/facebook/react-native/pull/46228
Test Plan: Test if switching newArchEnabled flag from AppDelegate works.
Reviewed By: cortinico
Differential Revision: D61849385
Pulled By: cipolleschi
fbshipit-source-id: 8acf718386882679f00d2d5000b4432a523b34ac
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46391
**Issue:**
RedBox displays early error before JS Error handling is properly setup.
On Android 15, targetSdk 35 (forced edge-to-edge), dialog overlaps with system bars making it difficult to use.
**Solution**
Add inset based margins so content does not overlap with system bars.
Changelog:
[Android][Fixed] - RedBox content overlapping with system bars on Android 15 forced edge-to-edge
Reviewed By: fkgozali
Differential Revision: D62362105
fbshipit-source-id: 57f60222914d407ebdcfd0359dbdf3ac36bde8f5
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46390
As React Native's minSdkVersion is not 24, clean up version checks and code that is using deprecated version from OSS
Changelog:
[Internal] - code cleanup for minSdkVersion 24
Reviewed By: philIip
Differential Revision: D62362059
fbshipit-source-id: a851d0908d4175269524f41955acca5f2da69cad
Summary:
In a react native project where USE_FRAMEWORKS is not nil, every time when running `pod install`, duplicate lines are added to `HEADER_SEARCH_PATHS` section of `project.pbxproj`:
```
" ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
" ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
" ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
" ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
" ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
" ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
" ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
" ${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
" ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
```
Note: a popular library that needs `use_frameworks` is react-native-firebase.
See https://rnfirebase.io/#altering-cocoapods-to-use-frameworks
## Analyse
- `react_native_post_install` calls `ReactNativePodsUtils.update_search_paths(installer)`
- when `ENV['USE_FRAMEWORKS'] != nil` then `update_search_paths` calls `add_search_path_if_not_included`
- `add_search_path_if_not_included` checks if `"#{new_search_path}"` is already there
- if not found it adds `" #{new_search_path}"` _with an extra space_
- next time, it can't find `"#{new_search_path}"` because of the extra space, and adds `" #{new_search_path}"` again
## Changelog:
[IOS] [FIXED] - react_native_post_install script no longer adds duplicate entries to HEADER_SEARCH_PATHS
Pull Request resolved: https://github.com/facebook/react-native/pull/46262
Test Plan:
- create a react native project
- add `use_frameworks! :linkage => :static` to `ios/Podfile` (just before `use_react_native`)
- run `pod install`
- assert no duplicate lines are added to HEADER_SEARCH_PATHS of file `project.pbxproj`
Reviewed By: cipolleschi
Differential Revision: D61982680
Pulled By: shwanton
fbshipit-source-id: 61b566893c551d0813edd6eec2f8352c041c748f
Summary:
This PR bumps Socket Rocket to 0.7.1, this release brings some new improvements and visionOS support. I've also moved the version to a constant.
## Changelog:
[INTERNAL] [CHANGED] - Bump SocketRocket to 0.7.1
Pull Request resolved: https://github.com/facebook/react-native/pull/46300
Test Plan: CI Green
Reviewed By: cortinico, cipolleschi
Differential Revision: D62294833
Pulled By: blakef
fbshipit-source-id: 0e45c7de041710fb1f500b0ac23898b68a8a8936
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46359
Remove unneeded code around size calculation and old arch support
- updateState was getting called unnecessarily in multiple places --> only call from onSizeChanged()
- this is a reliable source for getting the content size area of the dialog used for Modal
- remove code checking duplicated update
- Old architecture cleanup
- Remove Java implementation of ShadowNode
- we already have logic to set the node size via UIManagerModule::updateNodeSize(). This code is now group together in updateState() for both new and old architecture
This fixes issues with resulting from wrong size calculation:
- having gaps at bottom when we set `statusBarTranslucent` to `true`
- Modal cut off at bottom on Android 15 (drawn under bottom nav bar)
Changelog:
[Android][Fixed] - Modal statusBarTranslucent bug, Modal at bottom being cut off in Android 15 (without forced edge-to-edge)
[Android][Deprecation] - Deprecating ModalHostShadowNode and ModalHostHelper classes
Reviewed By: mdvacca
Differential Revision: D62286026
fbshipit-source-id: 03b64a7783c12bebd1457c86a9a2657adc882c79
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46326
- renaming variabled to make intent more clear
- `dialog` -> `dialogWindow` to distinguish with `activity.window`
- `hostView` -> `dialogRootViewGroup` as name was confusing.
- `ReactModalHostView` creates and manages `DialogRootViewGroup` but it used as contentView for the Dialog.
- bug fixes
Changelog: [Internal]
Reviewed By: mdvacca
Differential Revision: D62177564
fbshipit-source-id: f81b167c1a234c02617ec2a3d63979628e01063b
Summary:
Reverts the PR https://github.com/facebook/react-native/pull/45967 from philIip to bring back the `registerCxxModuleToGlobalModuleMap(..)` function, which I use in Nitro Modules and MMKV.
Ontop of that, this also removes the "experimental" `RCT_EXPORT_CXX_MODULE_EXPERIMENTAL` macro, which I think was the original intent of this PR as this macro is a bit unsafe.
I also added some small docs to `registerCxxModuleToGlobalModuleMap` while I'm at it.
## Changelog:
<!-- Help reviewers and the release process by writing your own changelog entry.
Pick one each for the category and type tags:
[GENERAL] [CHANGED] - Bring back CxxTurboModule autolinking function, but remove `RCT_EXPORT_CXX_MODULE_EXPERIMENTAL` macro
[ANDROID|GENERAL|IOS|INTERNAL] [BREAKING|ADDED|CHANGED|DEPRECATED|REMOVED|FIXED|SECURITY] - Message
For more details, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
Pull Request resolved: https://github.com/facebook/react-native/pull/46360
Test Plan: Build Nitro Modules. Worked for me! :)
Reviewed By: realsoelynn
Differential Revision: D62310637
Pulled By: philIip
fbshipit-source-id: 2caa2b8ea094dda5e13c81431a9a645cbcf8f807
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46370
Add a function to write the current trace contents to a file. To be used by the upcoming Perfetto data source while we wait for devtools to work in a profiling build.
Reviewed By: rubennorte
Differential Revision: D62262985
fbshipit-source-id: 04789f5312721434c773e51b3da333498bf0e786
Summary:
Currently, `AnimatedNode.prototype.getListeners` creates an array with `Object.keys()` to determine the number of listeners.
This is a relatively hot code path for animation-intensive user interfaces. Although `Object.keys()` is fast, every unnecessary memory allocation is an unnecessary opportunity to create garbage that requires collection.
Using an object as a dictionary performs worst than using a `Map` anyway, so this switches `AnimatedNode` to use a `Map`.
Changelog:
[Internal]
Reviewed By: javache
Differential Revision: D62267352
fbshipit-source-id: 8629861a64109a3a711c0f66a345029d0bfcd440
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46312
Refactors `NativeAnimatedHelper` to make it easier to read, reduce runtime overhead, and no longer export `queueOperation` (which was not useable externally anyway).
Changelog:
[Internal]
Reviewed By: javache
Differential Revision: D62139993
fbshipit-source-id: ce75e530887da6290f26060ecfe36049cf81879a
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46366
This diff adds a Systrace section to the `SurfaceMountingManager::createViewUnsafe` method.
This will allow us to see more detail within the `MountItemDispatcher::mountViews preMountItems` that was previously almost blank.
Changelog: [Internal]
Reviewed By: rubennorte
Differential Revision: D62247235
fbshipit-source-id: 3765c15e3e24e3231a30294938c725e82d100542
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46348
`continueWithTask` skips an extra invocation layer that `onSuccess` adds. Switch to Task<Void> as the task can already represent failure or success without needing a boolean.
Changelog: [Internal]
Reviewed By: mdvacca
Differential Revision: D62213722
fbshipit-source-id: 631d741bd2ec4917eab69a20978ab2ace737c459
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46340
**Issue:**
InspectorPanel is hidden behind 3 button nav bar on Android 15 forced edge-to-edge
**Solution:**
Apply SafeAreaView to avoid overlap with system bars
(CAUTION: SafeAreaView here is for internal RN Core usage only and should not be used elsewhere)
Changelog:
[Internal]
Reviewed By: cortinico, mdvacca
Differential Revision: D62225374
fbshipit-source-id: e762288386d4f1d210bd26b8f28e73c652c7ba4e
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46341
Issue: LogBox Notification (or toast) is partly hidden behind 3 button nav bar on Android 15 targetSdk 35 build
Solution: surround with SafeAreaView to avoid overlap with system bars
(CAUTION: SafeAreaView here is for internal RN Core usage only and should not be used elsewhere)
Changelog:
[Internal]
Reviewed By: cortinico, mdvacca
Differential Revision: D62224584
fbshipit-source-id: 0662b1be9822bf51dadec2dd4879c915a47dfc65
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46368
This bumps AGP to the latest stable.
Release notes are here https://developer.android.com/build/releases/gradle-plugin
No relevant changes for React Native, other than the requirement on minimum Gradle version.
Changelog:
[Android] [Changed] - Bump AGP to 8.6.0
Reviewed By: tdn120
Differential Revision: D62296897
fbshipit-source-id: c34a18ab15dbacd6e5d69003b9e192d7f76d9f8f
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46347
Calculate a frame deadline, and compare the current time against that.
This will also allow us to make frame timing more dynamic in the future, based on the display's frame rate.
Changelog: [Internal]
Reviewed By: mdvacca
Differential Revision: D62213710
fbshipit-source-id: 1c7fc4b67d08c1eda4f3b9612a4506b33c44f626
Summary:
This diff cleans up the `use_debounced_effects_for_animated` experiment. It is not shipped because it breaks semantics of Animated.
It also removes the implementation of now unused `useDebouncedEffect` hook.
bypass-github-export-checks
Facebook
Details here https://fb.workplace.com/groups/3611662615830335/permalink/3666119690384627/
Changelog: [Internal]
Reviewed By: bvanderhoof
Differential Revision: D62188361
fbshipit-source-id: ce215cf7dd57e41e02c33760e91808d774bbd919
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46338
**Issue:**
With forced edge-to-edge on Android 15, LogBox bottom tab bar is hidden behind 3 button nav bar and is unusable.
**Solution:**
LogBox is using Android Dialog so update it to set margins based on inset values. With this change we can get rid of android header logic from JS.
Changelog:
[Android][Changed] - Modify LogBox to be usable on Android 15
Reviewed By: mdvacca
Differential Revision: D62224124
fbshipit-source-id: 4721753bf340bd813bcd560052c52b63fa58ad4b
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46354
**Issue:**
With forced edge-to-edge on Android 15, RNTester title at top overlaps with the status bar and bottom tab bar overlaps with bottom nav bar
**Solution:**
Add margins based on inset values to the ReactRootView which is the contentView for RNTesterActivity which acts as global padding within RNTester
Changelog:
[Android][Changed] - Adding padding for RNTester on Android 15 forced edge-to-edge
Reviewed By: mdvacca
Differential Revision: D62247910
fbshipit-source-id: 7b35d0c2016b6897b5de436a4245c9e910559541
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46346
Noticed that we could sometimes have multiple instances of DispatchUIFrameCallback in a single frame, which would cause us to execute more view preallocations or other work scheduled by Fabric. Root cause for this is on the new architecture, onHostResume seems to be invoked multiple times.
Make this code more resilient by explicitly tracking the state of the frame callback and avoiding multiple subscriptions. Longer-term we should consider having ReactChoreographer support repeating FrameCallbacks, since most of them are.
Changelog: [Android][Fixed] Fixed multiple Fabric dispatch callbacks being executed in a single Android frame
Reviewed By: sammy-SC
Differential Revision: D62213721
fbshipit-source-id: ac6fa5483ea38d9a15824af233fd23f1f6f3c891
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46295
X-link: https://github.com/facebook/metro/pull/1343
Updated all **babel** packages in all `package.json` across the repo and ran `npx yarn-deduplicate yarn.lock --scopes babel`. Afterwards, fixed the following issues appearing as a result of that (squashed the following initially separate diffs to make this packages update work atomically):
### (D61336392) updated jest snapshot tests failing
### (D61336393) updated babel types and corrected typings accordingly
The latest babel 7 introduces the following features we need to adjust our types to:
* `JSXNamespacedName` is removed from valid `CallExpression` args ([PR](https://github.com/babel/babel/pull/16421))
* `JSXNamespacedName` is used for namespaced XML properties in things like `<div namespace:name="value">`, but `fn(namespace:name)` doesn't make any sense.
* Dynamic imports are enabled behind a new flag `createImportExpressions` ([PR](https://github.com/babel/babel/pull/15682)), introducing calls such as `import(foo, options)`. These complicate the expected values passed to `import` to be more than just strings.
* Since these are behind a flag that is not expected to be enabled, we can throw an error for now and whoever uses it can add a support to it if needed later.
### Added a new metro ENV ignore
`BROWSERSLIST_ROOT_PATH` is set to `""` explicitly in `xplat/js/BUCK`
and then ignored in
`js/tools/metro-buck-transform-worker/src/EnvVarAllowList.js`
Reviewed By: robhogan
Differential Revision: D61543660
fbshipit-source-id: abbcab72642cf6dc03eed5142eb78dbcc7f63a86
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46345
Deriving transforms can be expensive on Android. When using NativeAnimated with transforms, especially with an EventBasedDriver, we may update the transform every frame, even if it's unchanged. Ideally, we'd fix this in Animated, and diff the previous and next values, but this closes the gap somewhat in the short-term.
Both JavaOnlyArray and ReadableNativeArray implement equals, but will not compare equality correctly with each other. That's not an issue, as it just means we'll redo the transform once more than necessary.
Changelog: [Android][Fixed] Optimize BaseViewManager#setTransform to ignore duplicate values
Reviewed By: NickGerleman
Differential Revision: D62213726
fbshipit-source-id: 5df026030c66e31eb6a5fe6353de3706b5b7b799
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46333
This pull request introduces enhancements to the view controller presentation logic in React Native, allowing for multiple sheets to be presented on top of each other. The current implementation restricts the presentation to a single view at a time, which limits the flexibility needed in complex applications.
The proposed changes modify the presentation behavior to always utilize the top-most view controller for presentations. This adjustment ensures that multiple sheets can be managed more effectively, without disrupting the existing application flow.
Key changes include:
Modification of the presentation logic to reference the top-most view controller.
Utilization of a recursive method to determine the top-most controller.
The changes have been thoroughly tested with both old and new interfaces and have shown to work seamlessly across different scenarios
Changelog: [Internal] Allow multiple sheets to be presented on top of each other
Reviewed By: jessebwr
Differential Revision: D62202475
fbshipit-source-id: daa0cf95edb23ea52a26441337f9a16f5475b211
Summary:
## Context
The error message in folly dynamic has been updated in D62136190. Updating related tests to reflect the change.
## Diff
Only test code is changed. No business logic change.
## Changelog:
[Internal] [Fixed] - Fix broken unit test due to folly error message change
Pull Request resolved: https://github.com/facebook/react-native/pull/46329
```
Shows details about the selected run from the run history
Run result
java.lang.AssertionError: Test failure
Test Case RecoverableError
* Running RecoverableError.RunRethrowingAsRecoverableRecoverTest
* Running RecoverableError.RunRethrowingAsRecoverableFallthroughTest
2/2 tests passed.
Test Case JsArgumentHelpersTest
* Running JsArgumentHelpersTest.args
***** Failure in xplat/js/react-native-github/packages/react-native/ReactCommon/cxxreact/tests/jsarg_helpers.cpp:108
Expected equality of these values:
ex.what()
Which is: "Error converting javascript arg 4 to C++: TypeError: expected dynamic type 'int/double/bool/string', but had type 'array'"
std::string("Error converting javascript arg 4 to C++: " "TypeError: expected dynamic type `int/double/bool/string', but had type `array'")
Which is: "Error converting javascript arg 4 to C++: TypeError: expected dynamic type `int/double/bool/string', but had type `array'"
0/1 tests passed.
Test Case JSBigFileString
```
Reviewed By: yfeldblum
Differential Revision: D62184078
fbshipit-source-id: 6ae0a33f58e0e10f14166084b80a997e59a008ec