@@ -174,7 +174,7 @@ var parseObject = function (chain, val, options, valuesParsed) {
174
174
) {
175
175
obj = [ ] ;
176
176
obj [ index ] = leaf ;
177
- } else {
177
+ } else if ( cleanRoot !== '__proto__' ) {
178
178
obj [ cleanRoot ] = leaf ;
179
179
}
180
180
}
@@ -316,6 +316,7 @@ var arrayPrefixGenerators = {
316
316
} ;
317
317
318
318
var isArray = Array . isArray ;
319
+ var split = String . prototype . split ;
319
320
var push = Array . prototype . push ;
320
321
var pushToArray = function ( arr , valueOrArray ) {
321
322
push . apply ( arr , isArray ( valueOrArray ) ? valueOrArray : [ valueOrArray ] ) ;
@@ -393,6 +394,14 @@ var stringify = function stringify(
393
394
if ( isNonNullishPrimitive ( obj ) || utils . isBuffer ( obj ) ) {
394
395
if ( encoder ) {
395
396
var keyValue = encodeValuesOnly ? prefix : encoder ( prefix , defaults . encoder , charset , 'key' , format ) ;
397
+ if ( generateArrayPrefix === 'comma' && encodeValuesOnly ) {
398
+ var valuesArray = split . call ( String ( obj ) , ',' ) ;
399
+ var valuesJoined = '' ;
400
+ for ( var i = 0 ; i < valuesArray . length ; ++ i ) {
401
+ valuesJoined += ( i === 0 ? '' : ',' ) + formatter ( encoder ( valuesArray [ i ] , defaults . encoder , charset , 'value' , format ) ) ;
402
+ }
403
+ return [ formatter ( keyValue ) + '=' + valuesJoined ] ;
404
+ }
396
405
return [ formatter ( keyValue ) + '=' + formatter ( encoder ( obj , defaults . encoder , charset , 'value' , format ) ) ] ;
397
406
}
398
407
return [ formatter ( prefix ) + '=' + formatter ( String ( obj ) ) ] ;
@@ -407,17 +416,17 @@ var stringify = function stringify(
407
416
var objKeys ;
408
417
if ( generateArrayPrefix === 'comma' && isArray ( obj ) ) {
409
418
// we need to join elements in
410
- objKeys = [ { value : obj . length > 0 ? obj . join ( ',' ) || null : undefined } ] ;
419
+ objKeys = [ { value : obj . length > 0 ? obj . join ( ',' ) || null : void undefined } ] ;
411
420
} else if ( isArray ( filter ) ) {
412
421
objKeys = filter ;
413
422
} else {
414
423
var keys = Object . keys ( obj ) ;
415
424
objKeys = sort ? keys . sort ( sort ) : keys ;
416
425
}
417
426
418
- for ( var i = 0 ; i < objKeys . length ; ++ i ) {
419
- var key = objKeys [ i ] ;
420
- var value = typeof key === 'object' && key . value !== undefined ? key . value : obj [ key ] ;
427
+ for ( var j = 0 ; j < objKeys . length ; ++ j ) {
428
+ var key = objKeys [ j ] ;
429
+ var value = typeof key === 'object' && typeof key . value !== ' undefined' ? key . value : obj [ key ] ;
421
430
422
431
if ( skipNulls && value === null ) {
423
432
continue ;
@@ -453,7 +462,7 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
453
462
return defaults ;
454
463
}
455
464
456
- if ( opts . encoder !== null && opts . encoder !== undefined && typeof opts . encoder !== 'function' ) {
465
+ if ( opts . encoder !== null && typeof opts . encoder !== ' undefined' && typeof opts . encoder !== 'function' ) {
457
466
throw new TypeError ( 'Encoder has to be a function.' ) ;
458
467
}
459
468
@@ -755,6 +764,7 @@ var encode = function encode(str, defaultEncoder, charset, kind, format) {
755
764
756
765
i += 1 ;
757
766
c = 0x10000 + ( ( ( c & 0x3FF ) << 10 ) | ( string . charCodeAt ( i ) & 0x3FF ) ) ;
767
+ /* eslint operator-linebreak: [2, "before"] */
758
768
out += hexTable [ 0xF0 | ( c >> 18 ) ]
759
769
+ hexTable [ 0x80 | ( ( c >> 12 ) & 0x3F ) ]
760
770
+ hexTable [ 0x80 | ( ( c >> 6 ) & 0x3F ) ]
0 commit comments