anchor.diff:    core.EventRoot get error() => _qrMapper.error;
   
     void updateValue(String value) {
  -    _qrMapper.input = value;
  +    _value = value;
  +    _update();
  +  }
  +
  +  void _update() {
  +    _qrMapper.input =
  +        new core.Tuple3<int,int,String>(_typeNumber, _errorCorrectLevel, _value);
     }
   
     void requestFrame(){
  
positive.code: }
  
  class QrDemo{
    static final int errorCorrectLevel = core.QrErrorCorrectLevel.M;
    static final int typeNumber = 10;
    static final int size = typeNumber * 4 + 17;
  
    final CanvasElement _canvas;
    final _QrCalc _qrMapper;
    final int scale;
    final int offset;
  
    List<bool> _squares;
    CanvasRenderingContext2D _ctx;
  
negative.code:   }
  }
  
  class _QrCalc
    extends core.SendPortValue<core.Tuple3<int, int, String>, List<bool>> {
    _QrCalc() : super(spawnFunction(_qrIsolate));
  }
  
  void _qrIsolate() {
  
    new core.SendValuePort<core.Tuple3<int, int, String>, List<bool>>((input) {
      final code = new core.QrCode(input.Item1, input.Item2);
      code.addData(input.Item3);
      code.make();
  
      final List<bool> squares = new List<bool>();
  
      for(int x = 0; x < code.moduleCount; x++) {
        for(int y = 0; y < code.moduleCount; y++) {
          squares.add(code.isDark(y, x));
        }
      }
  