Commit dd9777b284b for nodejs
commit dd9777b284b05a0c4864ae9543e0b4d2020721db
Author: RafaelGSS <rafael.nunu@hotmail.com>
Date: Mon Oct 5 10:32:13 2026 -0300
benchmark: fix url-searchparams-sort to sort a fresh list
Copying from another URLSearchParams only slices its internal list,
so every iteration sorts a fresh, unsorted copy.
Refs: https://github.com/nodejs/node/issues/50566
Signed-off-by: RafaelGSS <rafael.nunu@hotmail.com>
PR-URL: https://github.com/nodejs/node/pull/66535
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
diff --git a/benchmark/url/url-searchparams-sort.js b/benchmark/url/url-searchparams-sort.js
index fcd55cd3979..2b40085e367 100644
--- a/benchmark/url/url-searchparams-sort.js
+++ b/benchmark/url/url-searchparams-sort.js
@@ -16,30 +16,17 @@ const inputs = {
'k&f&j&i&l&m&g&j&d&i&z&q&p&x&q&q&d&n&y&w&g&i&v&r',
};
-function getParams(str) {
- const out = [];
- for (const key of str.split('&')) {
- out.push(key, '');
- }
- return out;
-}
-
const bench = common.createBenchmark(main, {
type: Object.keys(inputs),
n: [1e6],
-}, {
- flags: ['--expose-internals'],
});
function main({ type, n }) {
- const searchParams = require('internal/url').searchParamsSymbol;
- const input = inputs[type];
- const params = new URLSearchParams();
- const array = getParams(input);
+ const base = new URLSearchParams(inputs[type]);
bench.start();
for (let i = 0; i < n; i++) {
- params[searchParams] = array.slice();
+ const params = new URLSearchParams(base);
params.sort();
}
bench.end(n);