anchor.diff:  
   
   void _qrIsolate() {
  +  final errorCorrectLevel = QrDemo.errorCorrectLevel;
     final typeNumber = QrDemo.typeNumber;
     final size = QrDemo.size;
   
     port.receive((String input,
         SendPort reply) {
   
  -    final code = new core.QrCode(typeNumber, core.QrErrorCorrectLevel.Q);
  +    final code = new core.QrCode(typeNumber, errorCorrectLevel);
       code.addData(input);
       code.make();
   
  
positive.code: }
  
  class QrDemo{
    static final int typeNumber = 10;
    static final int size = typeNumber * 4 + 17;
    static final int scale = 10;
  
    final CanvasElement _canvas;
    final core.SendPortValue<String, List<bool>> _qrMapper;
  
    List<bool> _squares;
    CanvasRenderingContext2D _ctx;
  
negative.code:   core.Coordinate _mouseLocation;
    bool _frameRequested = false;
  
    factory QrDemo(CanvasElement canvas) {
      final minDimension = Math.min(canvas.width, canvas.height);
  
      final scale = minDimension ~/ size;
  
      final offset = (minDimension - (scale * size)) ~/ 2;
  
      return new QrDemo._internal(canvas, scale, offset);
    }
  
    QrDemo._internal(this._canvas, this.scale, this.offset) :
      _qrMapper = new core.SendPortValue(spawnFunction(_qrIsolate)) {
      _qrMapper.outputChanged.add((args) {
        _squares = _qrMapper.output;
  