title: Avoid memory leak with circular references in Dart
body: <p>I want to reference owner class in its field. It is necessary to dispose these listeners or Dart GC can handle this case?
  If owner object is not referenced outside anymore, GC can free up the whole object?
  +1 case: 'FilterManager' have 3rd object (service) that still alive</p>
  <pre><code>class FilterManager {
    SampleService service;
  
    Val&lt;String&gt; search = ''.val;
  
    FilterManager(this.service) {
      search.addListener(onChange);
    }
  
    void onChange() {
      service.filterChanged();
    }
  }
  
  mixin ValChangeNotifier {
    LinkedList&lt;UpdateListenerEntry&gt;? _listeners = LinkedList&lt;UpdateListenerEntry&gt;();
  
    void addListener(UpdateVoidCallback listener) {
      _listeners!.add(UpdateListenerEntry(listener));
    }
  ...
  }
  </code></pre>