anchor.diff:  // AUTHORS file for details. All rights reserved. Use of this source code
   // is governed by a BSD-style license that can be found in the LICENSE file.
   
  -/// DOM Scheduler for write and read tasks.
  -///
  -/// The scheduler algorithm is quite simple and looks like this:
  -///
  -/// ```dart
  -/// while (writeTasks.isNotEmpty) {
  -///   while (writeTasks.isNotEmpty) {
  -///      writeTasks.removeFirst().start();
  -///      runMicrotasks();
  -///   }
  -///   while (readTasks.isNotEmpty) {
  -///     readTasks.removeFirst().start();
  -///     runMicrotasks();
  -///   }
  -/// }
  -/// while (afterTasks.isNotEmpty) {
  -///   afterTasks.removeFirst().start();
  -///   runMicrotasks();
  -/// }
  -/// ```
  +/// Scheduler
   ///
   /// It will perform write and read tasks in batches until there are no
   /// write or read tasks left.
  
positive.code:   }
  
    void _requestAnimationFrame() {
      if (_rafId == 0) {
        _rafId = html.window.requestAnimationFrame(_handleAnimationFrame);
      }
    }
  
    void _handleAnimationFrame(num t) {
      _rafId = 0;
  
      _zone.run(() {
        _running = true;
        final tmp = _currentFrame;
        _currentFrame = _nextFrame;
        _nextFrame = tmp;
        final wq = _currentFrame._writeQueue;
  
        // TODO: refactor!
        do {
          while (wq.isNotEmpty) {
            final writeGroup = wq.removeFirst();
            writeGroup._completer.complete();
            _runTasks();
            writeGroup._completer = null;
          }
          if (_currentFrame._lowestPriorityWriteGroup != null) {
            _currentFrame._lowestPriorityWriteGroup._completer.complete();
            _runTasks();
            _currentFrame._lowestPriorityWriteGroup = null;
          }
  
          if (_currentFrame._readCompleter != null) {
            _currentFrame._readCompleter.complete();
            _runTasks();
            _currentFrame._readCompleter = null;
          }
        } while (wq.isNotEmpty || _currentFrame._lowestPriorityWriteGroup != null);
  
        if (_currentFrame._afterCompleter != null) {
          _currentFrame._afterCompleter.complete();
          _runTasks();
          _currentFrame._afterCompleter = null;
        }
        _running = false;
      });
  
    }
  
    /// Force [DOMScheduler] to run tasks for the [nextFrame].
    void forceNextFrame() {
      if (_rafId != 0) {
        html.window.cancelAnimationFrame(_rafId);
        _rafId = 0;
        _handleAnimationFrame(html.window.performance.now());
      }
    }
  }
  
negative.code:   static const int lowestPriority = (1 << 31) - 1;
  
    /// Write groups indexed by priority
    List<_WriteGroup> _prioWriteGroups = [];
    _WriteGroup _writeGroup;
  
    HeapPriorityQueue<_WriteGroup> _writeQueue =
        new HeapPriorityQueue<_WriteGroup>();
  