When a topmost prototype object (from ex-nihilo creation, that is, an object containing nil as parent) is collected, its finalizer doesn't know whether it's a topmost prototype or not. Due that, the finalizer will try to add clones for such nil prototype, and thus errors are thrown mostly cause nil doesn't have clones in this library (there's no reason for that, nil won't eventually trigger and propagate changes anyways). The solution here is to patch the finalizer to detect if an object being collect is a topmost prototype.
When a topmost prototype object (from ex-nihilo creation, that is, an object containing
nil
as parent) is collected, its finalizer doesn't know whether it's a topmost prototype or not. Due that, the finalizer will try to add clones for suchnil
prototype, and thus errors are thrown mostly causenil
doesn't have clones in this library (there's no reason for that,nil
won't eventually trigger and propagate changes anyways). The solution here is to patch the finalizer to detect if an object being collect is a topmost prototype.