anchor.diff:        });
   
         o.onUnavailable.first.then((o) {
  -        _beforeNextPaint((_) {
  +        _beforeNextPaint(() {
             _optionsContainer.children.removeWhere(
                 (e) => e.children[0].attributes['name'] == _toId(o.text));
           });
         });
       });
     }
  -}
   
  -// TODO: not sure if this is really helping anything
  -_beforeNextPaint(void drawFrame(num msSincePageLoad)) {
  -  window.animationFrame.then(drawFrame);
  +  // TODO: not sure if this is really helping anything
  +  _beforeNextPaint(void domUpdate()) {
  +    _domQueue.add(domUpdate);
  +    window.animationFrame.then((_) {
  +      while (_domQueue.isNotEmpty) {
  +        _domQueue.removeFirst()();
  +      }
  +    });
  +  }
   }
   
   // DivElement _getDialogElement(DialogEvent e, DialogInterface dialog) {
  
positive.code: //    });
  
      options.onOptionAvailable.listen((o) {
        _beforeNextPaint((_) {
          _optionsContainer.children.add(new LIElement()
            ..children.add(new SpanElement()
              ..classes.add('option')
  
negative.code: library august.ui.html;
  
  import 'dart:html';
  import 'dart:collection';
  
  import 'package:august/options.dart';
  
  