forked from nodejs/node
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusvstring.js
More file actions
28 lines (25 loc) · 705 Bytes
/
usvstring.js
File metadata and controls
28 lines (25 loc) · 705 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'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(conf) {
const { toUSVString } = require('internal/url');
const str = inputs[conf.input];
const n = conf.n | 0;
bench.start();
for (var i = 0; i < n; i++)
toUSVString(str);
bench.end(n);
}