@@ -38,7 +38,8 @@ function parseSimpleNumbers (parser) {
38
38
/**
39
39
* Used for integer numbers in case of the returnNumbers option
40
40
*
41
- * The maximimum possible integer to use is: Math.floor(Number.MAX_SAFE_INTEGER / 10) - 9
41
+ * The maximimum possible integer to use is: Math.floor(Number.MAX_SAFE_INTEGER / 10)
42
+ * Staying in a SMI Math.floor((Math.pow(2, 32) / 10) - 1) is even more efficient though
42
43
*
43
44
* @param parser
44
45
* @returns {* }
@@ -62,9 +63,8 @@ function parseStringNumbers (parser) {
62
63
res += number
63
64
}
64
65
return res
65
- } else if ( number > 900719925474090 ) {
66
- res += number
67
- res += c1 - 48
66
+ } else if ( number > 429496728 ) {
67
+ res += ( number * 10 ) + ( c1 - 48 )
68
68
number = 0
69
69
} else if ( c1 === 48 && number === 0 ) {
70
70
res += 0
@@ -102,9 +102,9 @@ function convertBufferRange (parser, start, end) {
102
102
*/
103
103
function parseSimpleStringViaOffset ( parser ) {
104
104
var start = parser . offset
105
- var offset = parser . offset
106
- var length = parser . buffer . length - 1
105
+ var offset = start
107
106
var buffer = parser . buffer
107
+ var length = buffer . length - 1
108
108
109
109
while ( offset < length ) {
110
110
if ( buffer [ offset ++ ] === 13 ) { // \r\n
@@ -121,7 +121,7 @@ function parseSimpleStringViaOffset (parser) {
121
121
function parseLength ( parser ) {
122
122
var string = parseSimpleNumbers ( parser )
123
123
if ( string !== undefined ) {
124
- return + string
124
+ return string
125
125
}
126
126
}
127
127
0 commit comments