mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
b12ab7a3d4
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50257 Changelog: [internal] ## Context We have some tests that make sure certain objects are deallocated/released at the right times, but those are generally hard to get right. The main reason is that WeakRefs semantics are tied to the tasks and microtasks in JS, but we handle them both inside and outside the Event Loop in Fantom tests. This leads to some surprising behavior where things we expect to have been deallocated weren't because of some innocent looking code. ## Changes This introduces a safety mechanism in Fantom to enforce that WeakRefs are always dereferenced inside the Event Loop, by patching the method in `WeakRef` and checking if we're in the Event Loop using Fantom APIs. It also updates the existing test using WeakRefs to fix the new errors thrown by this patch, and to serve as a "good example" on how to use WeakRefs to do memory testing. Reviewed By: yungsters Differential Revision: D71815397 fbshipit-source-id: 8faab1898d9112ec365b41867179abb8b251e337