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 _QrCalc extends core.SendPortValue<String, List<bool>> {
    _QrCalc() : super(spawnFunction(_qrIsolate));
  }
  
  void _qrIsolate() {
    final errorCorrectLevel = QrDemo.errorCorrectLevel;
    final typeNumber = QrDemo.typeNumber;
    final size = QrDemo.size;
  
    new core.SendValuePort<String, List<bool>>((String input){
      final code = new core.QrCode(typeNumber, errorCorrectLevel);
      code.addData(input);
      code.make();
  
      final List<bool> squares = new List<bool>();
  
      for(int x = 0; x < size; x++) {
        for(int y = 0; y < size; y++) {
          squares.add(code.isDark(y, x));
        }
      }
  
negative.code:   core.Coordinate _mouseLocation;
    bool _frameRequested = false;
  
    QrDemo(this._canvas) :
      _qrMapper = new _QrCalc() {
      _qrMapper.outputChanged.add((args) {
        _squares = _qrMapper.output;
  