anchor.diff:    }
   
     void _handleEof(StreamController outputController) {
  -    if ((_subParser == _SubParser.end) ||
  +    if ((_subParser == _SubParser.end || _subParser == _SubParser.errored) ||
           (_isImplicitArray && _subParser == _SubParser.begin)) {
         outputController.close();
       } else {
  
positive.code:       _subParser = _SubParser.numberPart2;
      } else {
        try {
          _parserAssertNotReached("Expected DIGIT, +, or -");
        } catch (err) {
          _numberIsReady.completeError(err);
        }
  
negative.code:                     });
                    });
                  });
                }).catchError((error) {
                  outputController.addError(error);
                  _subParser = _SubParser.errored;
                });
                return; // Because we'll still use the token subparser
              default:
                _stringBuffer.writeCharCode(nextBufferCode);
  