anchor.diff:    // Constructor.
     AsciiDocEditor() {
       // Save demo source text.
  -    final DivElement sourceNode = querySelector('#${_SOURCE_NODE_ID}');
  -    _demoSourceText = sourceNode.text.trim();
  +    _sourceNode = querySelector('#${_SOURCE_NODE_ID}');
  +    _demoSourceText = _sourceNode.text.trim();
   
       // Initialize editor.
       _aceEditor = context['ace'].callMethod(
           'edit', [_SOURCE_NODE_ID]);
  +    // For manual debugging in the console.
  +    context['aceEditor'] = _aceEditor;
       _aceEditorSession = _aceEditor.callMethod('getSession');
       // _aceEditor.callMethod('setTheme', ['ace/theme/monokai']);
       _aceEditorSession.callMethod(
  
positive.code:     // Register event handler for source text.
      _aceEditorSession.callMethod(
          'on', ['change', _onSourceTextChange]);
      // Set focus on editor now.
      _aceEditor.callMethod('focus');
  
      // Construct node validator for output HTML.
      NodeValidatorBuilder builder = new NodeValidatorBuilder.common();
  
negative.code: 
    // DOM components.
    final String _SOURCE_NODE_ID = 'asciidoc-source';
    DivElement _sourceNode = null;
    final DivElement _outputNode = querySelector('#asciidoc-output');
    final String _unloadConfirmationMessage = (
        querySelector('#unload-confirmation-message').text
  