anchor.diff:  library uix.src.scheduler;
   
   import 'dart:async';
  -import 'dart:collection';
   import 'dart:html' as html;
   import 'package:collection/priority_queue.dart';
  +
  +class _TaskEntry {
  +  final Function fn;
  +  _TaskEntry _next;
  +
  +  _TaskEntry(this.fn);
  +}
  +
  +class _TaskQueue {
  +  _TaskEntry _first;
  +  _TaskEntry _last;
  +
  +  void add(Function fn) {
  +    final e = new _TaskEntry(fn);
  +    if (_last == null) {
  +      _first = e;
  +    } else {
  +      _last._next = e;
  +    }
  +    _last = e;
  +  }
  +
  +  void run() {
  +    while (_first != null) {
  +      _first.fn();
  +      _first = _first._next;
  +    }
  +    _last = null;
  +  }
  +}
   
   /// Write groups sorted by priority.
   ///
  
positive.code:       flags |= frameRunningFlag;
  
        _onNextFrameController.add(null);
        _runTasks();
        if (_onNextFrameController.hasListener) {
          _requestAnimationFrame();
        }
  
negative.code: 
        _nextTickCompleter.complete();
        _nextTickCompleter = null;
        _currentTasks.run();
  
        clock++;
        flags &= ~tickRunningFlag;
  