anchor.diff:      if (delimiterInner != null) _expect(delimiterInner);
        _expect(delimiter);
       
  -     var value = _delimiterString(
  -         _openDelimiter,
  -         _openDelimiterInner,
  -         _closeDelimiterInner,
  -         _closeDelimiter);
  +     // Create delimiter string.
  +     var buffer = new StringBuffer();
  +     buffer.writeCharCode(_openDelimiter);
  +     if (_openDelimiterInner != null) buffer.writeCharCode(_openDelimiterInner);
  +     buffer.write(' ');
  +     if (_closeDelimiterInner != null) {
  +       buffer.writeCharCode(_closeDelimiterInner);
  +     }
  +     buffer.writeCharCode(_closeDelimiter);
  +     var value = buffer.toString();
             
        _append(TokenType.changeDelimiter, value, start, _offset);
     }
  
positive.code:      _lenient = lenient,
       _itr = source.runes.iterator {
      
      var delims = _parseDelimiterString(delimiters);
      _openDelimiter = delims[0];
      _openDelimiterInner = delims[1];
      _closeDelimiterInner = delims[2];
      _closeDelimiter = delims[3];
      
      if (source == '') {
        _c = _EOF;
      } else {
        _itr.moveNext();
        _c = _itr.current;
      }
    }
  
  
negative.code:     return new TemplateException(message, _templateName, _source, _offset);
    }
  
  }
  
  const int _EOF = -1;
  