diff options
Diffstat (limited to 'deps/node/benchmark/url')
-rw-r--r-- | deps/node/benchmark/url/legacy-vs-whatwg-url-get-prop.js | 91 | ||||
-rw-r--r-- | deps/node/benchmark/url/legacy-vs-whatwg-url-parse.js | 67 | ||||
-rw-r--r-- | deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-parse.js | 47 | ||||
-rw-r--r-- | deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-serialize.js | 49 | ||||
-rw-r--r-- | deps/node/benchmark/url/legacy-vs-whatwg-url-serialize.js | 54 | ||||
-rw-r--r-- | deps/node/benchmark/url/url-format.js | 27 | ||||
-rw-r--r-- | deps/node/benchmark/url/url-parse.js | 22 | ||||
-rw-r--r-- | deps/node/benchmark/url/url-resolve.js | 29 | ||||
-rw-r--r-- | deps/node/benchmark/url/url-searchparams-iteration.js | 58 | ||||
-rw-r--r-- | deps/node/benchmark/url/url-searchparams-read.js | 22 | ||||
-rw-r--r-- | deps/node/benchmark/url/url-searchparams-sort.js | 47 | ||||
-rw-r--r-- | deps/node/benchmark/url/usvstring.js | 27 | ||||
-rw-r--r-- | deps/node/benchmark/url/whatwg-url-idna.js | 43 | ||||
-rw-r--r-- | deps/node/benchmark/url/whatwg-url-properties.js | 60 |
14 files changed, 0 insertions, 643 deletions
diff --git a/deps/node/benchmark/url/legacy-vs-whatwg-url-get-prop.js b/deps/node/benchmark/url/legacy-vs-whatwg-url-get-prop.js deleted file mode 100644 index 59bb4724..00000000 --- a/deps/node/benchmark/url/legacy-vs-whatwg-url-get-prop.js +++ /dev/null @@ -1,91 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const url = require('url'); -const URL = url.URL; -const assert = require('assert'); - -const bench = common.createBenchmark(main, { - type: common.urlDataTypes, - method: ['legacy', 'whatwg'], - e: [1] -}); - -function useLegacy(data) { - const obj = url.parse(data[0]); - const noDead = { - protocol: obj.protocol, - auth: obj.auth, - host: obj.host, - hostname: obj.hostname, - port: obj.port, - pathname: obj.pathname, - search: obj.search, - hash: obj.hash - }; - const len = data.length; - // It's necessary to assign the values to an object - // to avoid loop invariant code motion. - bench.start(); - for (var i = 0; i < len; i++) { - const obj = data[i]; - noDead.protocol = obj.protocol; - noDead.auth = obj.auth; - noDead.host = obj.host; - noDead.hostname = obj.hostname; - noDead.port = obj.port; - noDead.pathname = obj.pathname; - noDead.search = obj.search; - noDead.hash = obj.hash; - } - bench.end(len); - return noDead; -} - -function useWHATWG(data) { - const obj = new URL(data[0]); - const noDead = { - protocol: obj.protocol, - auth: `${obj.username}:${obj.password}`, - host: obj.host, - hostname: obj.hostname, - port: obj.port, - pathname: obj.pathname, - search: obj.search, - hash: obj.hash - }; - const len = data.length; - bench.start(); - for (var i = 0; i < len; i++) { - const obj = data[i]; - noDead.protocol = obj.protocol; - noDead.auth = `${obj.username}:${obj.password}`; - noDead.host = obj.host; - noDead.hostname = obj.hostname; - noDead.port = obj.port; - noDead.pathname = obj.pathname; - noDead.search = obj.search; - noDead.hash = obj.hash; - } - bench.end(len); - return noDead; -} - -function main({ type, method, e }) { - e = +e; - var data; - var noDead; // Avoid dead code elimination. - switch (method) { - case 'legacy': - data = common.bakeUrlData(type, e, false, false); - noDead = useLegacy(data.map((i) => url.parse(i))); - break; - case 'whatwg': - data = common.bakeUrlData(type, e, false, true); - noDead = useWHATWG(data); - break; - default: - throw new Error(`Unknown method "${method}"`); - } - - assert.ok(noDead); -} diff --git a/deps/node/benchmark/url/legacy-vs-whatwg-url-parse.js b/deps/node/benchmark/url/legacy-vs-whatwg-url-parse.js deleted file mode 100644 index e4af2e0b..00000000 --- a/deps/node/benchmark/url/legacy-vs-whatwg-url-parse.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const url = require('url'); -const URL = url.URL; -const assert = require('assert'); - -const bench = common.createBenchmark(main, { - withBase: ['true', 'false'], - type: common.urlDataTypes, - e: [1], - method: ['legacy', 'whatwg'] -}); - -function useLegacy(data) { - const len = data.length; - var result = url.parse(data[0]); // avoid dead code elimination - bench.start(); - for (var i = 0; i < len; ++i) { - result = url.parse(data[i]); - } - bench.end(len); - return result; -} - -function useWHATWGWithBase(data) { - const len = data.length; - var result = new URL(data[0][0], data[0][1]); // avoid dead code elimination - bench.start(); - for (var i = 0; i < len; ++i) { - const item = data[i]; - result = new URL(item[0], item[1]); - } - bench.end(len); - return result; -} - -function useWHATWGWithoutBase(data) { - const len = data.length; - var result = new URL(data[0]); // avoid dead code elimination - bench.start(); - for (var i = 0; i < len; ++i) { - result = new URL(data[i]); - } - bench.end(len); - return result; -} - -function main({ e, method, type, withBase }) { - e = +e; - withBase = withBase === 'true'; - var noDead; // Avoid dead code elimination. - var data; - switch (method) { - case 'legacy': - data = common.bakeUrlData(type, e, false, false); - noDead = useLegacy(data); - break; - case 'whatwg': - data = common.bakeUrlData(type, e, withBase, false); - noDead = withBase ? useWHATWGWithBase(data) : useWHATWGWithoutBase(data); - break; - default: - throw new Error(`Unknown method ${method}`); - } - - assert.ok(noDead); -} diff --git a/deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-parse.js b/deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-parse.js deleted file mode 100644 index 81b5b6dc..00000000 --- a/deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-parse.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const { URLSearchParams } = require('url'); -const querystring = require('querystring'); -const searchParams = common.searchParams; - -const bench = common.createBenchmark(main, { - searchParam: Object.keys(searchParams), - method: ['legacy', 'whatwg'], - n: [1e6] -}); - -function useLegacy(n, input) { - querystring.parse(input); - bench.start(); - for (var i = 0; i < n; i += 1) { - querystring.parse(input); - } - bench.end(n); -} - -function useWHATWG(n, param) { - new URLSearchParams(param); - bench.start(); - for (var i = 0; i < n; i += 1) { - new URLSearchParams(param); - } - bench.end(n); -} - -function main({ searchParam, n, method }) { - const param = searchParams[searchParam]; - if (!param) { - throw new Error(`Unknown search parameter type "${searchParam}"`); - } - - switch (method) { - case 'legacy': - useLegacy(n, param); - break; - case 'whatwg': - useWHATWG(n, param); - break; - default: - throw new Error(`Unknown method ${method}`); - } -} diff --git a/deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-serialize.js b/deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-serialize.js deleted file mode 100644 index f97961de..00000000 --- a/deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-serialize.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const { URLSearchParams } = require('url'); -const querystring = require('querystring'); -const searchParams = common.searchParams; - -const bench = common.createBenchmark(main, { - searchParam: Object.keys(searchParams), - method: ['legacy', 'whatwg'], - n: [1e6] -}); - -function useLegacy(n, input, prop) { - const obj = querystring.parse(input); - querystring.stringify(obj); - bench.start(); - for (var i = 0; i < n; i += 1) { - querystring.stringify(obj); - } - bench.end(n); -} - -function useWHATWG(n, param, prop) { - const obj = new URLSearchParams(param); - obj.toString(); - bench.start(); - for (var i = 0; i < n; i += 1) { - obj.toString(); - } - bench.end(n); -} - -function main({ searchParam, n, method }) { - const param = searchParams[searchParam]; - if (!param) { - throw new Error(`Unknown search parameter type "${searchParam}"`); - } - - switch (method) { - case 'legacy': - useLegacy(n, param); - break; - case 'whatwg': - useWHATWG(n, param); - break; - default: - throw new Error(`Unknown method ${method}`); - } -} diff --git a/deps/node/benchmark/url/legacy-vs-whatwg-url-serialize.js b/deps/node/benchmark/url/legacy-vs-whatwg-url-serialize.js deleted file mode 100644 index e4c821cb..00000000 --- a/deps/node/benchmark/url/legacy-vs-whatwg-url-serialize.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const url = require('url'); -const URL = url.URL; -const assert = require('assert'); - -const bench = common.createBenchmark(main, { - type: common.urlDataTypes, - method: ['legacy', 'whatwg'], - e: [1] -}); - -function useLegacy(data) { - const obj = url.parse(data[0]); - const len = data.length; - var noDead = url.format(obj); - bench.start(); - for (var i = 0; i < len; i++) { - noDead = data[i].toString(); - } - bench.end(len); - return noDead; -} - -function useWHATWG(data) { - const obj = new URL(data[0]); - const len = data.length; - var noDead = obj.toString(); - bench.start(); - for (var i = 0; i < len; i++) { - noDead = data[i].toString(); - } - bench.end(len); - return noDead; -} - -function main({ type, e, method }) { - e = +e; - const data = common.bakeUrlData(type, e, false, false); - - var noDead; // Avoid dead code elimination. - switch (method) { - case 'legacy': - noDead = useLegacy(data); - break; - case 'whatwg': - noDead = useWHATWG(data); - break; - default: - throw new Error(`Unknown method ${method}`); - } - - assert.ok(noDead); -} diff --git a/deps/node/benchmark/url/url-format.js b/deps/node/benchmark/url/url-format.js deleted file mode 100644 index 14696af8..00000000 --- a/deps/node/benchmark/url/url-format.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const url = require('url'); - -const inputs = { - slashes: { slashes: true, host: 'localhost' }, - file: { protocol: 'file:', pathname: '/foo' }, -}; - -const bench = common.createBenchmark(main, { - type: Object.keys(inputs), - n: [25e6] -}); - -function main({ type, n }) { - const input = inputs[type] || ''; - - // Force-optimize url.format() so that the benchmark doesn't get - // disrupted by the optimizer kicking in halfway through. - for (const name in inputs) - url.format(inputs[name]); - - bench.start(); - for (var i = 0; i < n; i += 1) - url.format(input); - bench.end(n); -} diff --git a/deps/node/benchmark/url/url-parse.js b/deps/node/benchmark/url/url-parse.js deleted file mode 100644 index 83f626cc..00000000 --- a/deps/node/benchmark/url/url-parse.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const url = require('url'); - -const inputs = { - normal: 'http://foo.com/bar', - escaped: 'https://foo.bar/{}^`/abcd' -}; - -const bench = common.createBenchmark(main, { - type: Object.keys(inputs), - n: [1e7] -}); - -function main({ type, n }) { - const input = inputs[type] || ''; - - bench.start(); - for (var i = 0; i < n; i += 1) - url.parse(input); - bench.end(n); -} diff --git a/deps/node/benchmark/url/url-resolve.js b/deps/node/benchmark/url/url-resolve.js deleted file mode 100644 index bd584c6f..00000000 --- a/deps/node/benchmark/url/url-resolve.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const url = require('url'); -const hrefs = common.urls; -hrefs.noscheme = 'some.ran/dom/url.thing?oh=yes#whoo'; - -const paths = { - 'up': '../../../../../etc/passwd', - 'sibling': '../foo/bar?baz=boom', - 'foo/bar': 'foo/bar', - 'withscheme': 'http://nodejs.org', - 'down': './foo/bar?baz' -}; - -const bench = common.createBenchmark(main, { - href: Object.keys(hrefs), - path: Object.keys(paths), - n: [1e5] -}); - -function main({ n, href, path }) { - const h = hrefs[href]; - const p = paths[path]; - - bench.start(); - for (var i = 0; i < n; i += 1) - url.resolve(h, p); - bench.end(n); -} diff --git a/deps/node/benchmark/url/url-searchparams-iteration.js b/deps/node/benchmark/url/url-searchparams-iteration.js deleted file mode 100644 index 244c9550..00000000 --- a/deps/node/benchmark/url/url-searchparams-iteration.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const assert = require('assert'); -const { URLSearchParams } = require('url'); - -const bench = common.createBenchmark(main, { - loopMethod: ['forEach', 'iterator'], - n: [1e6] -}); - -const str = 'one=single&two=first&three=first&two=2nd&three=2nd&three=3rd'; - -function forEach(n) { - const params = new URLSearchParams(str); - const noDead = []; - const cb = (val, key) => { - noDead[0] = key; - noDead[1] = val; - }; - - bench.start(); - for (var i = 0; i < n; i += 1) - params.forEach(cb); - bench.end(n); - - assert.strictEqual(noDead[0], 'three'); - assert.strictEqual(noDead[1], '3rd'); -} - -function iterator(n) { - const params = new URLSearchParams(str); - const noDead = []; - - bench.start(); - for (var i = 0; i < n; i += 1) { - for (const pair of params) { - noDead[0] = pair[0]; - noDead[1] = pair[1]; - } - } - bench.end(n); - - assert.strictEqual(noDead[0], 'three'); - assert.strictEqual(noDead[1], '3rd'); -} - -function main({ loopMethod, n }) { - switch (loopMethod) { - case 'forEach': - forEach(n); - break; - case 'iterator': - iterator(n); - break; - default: - throw new Error(`Unknown method ${loopMethod}`); - } -} diff --git a/deps/node/benchmark/url/url-searchparams-read.js b/deps/node/benchmark/url/url-searchparams-read.js deleted file mode 100644 index 2eb0a4f2..00000000 --- a/deps/node/benchmark/url/url-searchparams-read.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const { URLSearchParams } = require('url'); - -const bench = common.createBenchmark(main, { - accessMethod: ['get', 'getAll', 'has'], - param: ['one', 'two', 'three', 'nonexistent'], - n: [2e7] -}); - -const str = 'one=single&two=first&three=first&two=2nd&three=2nd&three=3rd'; - -function main({ accessMethod, param, n }) { - const params = new URLSearchParams(str); - if (!params[accessMethod]) - throw new Error(`Unknown method ${accessMethod}`); - - bench.start(); - for (var i = 0; i < n; i += 1) - params[accessMethod](param); - bench.end(n); -} diff --git a/deps/node/benchmark/url/url-searchparams-sort.js b/deps/node/benchmark/url/url-searchparams-sort.js deleted file mode 100644 index 6720b66d..00000000 --- a/deps/node/benchmark/url/url-searchparams-sort.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const URLSearchParams = require('url').URLSearchParams; - -const inputs = { - wpt: 'wpt', // to work around tests - empty: '', - sorted: 'a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z', - almostsorted: 'a&b&c&d&e&f&g&i&h&j&k&l&m&n&o&p&q&r&s&t&u&w&v&x&y&z', - reversed: 'z&y&x&w&v&u&t&s&r&q&p&o&n&m&l&k&j&i&h&g&f&e&d&c&b&a', - random: 'm&t&d&c&z&v&a&n&p&y&u&o&h&l&f&j&e&q&b&i&s&x&k&w&r&g', - // 8 parameters - short: 'm&t&d&c&z&v&a&n', - // 88 parameters - long: 'g&r&t&h&s&r&d&w&b&n&h&k&x&m&k&h&o&e&x&c&c&g&e&b&p&p&s&n&j&b&y&z&' + - 'u&l&o&r&w&a&u&l&m&f&j&q&p&f&e&y&e&n&e&l&m&w&u&w&t&n&t&q&v&y&c&o&' + - '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); - - bench.start(); - for (var i = 0; i < n; i++) { - params[searchParams] = array.slice(); - params.sort(); - } - bench.end(n); -} diff --git a/deps/node/benchmark/url/usvstring.js b/deps/node/benchmark/url/usvstring.js deleted file mode 100644 index 91abe8d6..00000000 --- a/deps/node/benchmark/url/usvstring.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -const common = require('../common.js'); - -const inputs = { - valid: 'adsfadsfadsf', - validsurr: '\uda23\ude23\uda1f\udfaa\ud800\udfff\uda23\ude23\uda1f\udfaa' + - '\ud800\udfff', - someinvalid: 'asasfdfasd\uda23', - allinvalid: '\udc45\uda23 \udf00\udc00 \udfaa\uda12 \udc00\udfaa', - nonstring: { toString() { return 'asdf'; } } -}; -const bench = common.createBenchmark(main, { - input: Object.keys(inputs), - n: [5e7] -}, { - flags: ['--expose-internals'] -}); - -function main({ input, n }) { - const { toUSVString } = require('internal/url'); - const str = inputs[input]; - - bench.start(); - for (var i = 0; i < n; i++) - toUSVString(str); - bench.end(n); -} diff --git a/deps/node/benchmark/url/whatwg-url-idna.js b/deps/node/benchmark/url/whatwg-url-idna.js deleted file mode 100644 index b67a08da..00000000 --- a/deps/node/benchmark/url/whatwg-url-idna.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; -const common = require('../common.js'); -const { domainToASCII, domainToUnicode } = require('url'); - -const domains = { - empty: { - ascii: '', - unicode: '' - }, - none: { - ascii: 'passports', - unicode: 'passports' - }, - some: { - ascii: 'Paßstraße', - unicode: 'xn--Pastrae-1vae' - }, - all: { - ascii: '他们不说中文', - unicode: 'xn--ihqwczyycu19kkg2c' - }, - nonstring: { - ascii: { toString() { return ''; } }, - unicode: { toString() { return ''; } } - } -}; - -const bench = common.createBenchmark(main, { - domain: Object.keys(domains), - to: ['ascii', 'unicode'], - n: [5e6] -}); - -function main({ n, to, domain }) { - const value = domains[domain][to]; - const method = to === 'ascii' ? domainToASCII : domainToUnicode; - - bench.start(); - for (var i = 0; i < n; i++) { - method(value); - } - bench.end(n); -} diff --git a/deps/node/benchmark/url/whatwg-url-properties.js b/deps/node/benchmark/url/whatwg-url-properties.js deleted file mode 100644 index 6961fec4..00000000 --- a/deps/node/benchmark/url/whatwg-url-properties.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; -const common = require('../common.js'); - -const bench = common.createBenchmark(main, { - withBase: ['true', 'false'], - type: ['wpt'], // Too many combinations - just use WPT by default - e: [1], - prop: ['href', 'origin', 'protocol', - 'username', 'password', 'host', 'hostname', 'port', - 'pathname', 'search', 'searchParams', 'hash'] -}); - -function setAndGet(data, prop) { - const len = data.length; - var result = data[0][prop]; - bench.start(); - for (var i = 0; i < len; ++i) { - result = data[i][prop]; - data[i][prop] = result; - } - bench.end(len); - return result; -} - -function get(data, prop) { - const len = data.length; - var result = data[0][prop]; - bench.start(); - for (var i = 0; i < len; ++i) { - result = data[i][prop]; // get - } - bench.end(len); - return result; -} - -function main({ e, type, prop, withBase }) { - e = +e; - withBase = withBase === 'true'; - const data = common.bakeUrlData(type, e, withBase, true); - switch (prop) { - case 'protocol': - case 'username': - case 'password': - case 'host': - case 'hostname': - case 'port': - case 'pathname': - case 'search': - case 'hash': - case 'href': - setAndGet(data, prop); - break; - case 'origin': - case 'searchParams': - get(data, prop); - break; - default: - throw new Error('Unknown prop'); - } -} |