anchor.diff:      _aceEditorSession.callMethod(
           'on', ['change', _onSourceTextChange]);
       _aceEditorSession.callMethod(
  -        'on', ['changeScrollTop',
  -               (e, t) => _setOutputScrollRatio(_sourceScrollRatio)]);
  +        'on', ['changeScrollTop', _onSourceTextScroll]);
       // Set focus on editor now.
       _aceEditor.callMethod('focus');
       // Register event handler for output.
  -    _outputNode.onScroll.listen(
  -        (e) => _setSourceScrollRatio(_outputScrollRatio));
  +    _outputNode.onScroll.listen(_onOutputScroll);
   
       // Construct node validator for output HTML.
       NodeValidatorBuilder builder = new NodeValidatorBuilder.common();
  
positive.code:     _outputNode.scrollTop = _outputScrollSize.toScrollTop(scrollRatio);
    }
  
    // URL of the AsciiDoc API.
    static final String _ASCIIDOC_TO_HTML_URI = '/api/v1/asciidoc-to-html';
  
  
negative.code: 
    // Timer for executing _Update.
    Timer _updateTimer = null;
  
    // Set when the source or the output is being scrolled by the user. This
    // prevents scrolling callbacks on other elements.
    DivElement _scrollEventSource = null;
  }
  
  
  