Use soft references for values instead of weak references in the WeakWeakMap, so that values are only finalised when there is enough memory pressure.