querystring: simplify stringify method

PR-URL: https://github.com/nodejs/node/pull/26591
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
ZYSzys 2019-03-27 11:21:49 +08:00 committed by Ruben Bridgewater
parent eb2dccb17a
commit b965ac22ca
No known key found for this signature in database
GPG Key ID: F07496B3EB3C1762
2 changed files with 11 additions and 6 deletions

View File

@ -3,8 +3,8 @@ const common = require('../common.js');
const querystring = require('querystring');
const bench = common.createBenchmark(main, {
type: ['noencode', 'encodemany', 'encodelast'],
n: [1e7],
type: ['noencode', 'encodemany', 'encodelast', 'array'],
n: [1e6],
});
function main({ type, n }) {
@ -23,6 +23,11 @@ function main({ type, n }) {
foo: 'bar',
baz: 'quux',
xyzzy: 'thu\u00AC'
},
array: {
foo: [],
baz: ['bar'],
xyzzy: ['bar', 'quux', 'thud']
}
};
const input = inputs[type];

View File

@ -176,19 +176,19 @@ function stringify(obj, sep, eq, options) {
if (Array.isArray(v)) {
var vlen = v.length;
if (vlen === 0) continue;
var vlast = vlen - 1;
for (var j = 0; j < vlen; ++j) {
fields += ks + encode(stringifyPrimitive(v[j]));
if (j < vlast)
fields += sep;
}
if (vlen && i < flast)
fields += sep;
} else {
fields += ks + encode(stringifyPrimitive(v));
if (i < flast)
fields += sep;
}
if (i < flast)
fields += sep;
}
return fields;
}