mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
f94dbb30ee20d7d026fee5372ce04975a02c1b64
29
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
e7b9d70e0a |
Remove unused-variable in ../xplat/js/react-native-github/packages/react-native/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +2 (#48105)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/48105 LLVM-15 has a warning `-Wunused-variable` which we treat as an error because it's so often diagnostic of a code issue. Unused variables can compromise readability or, worse, performance. This diff either (a) removes an unused variable and, possibly, it's associated code or (b) qualifies the variable with `[[maybe_unused]]`. - If you approve of this diff, please use the "Accept & Ship" button :-) Changelog: [Internal] Reviewed By: palmje Differential Revision: D66777665 fbshipit-source-id: fadf71fd37c2b95f87419acf9d5a7765fe031905 |
||
|
|
6fc500ee99 |
hook up useNativeViewConfigsInBridgelessMode feature flag (#47265)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47265 Changelog: [iOS][Breaking] This was originally landed before as part of the effort to coalesce configurations with the feature flag infra, but got reverted due to a build issue. I'm pretty sure it was just because the legacy configuration methods were not cleaned up from the header (RCTConstants.h). I fixed that here. Reviewed By: javache Differential Revision: D65092536 fbshipit-source-id: 5012ba54b0314c487f2ef488c2eb30a3c4133cb5 |
||
|
|
2f5adc3874 |
fix(iOS): subscribe to orientation changes only on iOS (#46531)
Summary: This PR adds iOS ifdefs to `RCTUIManager` to subscribe to orientation changes on this platform. The `UIDeviceOrientationDidChangeNotification` symbol is only available there. ## Changelog: [IOS] [FIXED] - subscribe to orientation changes in RCTUIManager only on iOS Pull Request resolved: https://github.com/facebook/react-native/pull/46531 Test Plan: CI Green Reviewed By: philIip Differential Revision: D62864013 Pulled By: cipolleschi fbshipit-source-id: 341df9ac765735273378d017b63fcb7a4d8e98e5 |
||
|
|
c9d589dab5 |
fix(iOS): fix rendering RCTRedBoxExtraData (#43102)
Summary: This PR fixes rendering of `RCTRedBoxExtraData` I noticed that it wasn't displaying the `reload` and `dismiss` buttons, which made it impossible to close modal and to reload JS on e.g. `visionOS` (on `iOS` it could only be closed by swiping). PR adds these buttons back and also introduces some refactoring Before & After: <img width="1118" alt="pr-img" src="https://github.com/facebook/react-native/assets/56474758/50e22499-9df0-45f0-84ac-2118ab7a8e6c"> ## Changelog: [IOS] [FIXED] - Fix rendering `RCTRedBoxExtraData` Pull Request resolved: https://github.com/facebook/react-native/pull/43102 Test Plan: Make sure that `RCTRedBoxExtraData` displays and works as expected Reviewed By: dmytrorykun Differential Revision: D59108365 Pulled By: cipolleschi fbshipit-source-id: b88c5665962d0280d68377863aa3346edfdf86b7 |
||
|
|
958f8e2bb5 |
Remove deprecated measureLayoutRelativeToParent of UIManagerModule (#44452)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44452 `measureLayoutRelativeToParent` was deprecated 5 years ago in D16471845 and doesn't have [JS usages](https://fburl.com/code/tgwon7nb) For the JS exposed UIManager API for measureLayoutRelativeToParent is through [UIImplementation.measureLayoutRelativeToParent()](https://www.internalfb.com/code/fbsource/xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java?lines=804-815) Hence deleting this for 0.75 Release. This will simplify the backwards compatibility of UIManagerModule Changelog: [Android][Removed] Delete UIManagerModule.measureLayoutRelativeToParent() Reviewed By: javache Differential Revision: D57069921 fbshipit-source-id: 9f871424a39caf3cbeaa5570c7e101a714c11aa6 |
||
|
|
9bdd777fd7 |
Avoid calling abstract methods in RCTComposedViewRegistry
Summary: `RCTComposedViewRegistry` extends `NSMutableDictionary` which is a clustered class in iOS. NSMutableDictionary is techncially an abstract class, but when instantiated by `[NSMutableDictionary new];` the system will return one of concrete classes that inherit from `NSMutableDictionary`, opaquely from the perspective of the caller. By calling `super`, we are actually calling the not implemented method for the abstract class. If this happen, this can crash the app. Given that the `RCTComposedViewRegistry` is extending the dictionary only for its interface but is using other mechanisms as storage, is it fair to return `NULL`if the storages don't have the requested view. ## Changelog [iOS][Fixed] - Avoid calling abstract methods in RCTComposedViewRegistry Reviewed By: cortinico Differential Revision: D56755427 fbshipit-source-id: f5c56dc59ccc6b30c00199b4196c42eb9b021e2b |
||
|
|
7dec625eca |
Add ReactRootViewTagGenerator (#43882)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43882 Changelog: [General][Added] Add ReactRootViewTagGenerator This copies over a modified version of the [react-native-windows](https://github.com/microsoft/react-native-windows/blob/main/vnext/Microsoft.ReactNative/Modules/ReactRootViewTagGenerator.h) implementation so it can be shared with other C based platforms This also updates the outdated comment about the non existing ReactIOSTagHandles JS module. Reviewed By: javache Differential Revision: D55772580 fbshipit-source-id: 88f5e15011ef89c522746fb2a62753c7b5a75cb9 |
||
|
|
d2a8222bc6 |
Back out "Update useNativeViewConfigsInBridgelessMode" (#43883)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43883 Changelog: [Internal] Backing out original diff `D55705805` to fix CircleCI Dynamic library test failure Reviewed By: philIip Differential Revision: D55773581 fbshipit-source-id: 2ec1b82241389166c1c31c979106c4ee6ead83fe |
||
|
|
4c4a6e4b7c |
Update useNativeViewConfigsInBridgelessMode (#43824)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43824 Changelog: [Internal] # Feature flag cleanup/migration This migration is part of the new Feature Flag system built by rubennorte. The goal of this migration is to clean up our Feature Flags and consolidate them into a single place, accessible by all platforms. # In this diff Replaced `RCTSetUseNativeViewConfigsInBridgelessMode` and `RCTGetUseNativeViewConfigsInBridgelessMode` with `ReactNativeFeatureFlags.useNativeViewConfigsInBridgelessMode()` and ReactNativeFeatureFlags::override Reviewed By: javache Differential Revision: D55705805 fbshipit-source-id: 861675a1a94da0fcef8d8a02ccbd8ecdd97ec700 |
||
|
|
82b58d0367 |
Fix RCTRCTComposedViewRegistry for Old Arch by adding count and keyEnumerator (#43850)
Summary: In the Old Architecture and for Swift Libraries, these two methods are used to initialize a new disctionary but their implementation was missing so some libraries like lottie were failig to build. ## Changelog: [Internal] - Implement missing `count` and `keyEnumerator` methods for RCTComposedViewRegistry Pull Request resolved: https://github.com/facebook/react-native/pull/43850 Test Plan: Tested locally with the repro provided by SWM Reviewed By: javache Differential Revision: D55743648 Pulled By: cipolleschi fbshipit-source-id: 7bdb92625341cd704b8b09920ab3223a2ca61a54 |
||
|
|
15f0895b85 |
Optimize RCTUIManager to avoid too many calls to viewForReactTag
Summary: This change fixes a couple of issues within the RCTUIManager: * it calls the right method in the `super` branches (although they should neve be executed) * it invert the call order between the `_registry` and the `uiManager` to avoid extra calls into the `viewForReactTag`. ## Changelog: [Internal] - Use the right method in super and invert the order of where we search for views. ## Facebook: See S397861 and T180527210 for more information. Reviewed By: javache Differential Revision: D54246220 fbshipit-source-id: 1c7503ad3e80cf50ecc016a984ca180a19b73cc0 |
||
|
|
f61f87c5ef |
Make the addUIBlock's Dictionary works correctly (#43060)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43060 When inestigating the reason why [`react-native-view-shot`]() ws not working, we realized that there are many libraries that follows this pattern: ```objc [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) { if (UIView *view = viewRegistry[reactTag]) { //do something with the View } }]; ``` The problem is that, with the New Architecture, that view registry is usually empty, because the components are registered and tracked in another place. This make many libraries stop working when used with the New Architecture. This change introduces a class that behaves like a dictionary but that forward the calls to retrieve the view to the right place, in order to get the view that is needed. Noticably, this approach allow us also to remove some shenanigans we were applying to make sure that the interop layer could access the views wrapped in it, so the current solution is more general and should work in multiple situations. ## Changelog [iOS][Fixed] - Make sure that `addUIBlock` provides a Dictionary-look-alike object that returns the right views when queried. Reviewed By: sammy-SC Differential Revision: D53826203 fbshipit-source-id: 08d359676d69777b88fa9b18dc141187ac42dbce |
||
|
|
dc38988bcc |
Fix warning when loading RCTUIManager and A11yManager (#42733)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42733 When we fixed the race condition between A11yManager and RCTUIManager, we did it by moving the A11yManager on a background queue. In the old architecture, this was raising a warning which our users might find confusing. Plus, that change was not aligned with what the A11yManager declared in its configuration because we are actually initializing it starting from a BG queue. {F1405693310} With this change we anticipate the initialization of the module in a place where: 1. We know we are in the main queue 2. We know we are going to need it (so it is not violating the lazy load principle) 3. We know it is safe. This should allow us to also remove the feature flag of `RCTUIManagerDispatchAccessibilityManagerInitOntoMain` because now it is safe to use the main_queue as requested by the module. ## Changelog: [iOS][Fixed] - Initialize the A11yManager in the main queue and when we need it. Reviewed By: philIip Differential Revision: D53225120 fbshipit-source-id: fa6ef7fac380e17684cc02de0b4a46504b26bb3d |
||
|
|
77f3edd32c |
UIManager: Delete replaceExistingNonRootView (#42065)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42065 We should delete from UIManager: - There are no usages of this api at Meta. - The only usages found on GitHub are from old forks of React Native: [Github search](https://github.com/search?q=replaceExistingNonRootView+language%3AJavaScript&type=code&p=5&l=JavaScript) Changelog: [Android][Removed] - Delete UIManager.replaceExistingNonRootView Reviewed By: sammy-SC Differential Revision: D52345872 fbshipit-source-id: b61e49731c68fff1f9c4223924a95b4d1e4763c1 |
||
|
|
f4e0061533 |
UIManager: Delete removeSubviewsFromContainerWithID (#42066)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42066 We should just delete this UIManagerModule api: - There are no usages of this api at Meta - The only usages found on GitHub are from old forks of React Native: [GitHub search](https://github.com/search?q=removeSubviewsFromContainerWithID+language%3AJavaScript&type=code&p=5) Changelog: [Android][Removed] - Delete UIManager.removeSubviewsFromContainerWithID Reviewed By: sammy-SC Differential Revision: D52345629 fbshipit-source-id: 74bb36600f218e5f882b338ff5d0bcf37d58c949 |
||
|
|
8feb84a447 |
put PR#41194 behind gating (#41469)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41469 Changelog: [Internal] PR#41194 (https://github.com/facebook/react-native/pull/41194) introduces a new callsite to `RCTUnsafeExecuteOnMainQueueSync` in the module init path, which increases risk for deadlock. let's gate it Differential Revision: D51274859 fbshipit-source-id: b2ab6d42378d2885def1fdad61e1de0f6e6285cd |
||
|
|
da5eb3efe3 |
Rollout RCTValidateCanSendEventInRCTEventEmitter (#41261)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41261 Replaces a previous soft error with an RCTAssert. Changelog: [Internal] Reviewed By: RSNara Differential Revision: D50641816 fbshipit-source-id: 06ef83d058169b3a73ad8179a778d32dff8db80d |
||
|
|
a4a8695cec |
Fix module create dead-lock when start-up (#41194)
Summary: `UIManager` gets module deadlock when start-up randomly. I think we can move it to the secondary thread safely. ``` (lldb) bt all * thread https://github.com/facebook/react-native/issues/1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x000000010d66a5d6 libsystem_kernel.dylib`__psynch_cvwait + 10 frame https://github.com/facebook/react-native/issues/1: 0x000000010d5f476b libsystem_pthread.dylib`_pthread_cond_wait + 1211 frame https://github.com/facebook/react-native/issues/2: 0x000000010761dfe2 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18 frame https://github.com/facebook/react-native/issues/3: 0x00000001034a0a52 RNTester`-[RCTTurboModuleManager _provideObjCModule:moduleHolder:shouldPerfLog:](self=0x00007fafac10e990, _cmd="_provideObjCModule:moduleHolder:shouldPerfLog:", moduleName="AccessibilityManager", moduleHolder=0x0000600003c8cbd8, shouldPerfLog=YES) at RCTTurboModuleManager.mm:599:24 frame https://github.com/facebook/react-native/issues/4: 0x00000001034a0488 RNTester`-[RCTTurboModuleManager _provideObjCModule:](self=0x00007fafac10e990, _cmd="_provideObjCModule:", moduleName="AccessibilityManager") at RCTTurboModuleManager.mm:517:32 frame https://github.com/facebook/react-native/issues/5: 0x00000001034a2cfa RNTester`-[RCTTurboModuleManager moduleForName:warnOnLookupFailure:](self=0x00007fafac10e990, _cmd="moduleForName:warnOnLookupFailure:", moduleName="AccessibilityManager", warnOnLookupFailure=NO) at RCTTurboModuleManager.mm:976:32 frame https://github.com/facebook/react-native/issues/6: 0x00000001030ba6aa RNTester`-[RCTCxxBridge moduleForName:lazilyLoadIfNecessary:](self=0x00007fafac105ab0, _cmd="moduleForName:lazilyLoadIfNecessary:", moduleName="AccessibilityManager", lazilyLoad=YES) at RCTCxxBridge.mm:568:35 * frame https://github.com/facebook/react-native/issues/7: 0x000000010316fa38 RNTester`__26-[RCTUIManager setBridge:]_block_invoke(.block_descriptor=0x000060000055cb40) at RCTUIManager.m:188:55 frame https://github.com/facebook/react-native/issues/8: 0x00000001090cc747 libdispatch.dylib`_dispatch_call_block_and_release + 12 frame https://github.com/facebook/react-native/issues/9: 0x00000001090cd9f7 libdispatch.dylib`_dispatch_client_callout + 8 frame https://github.com/facebook/react-native/issues/10: 0x00000001090dd856 libdispatch.dylib`_dispatch_main_queue_drain + 1362 frame https://github.com/facebook/react-native/issues/11: 0x00000001090dd2f6 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 31 frame https://github.com/facebook/react-native/issues/12: 0x00000001088b4850 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9 frame https://github.com/facebook/react-native/issues/13: 0x00000001088af18b CoreFoundation`__CFRunLoopRun + 2463 frame https://github.com/facebook/react-native/issues/14: 0x00000001088ae409 CoreFoundation`CFRunLoopRunSpecific + 557 frame https://github.com/facebook/react-native/issues/15: 0x0000000114ede187 GraphicsServices`GSEventRunModal + 137 frame https://github.com/facebook/react-native/issues/16: 0x0000000128be53a2 UIKitCore`-[UIApplication _run] + 972 frame https://github.com/facebook/react-native/issues/17: 0x0000000128be9e10 UIKitCore`UIApplicationMain + 123 frame https://github.com/facebook/react-native/issues/18: 0x0000000102fb7000 RNTester`main(argc=1, argv=0x00007ff7bcf4fce8) at main.m:15:12 frame https://github.com/facebook/react-native/issues/19: 0x00000001069023ee dyld_sim`start_sim + 10 frame https://github.com/facebook/react-native/issues/20: 0x000000010ea223a6 dyld`start + 1942 thread https://github.com/facebook/react-native/issues/6, name = 'com.apple.uikit.eventfetch-thread' frame #0: 0x000000010d667a2e libsystem_kernel.dylib`mach_msg2_trap + 10 frame https://github.com/facebook/react-native/issues/1: 0x000000010d675e4a libsystem_kernel.dylib`mach_msg2_internal + 84 frame https://github.com/facebook/react-native/issues/2: 0x000000010d66eb6e libsystem_kernel.dylib`mach_msg_overwrite + 653 frame https://github.com/facebook/react-native/issues/3: 0x000000010d667d1f libsystem_kernel.dylib`mach_msg + 19 frame https://github.com/facebook/react-native/issues/4: 0x00000001088b45bf CoreFoundation`__CFRunLoopServiceMachPort + 143 frame https://github.com/facebook/react-native/issues/5: 0x00000001088aed47 CoreFoundation`__CFRunLoopRun + 1371 frame https://github.com/facebook/react-native/issues/6: 0x00000001088ae409 CoreFoundation`CFRunLoopRunSpecific + 557 frame https://github.com/facebook/react-native/issues/7: 0x000000010a34ceee Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 213 frame https://github.com/facebook/react-native/issues/8: 0x000000010a34d16c Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 72 frame https://github.com/facebook/react-native/issues/9: 0x0000000128cbd797 UIKitCore`-[UIEventFetcher threadMain] + 518 frame https://github.com/facebook/react-native/issues/10: 0x000000010a377699 Foundation`__NSThread__start__ + 1024 frame https://github.com/facebook/react-native/issues/11: 0x000000010d5f4202 libsystem_pthread.dylib`_pthread_start + 99 frame https://github.com/facebook/react-native/issues/12: 0x000000010d5efbab libsystem_pthread.dylib`thread_start + 15 thread https://github.com/facebook/react-native/issues/9, name = 'com.facebook.react.JavaScript' frame #0: 0x000000010d6691e2 libsystem_kernel.dylib`__ulock_wait + 10 frame https://github.com/facebook/react-native/issues/1: 0x00000001090ce319 libdispatch.dylib`_dlock_wait + 46 frame https://github.com/facebook/react-native/issues/2: 0x00000001090ce170 libdispatch.dylib`_dispatch_thread_event_wait_slow + 40 frame https://github.com/facebook/react-native/issues/3: 0x00000001090debb2 libdispatch.dylib`__DISPATCH_WAIT_FOR_QUEUE__ + 371 frame https://github.com/facebook/react-native/issues/4: 0x00000001090de5c9 libdispatch.dylib`_dispatch_sync_f_slow + 240 frame https://github.com/facebook/react-native/issues/5: 0x00000001031847cb RNTester`RCTUnsafeExecuteOnMainQueueSync(block=0x00000001034a0bf0) at RCTUtils.m:277:5 frame https://github.com/facebook/react-native/issues/6: 0x00000001034a0863 RNTester`-[RCTTurboModuleManager _provideObjCModule:moduleHolder:shouldPerfLog:](self=0x00007fafac10e990, _cmd="_provideObjCModule:moduleHolder:shouldPerfLog:", moduleName="AccessibilityManager", moduleHolder=0x0000600003c8cbd8, shouldPerfLog=YES) at RCTTurboModuleManager.mm:571:9 frame https://github.com/facebook/react-native/issues/7: 0x00000001034a0488 RNTester`-[RCTTurboModuleManager _provideObjCModule:](self=0x00007fafac10e990, _cmd="_provideObjCModule:", moduleName="AccessibilityManager") at RCTTurboModuleManager.mm:517:32 frame https://github.com/facebook/react-native/issues/8: 0x00000001034a2cfa RNTester`-[RCTTurboModuleManager moduleForName:warnOnLookupFailure:](self=0x00007fafac10e990, _cmd="moduleForName:warnOnLookupFailure:", moduleName="AccessibilityManager", warnOnLookupFailure=NO) at RCTTurboModuleManager.mm:976:32 frame https://github.com/facebook/react-native/issues/9: 0x00000001030ba6aa RNTester`-[RCTCxxBridge moduleForName:lazilyLoadIfNecessary:](self=0x00007fafac105ab0, _cmd="moduleForName:lazilyLoadIfNecessary:", moduleName="AccessibilityManager", lazilyLoad=YES) at RCTCxxBridge.mm:568:35 frame https://github.com/facebook/react-native/issues/10: 0x000000010366db7c RNTester`-[RCTBaseTextInputViewManager setBridge:](self=0x0000600000b19d60, _cmd="setBridge:", bridge=0x00007fafac105ab0) at RCTBaseTextInputViewManager.mm:104:53 frame https://github.com/facebook/react-native/issues/11: 0x000000010a2c1796 Foundation`-[NSObject(NSKeyValueCoding) setValue:forKey:] + 278 frame https://github.com/facebook/react-native/issues/12: 0x0000000103116f42 RNTester`-[RCTModuleData setBridgeForInstance](self=0x0000600003eb58c0, _cmd="setBridgeForInstance") at RCTModuleData.mm:256:7 frame https://github.com/facebook/react-native/issues/13: 0x0000000103116971 RNTester`-[RCTModuleData setUpInstanceAndBridge:](self=0x0000600003eb58c0, _cmd="setUpInstanceAndBridge:", requestId=10) at RCTModuleData.mm:210:7 frame https://github.com/facebook/react-native/issues/14: 0x0000000103118990 RNTester`-[RCTModuleData instance](self=0x0000600003eb58c0, _cmd="instance") at RCTModuleData.mm:395:7 frame https://github.com/facebook/react-native/issues/15: 0x00000001030ba8b6 RNTester`-[RCTCxxBridge moduleForName:lazilyLoadIfNecessary:](self=0x00007fafac105ab0, _cmd="moduleForName:lazilyLoadIfNecessary:", moduleName="BaseTextInputViewManager", lazilyLoad=YES) at RCTCxxBridge.mm:587:23 frame https://github.com/facebook/react-native/issues/16: 0x00000001030bad90 RNTester`-[RCTCxxBridge moduleForClass:](self=0x00007fafac105ab0, _cmd="moduleForClass:", moduleClass=RCTBaseTextInputViewManager) at RCTCxxBridge.mm:631:10 frame https://github.com/facebook/react-native/issues/17: 0x000000010309bd59 RNTester`-[RCTComponentData manager](self=0x0000600002fbd920, _cmd="manager") at RCTComponentData.m:67:16 frame https://github.com/facebook/react-native/issues/18: 0x00000001030a2831 RNTester`-[RCTComponentData viewConfig](self=0x0000600002fbd920, _cmd="viewConfig") at RCTComponentData.m:518:3 frame https://github.com/facebook/react-native/issues/19: 0x0000000103180216 RNTester`moduleConstantsForComponentData(directEvents=7 key/value pairs, bubblingEvents=2 key/value pairs, componentData=0x0000600002fbd920) at RCTUIManager.m:1568:99 frame https://github.com/facebook/react-native/issues/20: 0x00000001031800ea RNTester`__28-[RCTUIManager getConstants]_block_invoke(.block_descriptor=0x00007000042d35d0, name=@"RCTBaseTextInputView", componentData=0x0000600002fbd920, stop=NO) at RCTUIManager.m:1586:13 frame https://github.com/facebook/react-native/issues/21: 0x000000010889d4fd CoreFoundation`__NSDICTIONARY_IS_CALLING_OUT_TO_A_BLOCK__ + 7 frame https://github.com/facebook/react-native/issues/22: 0x00000001089c9281 CoreFoundation`-[__NSDictionaryM enumerateKeysAndObjectsWithOptions:usingBlock:] + 249 frame https://github.com/facebook/react-native/issues/23: 0x000000010317feb7 RNTester`-[RCTUIManager getConstants](self=0x000060000206d0a0, _cmd="getConstants") at RCTUIManager.m:1582:3 frame https://github.com/facebook/react-native/issues/24: 0x000000010317fdb1 RNTester`-[RCTUIManager constantsToExport](self=0x000060000206d0a0, _cmd="constantsToExport") at RCTUIManager.m:1573:10 frame https://github.com/facebook/react-native/issues/25: 0x000000010311911b RNTester`-[RCTModuleData gatherConstantsAndSignalJSRequireEnding:](self=0x0000600003eb5500, _cmd="gatherConstantsAndSignalJSRequireEnding:", startMarkers=YES) at RCTModuleData.mm:462:28 frame https://github.com/facebook/react-native/issues/26: 0x00000001031193e9 RNTester`-[RCTModuleData exportedConstants](self=0x0000600003eb5500, _cmd="exportedConstants") at RCTModuleData.mm:477:3 frame https://github.com/facebook/react-native/issues/27: 0x0000000103125d09 RNTester`facebook::react::RCTNativeModule::getConstants(this=0x0000600000beac80) at RCTNativeModule.mm:68:42 frame https://github.com/facebook/react-native/issues/28: 0x000000010370a0f2 RNTester`facebook::react::ModuleRegistry::getConfig(this=0x0000600003e913a0, name="UIManager") at ModuleRegistry.cpp:154:30 frame https://github.com/facebook/react-native/issues/29: 0x0000000103797b6e RNTester`facebook::react::JSINativeModules::createModule(this=0x0000600002f8cf78, rt=0x0000600002f8d278, name="UIManager") at JSINativeModules.cpp:81:35 frame https://github.com/facebook/react-native/issues/30: 0x000000010379778c RNTester`facebook::react::JSINativeModules::getModule(this=0x0000600002f8cf78, rt=0x0000600002f8d278, name=0x00007000042d4138) at JSINativeModules.cpp:46:17 frame https://github.com/facebook/react-native/issues/31: 0x000000010378814a RNTester`facebook::react::JSIExecutor::NativeModuleProxy::get(this=0x000060000057ac88, rt=0x0000600002f8d278, name=0x00007000042d4138) at JSIExecutor.cpp:44:27 frame https://github.com/facebook/react-native/issues/32: 0x00000001037448d6 RNTester`facebook::jsi::DecoratedHostObject::get(this=0x0000600001e3e118, (null)=0x0000600003cb8630, name=0x00007000042d4138) at decorator.h:70:22 frame https://github.com/facebook/react-native/issues/33: 0x0000000109667ff7 hermes`facebook::hermes::HermesRuntimeImpl::JsiProxy::get(this=0x0000600000ba4d20, id=(id_ = 4435)) at hermes.cpp:698:20 [opt] frame https://github.com/facebook/react-native/issues/34: 0x00000001096e7436 hermes`hermes::vm::JSObject::getComputedWithReceiver_RJS(hermes::vm::Handle<hermes::vm::JSObject>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::Handle<hermes::vm::HermesValue>) [inlined] hermes::vm::HostObject::get(this=<unavailable>, name=<unavailable>) at HostModel.h:112:24 [opt] frame https://github.com/facebook/react-native/issues/35: 0x00000001096e742c hermes`hermes::vm::JSObject::getComputedWithReceiver_RJS(selfHandle=<unavailable>, runtime=0x00007fafae026000, nameValHandle=<unavailable>, receiver=Handle<hermes::vm::HermesValue> @ 0x00007000042d4190) at JSObject.cpp:1182:55 [opt] frame https://github.com/facebook/react-native/issues/36: 0x00000001096cc141 hermes`hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&) [inlined] hermes::vm::JSObject::getComputed_RJS(selfHandle=<unavailable>, runtime=0x00007fafae026000, nameValHandle=<unavailable>) at JSObject.h:1940:10 [opt] frame https://github.com/facebook/react-native/issues/37: 0x00000001096cc12f hermes`hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(runtime=0x00007fafae026000, state=0x00007000042d4470) at Interpreter.cpp:2481:11 [opt] frame https://github.com/facebook/react-native/issues/38: 0x00000001096c84bc hermes`hermes::vm::Runtime::interpretFunctionImpl(this=0x00007fafae026000, newCodeBlock=0x0000600003068000) at Interpreter.cpp:825:12 [opt] frame https://github.com/facebook/react-native/issues/39: 0x000000010970fbc8 hermes`hermes::vm::Runtime::runBytecode(this=0x00007fafae026000, bytecode=<unavailable>, flags=<unavailable>, sourceURL=(Data = "http://localhost:8081/js/RNTesterApp.ios.bundle//&platform=ios&dev=true&lazy=true&minify=false&inlineSourceMap=false&modulesOnly=false&runModule=true&app=com.meta.RNTester.localDevelopment", Length = 188), environment=Handle<hermes::vm::Environment> @ 0x00007000042d44d0, thisArg=Handle<hermes::vm::HermesValue> @ 0x00007000042d4630) at Runtime.cpp:1079:11 [opt] frame https://github.com/facebook/react-native/issues/40: 0x000000010965ac1d hermes`facebook::hermes::HermesRuntimeImpl::evaluatePreparedJavaScript(std::__1::shared_ptr<facebook::jsi::PreparedJavaScript const> const&) [inlined] hermes::vm::Runtime::runBytecode(this=0x00007fafae026000, bytecode=nullptr, runtimeModuleFlags=RuntimeModuleFlags @ rbx, sourceURL=(Data = 0x0000000000000000, Length = 188), environment=<unavailable>) at Runtime.h:277:12 [opt] frame https://github.com/facebook/react-native/issues/41: 0x000000010965abe7 hermes`facebook::hermes::HermesRuntimeImpl::evaluatePreparedJavaScript(this=0x0000600003cb8630, js=std::__1::shared_ptr<const facebook::jsi::PreparedJavaScript>::element_type @ 0x00006000028d7038 strong=1 weak=1) at hermes.cpp:1494:23 [opt] frame https://github.com/facebook/react-native/issues/42: 0x000000010965aaa0 hermes`facebook::hermes::HermesRuntime::evaluateJavaScriptWithSourceMap(this=0x0000600003cb8630, buffer=std::__1::shared_ptr<const facebook::jsi::Buffer>::element_type @ 0x00006000009b4590 strong=2 weak=1, sourceMapBuf=nullptr, sourceURL=<unavailable>) at hermes.cpp:1361:22 [opt] frame https://github.com/facebook/react-native/issues/43: 0x000000010965bdef hermes`facebook::hermes::HermesRuntimeImpl::evaluateJavaScript(this=<unavailable>, buffer=<unavailable>, sourceURL=<unavailable>) at hermes.cpp:1506:10 [opt] frame https://github.com/facebook/react-native/issues/44: 0x0000000103742ef1 RNTester`facebook::jsi::RuntimeDecorator<facebook::jsi::Runtime, facebook::jsi::Runtime>::evaluateJavaScript(this=0x0000600002f8d278, buffer=std::__1::shared_ptr<const facebook::jsi::Buffer>::element_type @ 0x00006000009b4590 strong=2 weak=1, sourceURL="http://localhost:8081/js/RNTesterApp.ios.bundle//&platform=ios&dev=true&lazy=true&minify=false&inlineSourceMap=false&modulesOnly=false&runModule=true&app=com.meta.RNTester.localDevelopment") at decorator.h:118:20 frame https://github.com/facebook/react-native/issues/45: 0x000000010374086d RNTester`facebook::jsi::WithRuntimeDecorator<facebook::react::(anonymous namespace)::ReentrancyCheck, facebook::jsi::Runtime, facebook::jsi::Runtime>::evaluateJavaScript(this=0x0000600002f8d278, buffer=std::__1::shared_ptr<const facebook::jsi::Buffer>::element_type @ 0x00006000009b4590 strong=2 weak=1, sourceURL="http://localhost:8081/js/RNTesterApp.ios.bundle//&platform=ios&dev=true&lazy=true&minify=false&inlineSourceMap=false&modulesOnly=false&runModule=true&app=com.meta.RNTester.localDevelopment") at decorator.h:530:16 frame https://github.com/facebook/react-native/issues/46: 0x0000000103782c60 RNTester`facebook::react::JSIExecutor::loadBundle(this=0x00007fafabb07990, script=nullptr, sourceURL="http://localhost:8081/js/RNTesterApp.ios.bundle//&platform=ios&dev=true&lazy=true&minify=false&inlineSourceMap=false&modulesOnly=false&runModule=true&app=com.meta.RNTester.localDevelopment") at JSIExecutor.cpp:160:13 frame https://github.com/facebook/react-native/issues/47: 0x0000000103718719 RNTester`facebook::react::NativeToJsBridge::loadBundle(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry>>, std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_1::operator()(this=0x0000600001e81fc8, executor=0x00007fafabb07990) at NativeToJsBridge.cpp:144:21 frame https://github.com/facebook/react-native/issues/48: 0x0000000103718600 RNTester`decltype(std::declval<facebook::react::NativeToJsBridge::loadBundle(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry>>, std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_1&>()(std::declval<facebook::react::JSExecutor*>())) std::__1::__invoke[abi:v160006]<facebook::react::NativeToJsBridge::loadBundle(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry>>, std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_1&, facebook::react::JSExecutor*>(__f=0x0000600001e81fc8, __args=0x00007000042d4aa0) at invoke.h:394:23 frame https://github.com/facebook/react-native/issues/49: 0x00000001037185ad RNTester`void std::__1::__invoke_void_return_wrapper<void, true>::__call<facebook::react::NativeToJsBridge::loadBundle(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry>>, std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_1&, facebook::react::JSExecutor*>(__args=0x0000600001e81fc8, __args=0x00007000042d4aa0) at invoke.h:487:9 frame https://github.com/facebook/react-native/issues/50: 0x0000000103718585 RNTester`std::__1::__function::__alloc_func<facebook::react::NativeToJsBridge::loadBundle(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry>>, std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_1, std::__1::allocator<facebook::react::NativeToJsBridge::loadBundle(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry>>, std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_1>, void (facebook::react::JSExecutor*)>::operator()[abi:v160006](this=0x0000600001e81fc8, __arg=0x00007000042d4aa0) at function.h:185:16 frame https://github.com/facebook/react-native/issues/51: 0x0000000103717311 RNTester`std::__1::__function::__func<facebook::react::NativeToJsBridge::loadBundle(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry>>, std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_1, std::__1::allocator<facebook::react::NativeToJsBridge::loadBundle(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry>>, std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::$_1>, void (facebook::react::JSExecutor*)>::operator()(this=0x0000600001e81fc0, __arg=0x00007000042d4aa0) at function.h:356:12 frame https://github.com/facebook/react-native/issues/52: 0x0000000103723f2a RNTester`std::__1::__function::__value_func<void (facebook::react::JSExecutor*)>::operator()[abi:v160006](this=0x0000600002fad4d0, __args=0x00007000042d4aa0) const at function.h:510:16 frame https://github.com/facebook/react-native/issues/53: 0x0000000103723ebd RNTester`std::__1::function<void (facebook::react::JSExecutor*)>::operator()(this=0x0000600002fad4d0, __arg=0x00007fafabb07990) const at function.h:1156:12 frame https://github.com/facebook/react-native/issues/54: 0x0000000103723e97 RNTester`facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_8::operator()(this=0x0000600002fad4b0) const at NativeToJsBridge.cpp:308:9 frame https://github.com/facebook/react-native/issues/55: 0x0000000103723e35 RNTester`decltype(std::declval<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_8&>()()) std::__1::__invoke[abi:v160006]<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_8&>(__f=0x0000600002fad4b0) at invoke.h:394:23 frame https://github.com/facebook/react-native/issues/56: 0x0000000103723df5 RNTester`void std::__1::__invoke_void_return_wrapper<void, true>::__call<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_8&>(__args=0x0000600002fad4b0) at invoke.h:487:9 frame https://github.com/facebook/react-native/issues/57: 0x0000000103723dcd RNTester`std::__1::__function::__alloc_func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_8, std::__1::allocator<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_8>, void ()>::operator()[abi:v160006](this=0x0000600002fad4b0) at function.h:185:16 frame https://github.com/facebook/react-native/issues/58: 0x0000000103722b89 RNTester`std::__1::__function::__func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_8, std::__1::allocator<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_8>, void ()>::operator()(this=0x0000600002fad4a0) at function.h:356:12 frame https://github.com/facebook/react-native/issues/59: 0x00000001030cdd72 RNTester`std::__1::__function::__value_func<void ()>::operator()[abi:v160006](this=0x00006000028f85c0) const at function.h:510:16 frame https://github.com/facebook/react-native/issues/60: 0x00000001030cdd35 RNTester`std::__1::function<void ()>::operator()(this= Lambda in File NativeToJsBridge.cpp at Line 298) const at function.h:1156:12 frame https://github.com/facebook/react-native/issues/61: 0x00000001030e1145 RNTester`facebook::react::tryAndReturnError(func= Lambda in File NativeToJsBridge.cpp at Line 298) at RCTCxxUtils.mm:73:7 frame https://github.com/facebook/react-native/issues/62: 0x000000010310a5c1 RNTester`facebook::react::RCTMessageThread::tryFunc(this=0x00006000028f0018, func= Lambda in File NativeToJsBridge.cpp at Line 298) at RCTMessageThread.mm:68:20 frame https://github.com/facebook/react-native/issues/63: 0x000000010310e823 RNTester`facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1::operator()(this=0x0000600000538d88) const at RCTMessageThread.mm:81:19 frame https://github.com/facebook/react-native/issues/64: 0x000000010310e7c5 RNTester`decltype(std::declval<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1&>()()) std::__1::__invoke[abi:v160006]<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1&>(__f=0x0000600000538d88) at invoke.h:394:23 frame https://github.com/facebook/react-native/issues/65: 0x000000010310e785 RNTester`void std::__1::__invoke_void_return_wrapper<void, true>::__call<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1&>(__args=0x0000600000538d88) at invoke.h:487:9 frame https://github.com/facebook/react-native/issues/66: 0x000000010310e75d RNTester`std::__1::__function::__alloc_func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1>, void ()>::operator()[abi:v160006](this=0x0000600000538d88) at function.h:185:16 frame https://github.com/facebook/react-native/issues/67: 0x000000010310d709 RNTester`std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_1>, void ()>::operator()(this=0x0000600000538d80) at function.h:356:12 frame https://github.com/facebook/react-native/issues/68: 0x00000001030cdd72 RNTester`std::__1::__function::__value_func<void ()>::operator()[abi:v160006](this=0x00006000028fa690) const at function.h:510:16 frame https://github.com/facebook/react-native/issues/69: 0x00000001030cdd35 RNTester`std::__1::function<void ()>::operator()(this= Lambda in File RCTMessageThread.mm at Line 79) const at function.h:1156:12 frame https://github.com/facebook/react-native/issues/70: 0x000000010310a39a RNTester`invocation function for block in facebook::react::RCTMessageThread::runAsync(.block_descriptor=0x00006000028fa670) at RCTMessageThread.mm:44:7 frame https://github.com/facebook/react-native/issues/71: 0x00000001088b4b06 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 frame https://github.com/facebook/react-native/issues/72: 0x00000001088b42b9 CoreFoundation`__CFRunLoopDoBlocks + 391 frame https://github.com/facebook/react-native/issues/73: 0x00000001088af076 CoreFoundation`__CFRunLoopRun + 2186 frame https://github.com/facebook/react-native/issues/74: 0x00000001088ae409 CoreFoundation`CFRunLoopRunSpecific + 557 frame https://github.com/facebook/react-native/issues/75: 0x00000001030b6ec5 RNTester`+[RCTCxxBridge runRunLoop](self=RCTCxxBridge, _cmd="runRunLoop") at RCTCxxBridge.mm:332:12 frame https://github.com/facebook/react-native/issues/76: 0x000000010a377699 Foundation`__NSThread__start__ + 1024 frame https://github.com/facebook/react-native/issues/77: 0x000000010d5f4202 libsystem_pthread.dylib`_pthread_start + 99 frame https://github.com/facebook/react-native/issues/78: 0x000000010d5efbab libsystem_pthread.dylib`thread_start + 15 thread https://github.com/facebook/react-native/issues/10, name = 'hades' frame #0: 0x000000010d66a5d6 libsystem_kernel.dylib`__psynch_cvwait + 10 frame https://github.com/facebook/react-native/issues/1: 0x000000010d5f476b libsystem_pthread.dylib`_pthread_cond_wait + 1211 frame https://github.com/facebook/react-native/issues/2: 0x000000010761dfe2 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 18 frame https://github.com/facebook/react-native/issues/3: 0x00000001097aee78 hermes`hermes::vm::HadesGC::Executor::worker() [inlined] void std::__1::condition_variable::wait<hermes::vm::HadesGC::Executor::worker()::'lambda'()>(this=0x0000600003cb8300, __lk=0x0000700004358f20, __pred=(unnamed class) @ rbx) at __mutex_base:400:9 [opt] frame https://github.com/facebook/react-native/issues/4: 0x00000001097aee5a hermes`hermes::vm::HadesGC::Executor::worker(this=0x0000600003cb82c0) at HadesGC.cpp:1084:11 [opt] frame https://github.com/facebook/react-native/issues/5: 0x00000001097aedba hermes`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, hermes::vm::HadesGC::Executor::Executor()::'lambda'()>>(void*) [inlined] hermes::vm::HadesGC::Executor::Executor(this=0x00006000009a8ba8)::'lambda'()::operator()() const at HadesGC.cpp:1051:33 [opt] frame https://github.com/facebook/react-native/issues/6: 0x00000001097aedb5 hermes`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, hermes::vm::HadesGC::Executor::Executor()::'lambda'()>>(void*) [inlined] decltype(std::declval<hermes::vm::HadesGC::Executor::Executor()::'lambda'()>()()) std::__1::__invoke[abi:v160006]<hermes::vm::HadesGC::Executor::Executor()::'lambda'()>(__f=0x00006000009a8ba8) at invoke.h:394:23 [opt] frame https://github.com/facebook/react-native/issues/7: 0x00000001097aedb5 hermes`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, hermes::vm::HadesGC::Executor::Executor()::'lambda'()>>(void*) [inlined] void std::__1::__thread_execute[abi:v160006]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, hermes::vm::HadesGC::Executor::Executor()::'lambda'()>(__t=size=2, (null)=<unavailable>) at thread:288:5 [opt] frame https://github.com/facebook/react-native/issues/8: 0x00000001097aedb5 hermes`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, hermes::vm::HadesGC::Executor::Executor()::'lambda'()>>(__vp=0x00006000009a8ba0) at thread:299:5 [opt] frame https://github.com/facebook/react-native/issues/9: 0x000000010d5f4202 libsystem_pthread.dylib`_pthread_start + 99 frame https://github.com/facebook/react-native/issues/10: 0x000000010d5efbab libsystem_pthread.dylib`thread_start + 15 thread https://github.com/facebook/react-native/issues/11, name = 'com.apple.CFStream.LegacyThread' frame #0: 0x000000010d667a2e libsystem_kernel.dylib`mach_msg2_trap + 10 frame https://github.com/facebook/react-native/issues/1: 0x000000010d675e4a libsystem_kernel.dylib`mach_msg2_internal + 84 frame https://github.com/facebook/react-native/issues/2: 0x000000010d66eb6e libsystem_kernel.dylib`mach_msg_overwrite + 653 frame https://github.com/facebook/react-native/issues/3: 0x000000010d667d1f libsystem_kernel.dylib`mach_msg + 19 frame https://github.com/facebook/react-native/issues/4: 0x00000001088b45bf CoreFoundation`__CFRunLoopServiceMachPort + 143 frame https://github.com/facebook/react-native/issues/5: 0x00000001088aed47 CoreFoundation`__CFRunLoopRun + 1371 frame https://github.com/facebook/react-native/issues/6: 0x00000001088ae409 CoreFoundation`CFRunLoopRunSpecific + 557 frame https://github.com/facebook/react-native/issues/7: 0x00000001088d1e34 CoreFoundation`_legacyStreamRunLoop_workThread + 251 frame https://github.com/facebook/react-native/issues/8: 0x000000010d5f4202 libsystem_pthread.dylib`_pthread_start + 99 frame https://github.com/facebook/react-native/issues/9: 0x000000010d5efbab libsystem_pthread.dylib`thread_start + 15 thread https://github.com/facebook/react-native/issues/12, name = 'com.facebook.SocketRocket.NetworkThread' frame #0: 0x000000010d667a2e libsystem_kernel.dylib`mach_msg2_trap + 10 frame https://github.com/facebook/react-native/issues/1: 0x000000010d675e4a libsystem_kernel.dylib`mach_msg2_internal + 84 frame https://github.com/facebook/react-native/issues/2: 0x000000010d66eb6e libsystem_kernel.dylib`mach_msg_overwrite + 653 frame https://github.com/facebook/react-native/issues/3: 0x000000010d667d1f libsystem_kernel.dylib`mach_msg + 19 frame https://github.com/facebook/react-native/issues/4: 0x00000001088b45bf CoreFoundation`__CFRunLoopServiceMachPort + 143 frame https://github.com/facebook/react-native/issues/5: 0x00000001088aed47 CoreFoundation`__CFRunLoopRun + 1371 frame https://github.com/facebook/react-native/issues/6: 0x00000001088ae409 CoreFoundation`CFRunLoopRunSpecific + 557 frame https://github.com/facebook/react-native/issues/7: 0x000000010a34ceee Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 213 frame https://github.com/facebook/react-native/issues/8: 0x000000010381a49b RNTester`-[SRRunLoopThread main](self=0x00006000028e80f0, _cmd="main") at SRRunLoopThread.m:71:16 frame https://github.com/facebook/react-native/issues/9: 0x000000010a377699 Foundation`__NSThread__start__ + 1024 frame https://github.com/facebook/react-native/issues/10: 0x000000010d5f4202 libsystem_pthread.dylib`_pthread_start + 99 frame https://github.com/facebook/react-native/issues/11: 0x000000010d5efbab libsystem_pthread.dylib`thread_start + 15 thread https://github.com/facebook/react-native/issues/13 frame #0: 0x000000010d5efb88 libsystem_pthread.dylib`start_wqthread thread https://github.com/facebook/react-native/issues/14, name = 'com.apple.NSURLConnectionLoader' frame #0: 0x000000010d667a2e libsystem_kernel.dylib`mach_msg2_trap + 10 frame https://github.com/facebook/react-native/issues/1: 0x000000010d675e4a libsystem_kernel.dylib`mach_msg2_internal + 84 frame https://github.com/facebook/react-native/issues/2: 0x000000010d66eb6e libsystem_kernel.dylib`mach_msg_overwrite + 653 frame https://github.com/facebook/react-native/issues/3: 0x000000010d667d1f libsystem_kernel.dylib`mach_msg + 19 frame https://github.com/facebook/react-native/issues/4: 0x00000001088b45bf CoreFoundation`__CFRunLoopServiceMachPort + 143 frame https://github.com/facebook/react-native/issues/5: 0x00000001088aed47 CoreFoundation`__CFRunLoopRun + 1371 frame https://github.com/facebook/react-native/issues/6: 0x00000001088ae409 CoreFoundation`CFRunLoopRunSpecific + 557 frame https://github.com/facebook/react-native/issues/7: 0x00000001093cf78b CFNetwork`___lldb_unnamed_symbol13826 + 444 frame https://github.com/facebook/react-native/issues/8: 0x000000010a377699 Foundation`__NSThread__start__ + 1024 frame https://github.com/facebook/react-native/issues/9: 0x000000010d5f4202 libsystem_pthread.dylib`_pthread_start + 99 frame https://github.com/facebook/react-native/issues/10: 0x000000010d5efbab libsystem_pthread.dylib`thread_start + 15 thread https://github.com/facebook/react-native/issues/15, name = 'com.apple.CFSocket.private' frame #0: 0x000000010d670922 libsystem_kernel.dylib`__select + 10 frame https://github.com/facebook/react-native/issues/1: 0x00000001088c2dcf CoreFoundation`__CFSocketManager + 643 frame https://github.com/facebook/react-native/issues/2: 0x000000010d5f4202 libsystem_pthread.dylib`_pthread_start + 99 frame https://github.com/facebook/react-native/issues/3: 0x000000010d5efbab libsystem_pthread.dylib`thread_start + 15 ``` ## Changelog: [IOS] [FIXED] - Fix module create dead-lock when start-up Pull Request resolved: https://github.com/facebook/react-native/pull/41194 Test Plan: Null. Reviewed By: javache Differential Revision: D50800290 Pulled By: sammy-SC fbshipit-source-id: b60b8e0681cbec7b7aa8812188c9f7ea5f03966b |
||
|
|
bc63e44b23 |
Purge children from view registry when UIManager is invalidated (#38617)
Summary: Talking about Paper & iOS here. In standard RN applications when a native component is removed permanently from view hierarchy [it is invalidated (if it implements `RCTInvalidating`)](https://github.com/facebook/react-native/blob/e64756ae5bb5c0607a4d97a134620fafcb132b3b/packages/react-native/React/Modules/RCTUIManager.m#L483-L495). Components that implement `RCTInvalidating` such as [`RNSScreenView`](https://github.com/software-mansion/react-native-screens/blob/9fb3bd00850bcdf29b46daa57e56eabda3ae30ea/ios/RNSScreen.mm#L35) of [`react-native-screens`](https://github.com/software-mansion/react-native-screens) library rely on `RCTInvalidating#invalidate` method being called in adequate moment to release retained resources (in my case the `RNSScreenView` holds a strong reference to it's view controller preventing it from being garbage collected). However in case of brownfield applications (React Native is used only for a particular view & loaded on demand, see: https://github.com/software-mansion/react-native-screens/issues/1754 for discussion & app example) when view controller holding `RCTRootView` is dismissed and whole `React Native` managed view / controller tree gets deallocated, `RCTInvalidating#invalidate` method is not called on the dismissed components, thus in my particular use case, leading to memory leak. Right now I've added call to `RCTUIManager#_purgeChildren:fromRegistry:` (which internally invalidates all components which implement `RCTInvalidating`) in `RCTUIManager#invalidate`. ## 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 --> [IOS][FIXED] - Purge children from view registry on `RCTUIManager` invalidation. Pull Request resolved: https://github.com/facebook/react-native/pull/38617 Test Plan: You can run the [demo](https://github.com/mkondakov/RNSScreensMemoryLeak) provided in the [issue](https://github.com/software-mansion/react-native-screens/issues/1754). Following screenshots show that memory leak in brownfield application is resolved. Without the change (`invalidate` method is not being called on native components)  With the change:  Reviewed By: NickGerleman Differential Revision: D49952215 Pulled By: javache fbshipit-source-id: 6336b86774615acc40279c97e6ae0bb777bda8ad |
||
|
|
9c5ceeaf99 |
Make the Fabric Interop layer work in Bridgeless (#40732)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40732 This change allows the Fabric Interop Layer to work in bridgeless mode. Given that the legacy components requires a Bridge to send events and use commands, this change simulates a bridge when it doesn't exists (i.e.: we are in bridgeless mode). In order to make it work, we had to simulate a few elements from the Bridge and the UIManager. ## Changelog: [iOS][Fixed] - Make the Fabric interop layer works in bridgeless mode. ## Facebook: As an alternative approach, we could have created a `protocol RCTBridging`, have the `RCTBridge` conform to that protocol, and create a new type for it. Practically this would have been much more cumbersome: 1. The [RCTBridge](https://www.internalfb.com/code/fbsource/[916531b9bf7a9943036807f7563c925b4c3e0101]/xplat/js/react-native-github/packages/react-native/React/Base/RCTBridge.h?lines=87-238) interface is quite big. All the props and method should be part of the protocol. 2. Extensions declared on RCTBridge would not have worked. For example, [`RCTBridge (RCTUIManager)`](https://www.internalfb.com/code/fbsource/[916531b9bf7a9943036807f7563c925b4c3e0101]/xplat/js/react-native-github/packages/react-native/React/Modules/RCTUIManager.h?lines=170-174). 3. It would require a major overhaul of the APIs, returning `id<RCTBridging>` in place of **every** function that takes/return an instance of `RCTBridge *`. Clearly, not a feasible way to go. Reviewed By: RSNara Differential Revision: D50079929 fbshipit-source-id: 77d4370e9043c8e06b676bff3987511c042b0f9c |
||
|
|
56ddace9c8 |
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 |
||
|
|
0d3854c6c3 |
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 |
||
|
|
3f1ee478bb |
Native view configs in bridgeless mode: constantsToExport support (#39519)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39519 If the `constantsToExport` method is overridden by RCTViewManager subclass, we'll out those constants in "Constants" property of the view config. This diff also defines a property on UIManager for every view configs. This add support for `UIManager.RNTMyLegacyNativeView.Constants.PI` syntax in bridgeless mode. Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D49372561 fbshipit-source-id: e9333c94ad882ee38a5a3729ccc19330d7736657 |
||
|
|
47557ae781 |
iOS: Add Commands and Constants properties to native view config (#38221)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/38221 View configs are supposed to have `Commands` and `Constants`. See [ReactNativeTypes.js](https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Renderer/shims/ReactNativeTypes.js#L68-L69). Android sets them in native: see [UIManagerModuleConstantsHelper.java](https://github.com/facebook/react-native/blob/main/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java#L172-L179). ut iOS doesn't: see [RCTUIManager.m](https://github.com/facebook/react-native/blob/main/packages/react-native/React/Modules/RCTUIManager.m#L1484-L1487) Instead there is code for that in [PaperUIManager.js](https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/ReactNative/PaperUIManager.js#L117-L160). It accesses viewManagers like this: `const viewManager = NativeModules[viewConfig.Manager]`. But `NativeModules` object is not available in the bridgeless mode. So we fail to provide complete native view configs in the New Architecture. This diff implements `Commands` and `Constants` in native in iOS. This change should have no effect in the old architecture because these properties are overwritten by `lazifyViewManagerConfig`. Changelog: [Internal] - Add Commands and Constants properties to native view config. Reviewed By: sammy-SC Differential Revision: D47096624 fbshipit-source-id: e3b3183ba5e3d1d2fb3f3ff5d6ff89ad86095a6c |
||
|
|
7bc2b730a8 |
Interop: Introduce Bridge proxy
Summary: The TurboModule interop layer on iOS will ship with a Bridge proxy. The Bridge proxy is an object that will try to simulate the Bridge's APIs, whenever possible, by delegating to Bridgeless abstractions. ## Changes This diff introduces the Bridge proxy. This diff starts attaching the Bridge proxy on legacy native module objects. ## How did we polyfill the APIs The polyfills can be classified into these categories: - implemented - custom warning - custom error - default error - deleted When there was a sane implementation (e.g: the API belonged to [RCTCallableJSModules](https://www.internalfb.com/code/fbsource/[534223aa13d33b595edcb777189618efe20dd167]/xplat/js/react-native-github/React/Base/RCTCallableJSModules.m?lines=11), [RCTModuleRegistry](https://www.internalfb.com/code/fbsource/[9a3ba2b3176b6d1a1f161e33cec51bf892815311]/xplat/js/react-native-github/React/Base/RCTModuleRegistry.m?lines=13), [RCTBundleManager](https://www.internalfb.com/code/fbsource/[91fa1f7f49731a16aedbcd5a6740647dc21ff727]/xplat/js/react-native-github/React/Base/RCTBundleManager.m?lines=13), or [RCTBundleManager](https://www.internalfb.com/code/fbsource/[91fa1f7f49731a16aedbcd5a6740647dc21ff727]/xplat/js/react-native-github/React/Base/RCTBundleManager.m?lines=13)), it was implemented. When it was safe to no-op the API (e.g: loading), it emit a custom warning. When it was unsafe to call (i.e: we didn't want people calling the API) (e.g: RCTCxxBridge start), it emit a custom error. All other APIs emit default errors. Some APIs cannot emit errors because doing so makes the app not render: I put warnings and nooped those APIs. I think we will have to tune these polyfills based off production crashes/results. Reviewed By: mdvacca Differential Revision: D46084318 fbshipit-source-id: c02535073956597a4bf91c14b1980f653cb6d3df |
||
|
|
7f22db8ea0 |
Introduce __nativeComponentRegistry__getNativeViewConfig (#37522)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/37522 This diff adds cross-platform Cxx binding helper and iOS specific implementation of `__nativeComponentRegistry__getNativeViewConfig` to JS runtime. This function provides native view config for a native component in bridgeless mode. Changelog: [Internal] - Introduce `__nativeComponentRegistry__getNativeViewConfig` in iOS. Reviewed By: javache Differential Revision: D43538804 fbshipit-source-id: 0aeca40c1c2a625eca5d60e466eb24df30453ba7 |
||
|
|
677672ab1f |
add missing function prototypes (#36709)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36709 Add missing function prototypes Changelog: [Internal] Reviewed By: adamjernst Differential Revision: D44520929 fbshipit-source-id: f363b8355b805f7f1a2701ebd9a61efd0d6bc06e |
||
|
|
b9c64f3651 |
Bulk detect/correct (most of the) typos and misspells in RN core code
Summary: ## Changelog: [Internal] - While merging a Contributor PR in D43816768, I got curious whether such things as detecting/fixing typos could be automated. There is a tool called [typos](https://github.com/crate-ci/typos), which, as it turns out, works very well on source code files. The amount of false positives was minimal, most of the suggestions were valid ones. And the total amount of typos found and fixed was **more than 300**, which is... quite a bit :) ### Methodology * Run `typos` separately on `ReactCommon`, `Libraries`, `React`, `ReactAndroid` and `scripts` folders inside `packages/react-native`, e.g.: ``` $ typos -w --config ~/tmp/_typos.toml ~/fbsource/xplat/js/react-native-github/packages/react-native/ReactAndroid ``` Contents of the `_typos.toml` config file: ``` [default.extend-words] collapsable = "collapsable" NDK = "NDK" inout = "inout" ``` (yeah, it really didn't like the "collapsable" word, for some reason ;)) * Inspect all the changes manually and revert false positives (as mentioned, their amount was minimal) Note that most of the changes are inside things like comments and error messages, however there are a few among identifier name fixes (`typos` is actually quite smart at understanding naming conventions in code) - I kept the suggestions in cases that are local and not part of a public API. There are also misspelled file name changes in a couple of cases. Reviewed By: NickGerleman Differential Revision: D44172494 fbshipit-source-id: 86e27edbbb99e09135e3cdd5d7cea8ffeb8307f4 |
||
|
|
714b502b0c |
| RN Monorepo | Migrate to package (#36434)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36434 Changelog: [Internal] This is a squashed stack of 18 commits, starting from D43202126 allow-large-files Reviewed By: cortinico Differential Revision: D43977381 fbshipit-source-id: 0da552ddb85f2f61a0be0ef071915b35f3f8555c |