@@ -8,18 +8,25 @@ var ReplyError = require('./replyError')
8
8
* @param parser
9
9
* @returns {* }
10
10
*/
11
- function parseSimpleString ( parser ) {
11
+ function parseSimpleNumbers ( parser ) {
12
12
var offset = parser . offset
13
13
var length = parser . buffer . length
14
14
var string = ''
15
+ var c1 = parser . buffer [ offset ++ ]
16
+
17
+ if ( c1 === 45 ) {
18
+ string += '-'
19
+ } else {
20
+ string += c1 - 48
21
+ }
15
22
16
23
while ( offset < length ) {
17
- var c1 = parser . buffer [ offset ++ ]
24
+ c1 = parser . buffer [ offset ++ ]
18
25
if ( c1 === 13 && parser . buffer [ offset ] === 10 ) { // \r\n
19
26
parser . offset = offset + 1
20
27
return string
21
28
}
22
- string += String . fromCharCode ( c1 )
29
+ string += c1 - 48
23
30
}
24
31
}
25
32
@@ -61,12 +68,12 @@ function parseSimpleStringViaOffset (parser) {
61
68
}
62
69
63
70
/**
64
- * Returns the string length via parseSimpleString
71
+ * Returns the string length via parseSimpleNumbers
65
72
* @param parser
66
73
* @returns {* }
67
74
*/
68
75
function parseLength ( parser ) {
69
- var string = parseSimpleString ( parser )
76
+ var string = parseSimpleNumbers ( parser )
70
77
if ( string !== undefined ) {
71
78
return + string
72
79
}
@@ -78,7 +85,7 @@ function parseLength (parser) {
78
85
* @returns {* }
79
86
*/
80
87
function parseInteger ( parser ) {
81
- var string = parseSimpleString ( parser )
88
+ var string = parseSimpleNumbers ( parser )
82
89
if ( string !== undefined ) {
83
90
// If stringNumbers is activated the parser always returns numbers as string
84
91
// This is important for big numbers (number > Math.pow(2, 53)) as js numbers
0 commit comments