Merge pull request #6220 from Snuffleupagus/issue-6218

Ignore double negative in `Lexer_getNumber` (issue 6218)
This commit is contained in:
Tim van der Meij 2015-07-17 21:29:40 +02:00
commit 4b6e2724ae
2 changed files with 12 additions and 0 deletions

View File

@ -671,6 +671,11 @@ var Lexer = (function LexerClosure() {
if (ch === 0x2D) { // '-' if (ch === 0x2D) { // '-'
sign = -1; sign = -1;
ch = this.nextChar(); ch = this.nextChar();
if (ch === 0x2D) { // '-'
// Ignore double negative (this is consistent with Adobe Reader).
ch = this.nextChar();
}
} else if (ch === 0x2B) { // '+' } else if (ch === 0x2B) { // '+'
ch = this.nextChar(); ch = this.nextChar();
} }

View File

@ -27,6 +27,13 @@ describe('parser', function() {
} }
}); });
it('should ignore double negative before number', function() {
var input = new StringStream('--205.88');
var lexer = new Lexer(input);
var result = lexer.getNumber();
expect(result).toEqual(-205.88);
});
it('should handle glued numbers and operators', function() { it('should handle glued numbers and operators', function() {
var input = new StringStream('123ET'); var input = new StringStream('123ET');