anchor.diff:          _data = _data.getRange(0, read);
         }
         _position = 0;
  +      _activeFillBufferCall = false;
   
         if (_fileLength == _filePosition) {
           _closeFile();
         }
         _checkScheduleCallbacks();
  +    });
  +    future.handleException((e) {
  +      _activeFillBufferCall = false;
  +      _reportError(e);
  +      return true;
       });
     }
   
  
positive.code:     List<int> result;
      if (_position == 0 && bytesToRead == _data.length) {
        result = _data;
        _data = [];
      } else {
        result = new Uint8List(bytesToRead);
        result.setRange(0, bytesToRead, _data, _position);
  
negative.code:   }
  
    _FileInputStream.fromStdio(int fd)
        : _data = const [],
          _position = 0,
          _filePosition = 0 {
      assert(fd == 0);
  