anchor.diff:      return new List.from(index.reversed);
     }
   
  +  void _checkEmptyInput() {
  +    if (_bytes.length == 0) throw new StateError("Empty input given.");
  +  }
  +
     /// Deserializes a kernel component and stores it in [component].
     ///
     /// When linking with a non-empty component, canonical names must have been
  
positive.code:   ///
    /// The input bytes may contain multiple files concatenated.
    void readComponent(Component component, {bool checkCanonicalNames: false}) {
      // Check that we have a .dill file and it has the correct version before we
      // start decoding it.  Otherwise we will fail for cryptic reasons.
      int offset = _byteOffset;
  
negative.code:   }
  
    List<int> _indexComponents() {
      _checkEmptyInput();
      int savedByteOffset = _byteOffset;
      _byteOffset = _bytes.length - 4;
      List<int> index = <int>[];
  