@@ -948,13 +948,13 @@ exports.send = function(name, stream, url, callback, cookies, headers, method, t
948948
949949 var response = function ( res ) {
950950
951- res . body = '' ;
951+ res . body = new Buffer ( 0 ) ;
952952 res . _bufferlength = 0 ;
953953
954954 res . on ( 'data' , function ( chunk ) {
955- res . body += chunk . toString ( ENCODING ) ;
956- this . _bufferlength += chunk . length ;
957- e . emit ( 'data' , chunk , responseLength ? ( this . _bufferlength / responseLength ) * 100 : 0 ) ;
955+ res . body = Buffer . concat ( [ res . body , chunk ] ) ;
956+ res . _bufferlength += chunk . length ;
957+ e . emit ( 'data' , chunk , responseLength ? ( res . _bufferlength / responseLength ) * 100 : 0 ) ;
958958 } ) ;
959959
960960 res . on ( 'end' , function ( ) {
@@ -963,7 +963,7 @@ exports.send = function(name, stream, url, callback, cookies, headers, method, t
963963 e . removeAllListeners ( ) ;
964964 e = null ;
965965 if ( callback )
966- callback ( null , self . body , self . statusCode , self . headers , uri . host ) ;
966+ callback ( null , self . body . toString ( 'utf8' ) , self . statusCode , self . headers , uri . host ) ;
967967 self . body = null ;
968968 } ) ;
969969 } ;
@@ -1288,24 +1288,30 @@ exports.streamer = function(beg, end, callback) {
12881288 end = undefined ;
12891289 }
12901290
1291- var cache = '' ;
12921291 var indexer = 0 ;
1292+ var buffer = new Buffer ( 0 ) ;
1293+
1294+ beg = new Buffer ( beg , 'utf8' ) ;
1295+ if ( end )
1296+ end = new Buffer ( end , 'utf8' ) ;
12931297
12941298 if ( ! end ) {
12951299 var length = beg . length ;
12961300 return function ( chunk ) {
1301+
12971302 if ( ! chunk )
12981303 return ;
1299- if ( typeof ( chunk ) !== 'string' )
1300- chunk = chunk . toString ( 'utf8' ) ;
1301- cache += chunk ;
1302- var index = cache . indexOf ( beg ) ;
1304+
1305+ buffer = Buffer . concat ( [ buffer , chunk ] ) ;
1306+
1307+ var index = buffer . indexOf ( beg ) ;
13031308 if ( index === - 1 )
13041309 return ;
1310+
13051311 while ( index !== - 1 ) {
1306- callback ( cache . substring ( 0 , index + length ) , indexer ++ ) ;
1307- cache = cache . substring ( index + length ) ;
1308- index = cache . indexOf ( beg ) ;
1312+ callback ( buffer . toString ( 'utf8' , 0 , index + length ) , indexer ++ ) ;
1313+ buffer = buffer . slice ( index + length ) ;
1314+ index = buffer . indexOf ( beg ) ;
13091315 if ( index === - 1 )
13101316 return ;
13111317 }
@@ -1323,33 +1329,30 @@ exports.streamer = function(beg, end, callback) {
13231329 if ( ! chunk )
13241330 return ;
13251331
1326- if ( typeof ( chunk ) !== 'string' )
1327- chunk = chunk . toString ( 'utf8' ) ;
1328-
1329- cache += chunk ;
1332+ buffer = Buffer . concat ( [ buffer , chunk ] ) ;
13301333
13311334 if ( ! is ) {
1332- bi = cache . indexOf ( beg ) ;
1335+ bi = buffer . indexOf ( beg ) ;
13331336 if ( bi === - 1 )
13341337 return ;
13351338 is = true ;
13361339 }
13371340
13381341 if ( is ) {
1339- ei = cache . indexOf ( end , bi + blength ) ;
1342+ ei = buffer . indexOf ( end , bi + blength ) ;
13401343 if ( ei === - 1 )
13411344 return ;
13421345 }
13431346
13441347 while ( bi !== - 1 ) {
1345- callback ( cache . substring ( bi , ei + elength ) , indexer ++ ) ;
1346- cache = cache . substring ( ei + elength ) ;
1348+ callback ( buffer . toString ( 'utf8' , bi , ei + elength ) , indexer ++ ) ;
1349+ buffer = buffer . slice ( ei + elength ) ;
13471350 is = false ;
1348- bi = cache . indexOf ( beg ) ;
1351+ bi = buffer . indexOf ( beg ) ;
13491352 if ( bi === - 1 )
13501353 return ;
13511354 is = true ;
1352- ei = cache . indexOf ( end , bi + blength ) ;
1355+ ei = buffer . indexOf ( end , bi + blength ) ;
13531356 if ( ei === - 1 )
13541357 return ;
13551358 }
@@ -1870,12 +1873,6 @@ exports.combine = function() {
18701873 else
18711874 p += ( p [ p . length - 1 ] !== '/' ? '/' : '' ) + v ;
18721875 }
1873-
1874- /*
1875- if (isWindows)
1876- p = p.substring(1);
1877- */
1878-
18791876 return exports . $normalize ( p ) ;
18801877} ;
18811878
@@ -1885,9 +1882,7 @@ exports.combine = function() {
18851882 * @return {String }
18861883 */
18871884exports . removeDiacritics = function ( str ) {
1888- return str . replace ( regexpDiacritics , function ( c ) {
1889- return DIACRITICSMAP [ c ] || c ;
1890- } ) ;
1885+ return str . replace ( regexpDiacritics , c => DIACRITICSMAP [ c ] || c ) ;
18911886} ;
18921887
18931888/**
0 commit comments