summaryrefslogtreecommitdiff
path: root/deps/node/benchmark/url
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/benchmark/url')
-rw-r--r--deps/node/benchmark/url/legacy-vs-whatwg-url-get-prop.js91
-rw-r--r--deps/node/benchmark/url/legacy-vs-whatwg-url-parse.js67
-rw-r--r--deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-parse.js47
-rw-r--r--deps/node/benchmark/url/legacy-vs-whatwg-url-searchparams-serialize.js49
-rw-r--r--deps/node/benchmark/url/legacy-vs-whatwg-url-serialize.js54
-rw-r--r--deps/node/benchmark/url/url-format.js27
-rw-r--r--deps/node/benchmark/url/url-parse.js22
-rw-r--r--deps/node/benchmark/url/url-resolve.js29
-rw-r--r--deps/node/benchmark/url/url-searchparams-iteration.js58
-rw-r--r--deps/node/benchmark/url/url-searchparams-read.js22
-rw-r--r--deps/node/benchmark/url/url-searchparams-sort.js47
-rw-r--r--deps/node/benchmark/url/usvstring.js27
-rw-r--r--deps/node/benchmark/url/whatwg-url-idna.js43
-rw-r--r--deps/node/benchmark/url/whatwg-url-properties.js60
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');
- }
-}