angular/watchtower.js

Ensure ChangeRecord list is cleaned up while iterating

Closed this issue · 0 comments

dart-archive/angular.dart@75fbded addresses an issue: ChangeRecord lists can reference deleted groups, and keep those groups alive when they ought to be discarded.

The implementation in Dart fixes this with a new ChangeIterator class, as well as some additional cleanup in DirtyCheckingChangeDetectorGroup#remove().

I think this might be implemented in a simpler way with ES6 by adding a custom iterator to the ChangeRecord class, but this still makes usage of the API a bit more awkward. We'll see.