From bb83c40dae5c357f7f7f95d1f40abfdf1f06b9bb Mon Sep 17 00:00:00 2001 From: Saad Najmi Date: Tue, 7 Nov 2023 12:25:45 -0800 Subject: [PATCH] [0.73] Merge up to 0.73-rc4 (#1966) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Set Hermes release version * bumped packages versions #publish-packages-to-npm * Bump react-native-babel-preset to 0.73.18 #publish-packages-to-npm * Enable native view configs in bridgeless mode in OSS (#39476) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39476 This diff enables native view config interop layer in bridgeless mode by default for OSS. It also removes redundant `enableNativeViewConfigsInBridgelessMode` JS feature flag. Changelog: [General][Added] - Native view config interop layer enabled in bridgeless mode. Reviewed By: luluwu2032 Differential Revision: D49318325 fbshipit-source-id: ea2e38b2ea10637b578d98e38d97eed923498fb3 * Enable Template with Bridgeless (#39661) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39661 Changelog: [Android][Changed] - Enable Template with Bridgeless Reviewed By: cortinico Differential Revision: D49464580 fbshipit-source-id: 26dd8e2a0b9a66421d58f147eed4d2fd28817dc7 * [Hotfix] Remove node engines constraint for normalize-color (#39698) * Bump CLI to 12.0.0-alpha.16 * bumped packages versions #publish-packages-to-npm * Reduce visibility of functions in ReactHostImpl (#39640) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39640 changelog: [internal] internal Reducing visibility from public to package only for `ReactHostImpl.getDefaultHardwareBackBtnHandler()` since it's only used within package Reviewed By: mdvacca Differential Revision: D49612859 fbshipit-source-id: 3c40888da732f33dc046d9363b08119e707f4ea4 * Enable TurboModule interop in Bridgeless Mode (#39687) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39687 Bridgeless mode is releasing in 0.73. Bridgeless mode isn't stable inside RNTester (in 0.73) without the TurboModule interop layer: T164853040. **Changes:** Enable the TurboModule interop layer in RNTester (Bridgeless Mode). **Urgency:** This will unblock the 0.73. Changelog: [General][Added] - Enable TurboModule interop in Bridgeless mode Reviewed By: fkgozali, dmytrorykun, luluwu2032 Differential Revision: D49653919 fbshipit-source-id: a4a09a99544c2ef8713484dbeab5cb04f29256cc * Export Commands and Constants only if native view config interop is enabled (#39696) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39696 `Commands` and `Constants` should be set in native only if component data is instantiated via native view config interop layer. Changelog: [Internal] Reviewed By: RSNara Differential Revision: D49684166 fbshipit-source-id: ceaa29c2ed3336aa6e21a116a3f5f94e03c225c1 * Bump CLI to 12.0.0-alpha.17 * Bump package versions #publish-packages-to-npm * Update Xcode 15 patches to be more robust (#39710) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39710 Last week Apple released Xcode 15, which required us to ship a workaround for the new linker. Unfortunately, the previous fix was not good enough and there were some edge cases that were not covered. For example, in some occasions the flags are read as an array and the `-Wl` and the `-ld_classic` flags were separated and not properly removed when moving from Xcode 15 to Xcpde 14.3.1. This change fixes those edge cases, with a more robust solution where: - We convert the flags to a string. - We trim the string and the values properly. - We add the flags when running `pod install` with Xcode 15 as the default iOS toolchain. - We remove the flags when running `pod install` with Xcode <15 as the default iOS toolchain. ## Changelog: [Internal] - Make the Xcode 15 workaround more robust. Reviewed By: dmytrorykun Differential Revision: D49748844 fbshipit-source-id: 34976d148f123c5aacba6487a500874bb938fe99 * Sync debugger-frontend Summary: Sync latest `debugger-frontend` artifacts, based on https://github.com/motiz88/rn-chrome-devtools-frontend/pull/12. Changelog: [Internal] Reviewed By: motiz88 Differential Revision: D49502838 fbshipit-source-id: 25805066670ac35ec976dc820a73a722ee182dd2 * Mark initHybrid as @JvmStatic (#39755) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39755 The goal of this diff is to fix: ``` JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoSuchMethodError: no static or non-static method "Lcom/facebook/react/jscexecutor/JSCExecutor;.initHybrid(Lcom/facebook/react/bridge/ReadableNativeMap;)Lcom/facebook/jni/HybridData;" ``` changelog: [internal] internal Reviewed By: luluwu2032 Differential Revision: D49831595 fbshipit-source-id: 9ce22cdccdd02af74edb27be2df72a469d3166c9 * Bump package versions #publish-packages-to-npm * Bump package versions (dependant packages) #publish-packages-to-npm * [0.73.0-rc.0] Bump version numbers * Fix typings for ReactNativeVersion.js This is an eager cherry pick of #39784 for `0.73-stable`. * Revert "[0.73.0-rc.0] Bump version numbers" This reverts commit 6b9cf50b3044c0604594a0599347ba6b636f5431. * [RN][CI] Make the Choose CI Job run also on tags (#39774) * [0.73.0-rc.0] Bump version numbers * Revert "Fix typings for ReactNativeVersion.js" This reverts commit b6c0703ebb9c0432acf6b87e894d6a33949017cc. * Fix typings for ReactNativeVersionCheck Applies correct fix for `_formatVersion` misalignment — based on #36657. * Fix start command exit behaviour This is an eager cherry pick of #39788 for `0.73-stable`. * Bump package versions #publish-packages-to-npm * [0.73.0-rc.1] Bump version numbers * Revert "[0.73.0-rc.1] Bump version numbers" This reverts commit 725b1c9a7ea1a8132b60e3d5ba345798e1ea0114. * Make jobs required for hermes to run on tagged builds (#39800) * [0.73.0-rc.1] Bump version numbers * Fix broken Loading/Refreshing indicator on Android Summary: The Loading.../Refreshing... indicator is currently broken on Android. The reason is related to D42599220 We used to have a Toast shown to users on Android as a fallback, but as the DevLoadingView is not always loaded as a module in the core package, this ends up in the banner never beign shown to the user (on RN Tester or template apps). Changelog: [Android] [Fixed] - Fix broken Loading/Refreshing indicator on Android Reviewed By: cipolleschi Differential Revision: D49876757 fbshipit-source-id: 400e002327ebca908e3e7a7f81c5066888ac4e9b * Remove unneeded write to .version file (#39807) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39807 We used to need this file so that we could read the react native version when [creating Hermes artifacts](https://github.com/facebook/react-native/commit/e4b5d3eec9bae44c46795c4be097b31cb48593ae#diff-78a8a19706dbd2a4425dd72bdab0502ed7a2cef16365ab7030a5a0588927bf47R1507). Originally, that change was introduced [here](https://github.com/facebook/react-native/commit/e4b5d3eec9bae44c46795c4be097b31cb48593ae#diff-78a8a19706dbd2a4425dd72bdab0502ed7a2cef16365ab7030a5a0588927bf47) Despite the fact that that approach was wrong, as we already have the right version in the package.json which is guaranteed to be present, a lot has changed since then and we don't need that file anymore. ## Changelog: [Internal] - Remove lines that write a .version file while releasing on npm Reviewed By: lunaleaps Differential Revision: D49909718 fbshipit-source-id: bd23d6d73001d0b58bf6b0321ed6d4ceb3523e7a * Default to native view configs in bridged mode and to static view configs in bridgeless mode (#39704) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39704 Default to native view configs in bridged mode and to static view configs in bridgeless mode. Remove `setRuntimeConfigProvider` calls from RNTester and from the Template. Changelog: [Internal] Reviewed By: RSNara Differential Revision: D49687252 fbshipit-source-id: 140e1c510ba3fbc153978b59c8bb4b4e35bc7571 * Fix Gemfile, setting Active support to < 7.1.0 (#39828) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39828 Active Suppert released a new Gem which is incompatible with Cocoapods 1.13.0, the latest release, as they removed a method used by cocoapods. This fix ensures that we install compatible versions of the Gem. ## Changelog: [iOS][Fixed] - Set the max version of Active support to 7.0.8 Reviewed By: hoxyq Differential Revision: D49949782 fbshipit-source-id: 278097502d3a416567cc8c0b90090fee4fb21503 * fix: view flips on RTL with new transform origin changes in Paper arch. (#39803) Summary: Fixes - https://github.com/facebook/react-native/pull/38626#issuecomment-1745528706. Explained the issue [here](https://github.com/facebook/react-native/pull/38626#issuecomment-1747212113). ## Changelog: [IOS] [FIXED] - View flips horizontally in paper arch on RTL Pull Request resolved: https://github.com/facebook/react-native/pull/39803 Test Plan: Run RNTester in Paper mode on iOS Reviewed By: NickGerleman Differential Revision: D49952227 Pulled By: lunaleaps fbshipit-source-id: 7240552e499765859dceea0a0406561cc3a3148f * [iOS] Deprecate RCTGetMultiplierForContentSizeCategory (#39785) * Set hermes for Android template project in testing Summary: Changelog: [Internal] - Set the hermes value as specified by the test-e2e-local script flag. Right now, the script incorrectly ignores the flag By default, the template project has `hermesEnabled=true` Reviewed By: cipolleschi Differential Revision: D49831355 fbshipit-source-id: 7fb8613fa86f2c6140b7d25b16aeb583e6e26c12 * fix missing sed import * Update pod for CI * Update .gitignore for sdks/downloads * [0.73.0-rc.2] Bump version numbers * Add --experimental-debugger-frontend flag, restore 0.72 flow as base (#40766) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40766 This changeset allows users to opt into the new debugger frontend experience by passing `--experimental-debugger` to `react-native start`. **We are defaulting this option to `true`** for now, but will continue to evaluate this feature before 0.73 ships. It restores Flipper (via `flipper://`) as the default handling for `/open-debugger` (matching 0.72 behaviour) when this flag is not enabled. Detailed changes: - Replaces `enableCustomDebuggerFrontend` experiment in `dev-middleware` with `enableNewDebugger`. The latter now hard-swaps between the Flipper and new launch flows. - Removes now-unused switching of `devtoolsFrontendUrl`. - Implements `deprecated_openFlipperMiddleware` (matching previous RN CLI implementation). - Disables "`j` to debug" key handler by default. - Marks "`j` to debug" and `/open-debugger` console logs as experimental. Changelog: [Changed][General] Gate new debugger frontend behind `--experimental-debugger` flag, restore Flipper as base launch flow Reviewed By: motiz88 Differential Revision: D50084590 fbshipit-source-id: 5234634f20110cb7933b1787bd2c86f645411fff * [0.73] Make sure template is consuming the right buildToolsVersion (#39957) * Store hermes stable artifacts inside Pods directory (#40733) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40733 Node package managers may purge or recreate `node_modules/react-native` when adding/removenf project dependencies. Storing hermes iOS artifacts inside `node_modules/react-native/sdks` is not reliable. This diff moves those artifacts to `Pods/hermes-engine-artifacts`. Should fix https://github.com/facebook/react-native/issues/39903 Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D50081559 fbshipit-source-id: a130898e12fb6275cadaef7617bf4b6a09e6487e * Top-down onLayout events (#39644) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39644 This makes Android Paper/Classic renderer fire `onLayout` events top down, like in Fabric/new Architecture. This gives a much more sane model for using layout events to calculate bottom/right-edge insets. I was under the impression that Paper in general was bottom-up, but it turns out that is only true for Android and Windows (iOS seems totally deterministic). This is a behavior change, but to my knowledge was never hit during the Fabric migration, and any JS code already written for both Android and iOS cannot make assumptions here anyways. Changelog: [General][Changed] - Make layout events top-down on Android classic renderer Reviewed By: mdvacca Differential Revision: D49627996 fbshipit-source-id: 29964b421dd420681d45348c7db16f211a6c087f * Deterministic onLayout event ordering for iOS Paper (#40748) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40748 The ordering of `onLayout` events is non-deterministic on iOS Paper, due to nodes being added to an `NSHashTable` before iteration, instead of an ordered collection. We don't do any lookups on the collection, so I think this was chosen over `NSMutableArray` for the sake of `[NSHashTable weakObjectsHashTable]`, to avoid retain/release. Using a collection which does retain/release seems to cause a crash due to double release or similar, so those semantics seem intentional (though I'm not super familiar with the model here). We can replicate the memory semantics with ordering by using `NSPointerArray` (which is unfortunately not parameterized). This change does that, so we get consistently top-down layout events (matching Fabric, and Android Paper as of D49627996). This lets us use multiple layout events to calculate right/bottom edge insets deterministically. Changelog: [iOS][Changed] - Deterministic onLayout event ordering for iOS Paper Reviewed By: luluwu2032 Differential Revision: D50093411 fbshipit-source-id: f6a9d5c973b97aede879baa8b952cc1be2447f28 * Remove code to support bottom-up layout events in horizontal RTL (#39646) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39646 We can dramatically simplify this code and remove quirks/hacks, now that we can assume layout events are always fired top down. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D49628669 fbshipit-source-id: 7de5bbc4597eba1c59aaa7672c70e76d2786c7ef * Fix iOS Paper Scroll Event RTL check (#40751) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40751 In D48379915 I fixed inverted `contentOffset` in `onScroll` events on iOS. I thought I tested on Paper, but I think this was during a period where the Paper route in Catalyst was actually launching Fabric (oops). In Paper, at least under `forceRTL` and English, `[UIApplication sharedApplication].userInterfaceLayoutDirection` is not set to RTL. We instead have a per-view `reactLayoutDirection` we should be reading. This sort of thing isn't currently set on Fabric, which checks application-level RTL. This seems... not right with being able to set `direction` in a subtree context, but Android does the same thing, and that would take some greater changes. Changelog: [iOS][Fixed] - Fix iOS Paper Scroll Event RTL check Reviewed By: luluwu2032 Differential Revision: D50098310 fbshipit-source-id: e321fca7b2f7983e903e23237bc2d604c72f98a3 * Disable --experimental-debugger by default (#40795) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40795 Changelog: [Internal] Reviewed By: hoxyq Differential Revision: D50178494 fbshipit-source-id: b833b6accadd2902d97a45e030cd48d1b62ac438 * make runtime reference thread safe on tickleJs call Summary: The reference to runtime assumes the queue will ensure references to runtime are valid when invoked. This isn't the case if you create a breakpoint, Hermes hit that breakpoint and your refresh the app. This consistently will crash the app. The fix is to not assument this, similar to ReactCommon/react/runtime/hermes/HermesInstance.cpp Reviewed By: javache Differential Revision: D50225678 fbshipit-source-id: b45cae1f5f687bc8c699fd74b187376a547012c5 * Run all the tests when not on a PR Summary: ## Changelog: [Internal] - Run all the tests in CI when not on a PR Reviewed By: cortinico Differential Revision: D50220596 fbshipit-source-id: be1a30d713e9d427858cf22bd3ca9549ad513057 * Add "Hermes only" to open debugger key prompt Summary: Changelog: [Internal] Reviewed By: cortinico Differential Revision: D50327180 fbshipit-source-id: 6ee08fadd313828ddbc7702d5b3b1174a91b1ac1 * Refactors InspectorProxy to compare pathname portion of url passed in… (#41005) Summary: … request to local pathname comparator variables to fix issue with other rightward elements of url such as query or fragment entering the comparison and causing 404 errors for key debugging routes. A change in Chromium appended the query "?for_tabs" to the /json/list request made by Chrome DevTools to find remote debugger targets. The current comparison in InspectorProxy.js compares the entire node IncomingMessage url field to the local pathname constants. The issue arises as url can also contain the query and fragment portions so the original comparison of "/json/list" === "/json/list" which resolved as true would become "/json/list?for_tabs" === "/json/list" and evaluate to false ultimately resulting in a 404 for the request. In summary, all these changes/issues caused remote debugging of Hermes code in React Native apps to become unavailable, greatly impacting developer experience. ## Changelog: [GENERAL] [FIXED] JS Debugging: Fix inspector-proxy to allow for DevTools requests with query strings Pull Request resolved: https://github.com/facebook/react-native/pull/41005 Reviewed By: NickGerleman Differential Revision: D50342265 Pulled By: robhogan fbshipit-source-id: a65f2908f0bea9fc15e1e3e4e6d31a3b9598e81f * Make sure buildConfig is turned on for all the 3rd party libraries (#40939) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40939 Currently some libs on RN 0.73 are broken as the default for Build Config generation changed from true to false since AGP 8.x. This reverts the behavior to the old flag. Closes #40791 Closes #40559 Changelog: [Internal] [Changed] - Make sure buildConfig is turned on for all the 3rd party libraries Reviewed By: mdvacca Differential Revision: D50270382 fbshipit-source-id: 02dcb031c577f65be2f41d9da0334c1b3d89e4c5 * Configure Java toolchains only when executing App configuration (#40757) Summary: Fix https://github.com/facebook/react-native/issues/40560 ## Changelog: [ANDROID] [FIXED] - Ensure that `configureJavaToolChains` is only executed once during configuration Pull Request resolved: https://github.com/facebook/react-native/pull/40757 Test Plan: - Create a fresh `react-native@0.73.0-rc.1` project - Install `react-native-webview` - Apply [this patch](https://github.com/react-native-webview/react-native-webview/pull/3175/files) for `react-native-webview` (caused by another issue https://github.com/facebook/react-native/issues/40559) - Edit `android/gradle.properties` and set `newArchEnabled` to true - Build application - (Expected) Application fail to build - Apply this PR - (Expected) Application build successfully **Additional explanation:** According to the implementation of `configureJavaToolChains`, all the subprojects (both the app and the libraries) will have their toolchains setup in one execution of the method. Therefore, it is okay for the method to be invoked only when configuring the plugin for the app. On the other hand, invoking the method for more than one time will cause the issue stated in https://github.com/facebook/react-native/issues/40560. Reviewed By: cipolleschi Differential Revision: D50361871 Pulled By: cortinico fbshipit-source-id: bd5e18df97988122788d0482dba954e517a0cb5c * Fix instacrash on bridgeless due to calling showMessage on null instance (#39834) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39834 Bridgeless is instacrashing on fast-refresh. This fixes it. Changelog: [Android] [Fixed] - Fix instacrash on bridgeless due to calling showMessage on null instance Reviewed By: cipolleschi Differential Revision: D49929822 fbshipit-source-id: a2ce65797abd34d6a3e2b7f2c50d38a62ea8bdea * Re-introduce FabricViewStateManager interface (#40998) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40998 changelog: [Android] Add back interface FabricViewStateManager to unblock 0.73 I incorrectly deleted FabricViewStateManager in D47993140. This is a breaking change even for old architecture. Let's add it back and mark it as deprected so we can remove it later on. This interface is not used in react-native anymore. We are removing FabricViewStateManager because it simply wraps StateWrapper and provides no additional anymore. Reviewed By: cortinico Differential Revision: D50318633 fbshipit-source-id: aeb1c66c35018e336339616b564dee6f3156b54b * Add ExceptionsManagerModule for RNTester (#40767) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40767 Fix the following issue: ```Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'ExceptionsManager' could not be found. Verify that a module by this name is registered in the native binary.Bridgeless mode: true. TurboModule interop: true. Modules loaded: {"NativeModules":[],"TurboModules": ["PlatformConstants","AppState","SourceCode","BlobModule","WebSocketModule","DevSettings","DevToolsSettingsManager","LogBox","Networking","Appearance","DevLoadingView","DeviceInfo","DeviceEventManager", "SoundManager","ImageLoader","DialogManagerAndroid","NativeAnimatedModule","I18nManager","AccessibilityInfo","StatusBarManager","StatusBarManager","IntentAndroid","ToastAndroid","ShareModule","Vibration"], "NotFound":["NativePerformanceCxx","NativePerformanceObserverCxx","RedBox","BugReporting","HeadlessJsTaskSupport","FrameRateLogger","KeyboardObserver", "AccessibilityManager","ModalManager","LinkingManager","ActionSheetManager","ExceptionsManager"]} ``` Changelog: [Android][Changed] - Add Add ExceptionsManagerModule to CoreReactPackage Reviewed By: cortinico Differential Revision: D50017783 fbshipit-source-id: 8642bb23bdae50a1e702f5e0586b0ede80007bb1 # Conflicts: # packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt * Fix compilation warnings introduced by Gradle 8.4 (#39959) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39959 We're still accessing project.buildDir which will be removed in Gradle 9.0 I'm cleaning it up here. Changelog: [Internal] [Changed] - Fix compilation warnings introduced by Gradle 8.4 Reviewed By: yungsters Differential Revision: D50016573 fbshipit-source-id: de7a725f61b503f08991ebf85b9a002cefab221a * update: fresco 3.0.0 -> 3.1.0 (#41024) Summary: - ref: https://github.com/reactwg/react-native-releases/discussions/64#discussioncomment-7270126 With react-native@0.73.0-rc.2 and fresco@3.0.0, `dlopen failed: library "libnative-imagetranscoder.so"` error made crash in android. so, I patched fresco version to 3.1.0, so that resolves the crash error according to https://github.com/facebook/fresco/issues/2722#issuecomment-1749333089 this comment. ## Changelog: [ANDROID] [FIXED] - b1fccb05ccb306005dc7616a4eaaa182b0b1deaf bumped fresco version to 3.1.0. Pull Request resolved: https://github.com/facebook/react-native/pull/41024 Test Plan: after bumping fresco version, error not occurs. Reviewed By: cipolleschi Differential Revision: D50359564 Pulled By: cortinico fbshipit-source-id: d24caecc057bad4d9c94e378422ab18c106a7ee6 # Conflicts: # packages/react-native/gradle/libs.versions.toml * Rename `RCTRootViewFrameDidChangeNotification` as it's not trac… (#39835) Summary: …king root view frame changes Looking through where this was introduced (https://github.com/facebook/react-native/pull/37649), it seems the notification went from tracking root view size changes to window size changes. However, it was not renamed. I was using it for root view changes in RN-macOS, which.. I guess I'll refactor. Meanwhile, let's update the name? ## Changelog: [IOS] [CHANGED] - Rename `RCTRootViewFrameDidChangeNotification` as it's not tracking root view frame changes Pull Request resolved: https://github.com/facebook/react-native/pull/39835 Test Plan: CI should pass Reviewed By: cipolleschi Differential Revision: D50173742 Pulled By: javache fbshipit-source-id: 4651696174c439800984a5e6cf642200bb9c4f3c * Fix unstable RCTAppDelegate podspec (#41009) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41009 This change should fix [#39971](https://github.com/facebook/react-native/issues/39971), computing the relative path from the App path to the pod installation root and using that instead of the absolute path to the `react-native.config.js` file ## Changelog [Internal] - Stabilize RCTAppDelegate podspec Reviewed By: cortinico Differential Revision: D50323710 fbshipit-source-id: e29e62228d08c752e822d7a9ab5b1a2b5dcd6eb4 * Symbolicate unhandled promise rejections (#40914) Summary: For a very long time when a promise rejects without an attached catch we get this warning screen without a correct stack trace, only some internal calls to the RN internals. I created [an issue for discussion](https://github.com/react-native-community/discussions-and-proposals/discussions/718) in the react-native-community repo and we figured out it was only a matter of symbolication. While it cannot be done on release without external packages and source maps, at least while developing we can provide a symbolicated stack-trace so developers can better debug the source of rejected promise. I got the stack trace symbolicated and the correct code frame. I'm missing some help trying to display it in the warning view but at the very least I can now correctly show the line of the error and log the codeframe to the console. ## Changelog: