diff --git a/benchmark/url/url-resolve.js b/benchmark/url/url-resolve.js index 18f67e82e30787..8372132e4d269e 100644 --- a/benchmark/url/url-resolve.js +++ b/benchmark/url/url-resolve.js @@ -3,30 +3,43 @@ var common = require('../common.js'); var url = require('url'); var v8 = require('v8'); +var hrefs = [ + 'http://example.com/', + 'http://nodejs.org/docs/latest/api/url.html#url_url_format_urlobj', + 'http://blog.nodejs.org/', + 'https://encrypted.google.com/search?q=url&q=site:npmjs.org&hl=en', + 'javascript:alert("node is awesome");', + 'some.ran/dom/url.thing?oh=yes#whoo' +]; + + +var paths = [ + '../../../../../etc/passwd', + '../foo/bar?baz=boom', + 'foo/bar', + 'http://nodejs.org', + './foo/bar?baz' +]; + var bench = common.createBenchmark(main, { - type: ['one'], - n: [1e5], + href: Object.keys(hrefs), + path: Object.keys(paths), + n: [1e5] }); function main(conf) { - var type = conf.type; var n = conf.n | 0; - - var inputs = { - one: ['http://example.com/', '../../../../../etc/passwd'], - }; - var input = inputs[type] || []; + var href = hrefs[conf.href]; + var path = paths[conf.path]; // Force-optimize url.resolve() so that the benchmark doesn't get // disrupted by the optimizer kicking in halfway through. - for (var name in inputs) - url.resolve(inputs[name][0], inputs[name][1]); - + url.resolve(href, path); v8.setFlagsFromString('--allow_natives_syntax'); eval('%OptimizeFunctionOnNextCall(url.resolve)'); bench.start(); for (var i = 0; i < n; i += 1) - url.resolve(input[0], input[1]); + url.resolve(href, path); bench.end(n); }