As I know it, change detection of Angular 5 is implemented using Zone.js. According to Zone.js GitHug page it was inspired by zone in Dart language. Unfortunately Zone.js is very intrusive library, because it patches Standard browser objects, like Promise, Event, setTimeout and setInterval etc.
Now, I would like to get more details about change detection in AngularDart? Also, I'm wondering how Dart's zone works after it was compiled by dart2js? Does it patches or wraps browser objects?