There is a cache used for unrolling rec/sub types, to avoid re-computing this constantly. The cache holds keys weakly (when the key is collected, it should be explicitly removed from the cache map) but it should hold values strongly to avoid deallocation. Right now the values are also held weakly. Changing this to use a `RefPtr` instead fixes some crashes related to this. It's been difficult to construct a example to reproduce the issue, but it comes up in real programs.
<rdar://problem/119435998>
Pull request: https://github.com/WebKit/WebKit/pull/21739
Committed 272016@main (456ffae07aa8): <https://commits.webkit.org/272016@main> Reviewed commits have been landed. Closing PR #21739 and removing active labels.