diff options
Diffstat (limited to 'benchmark/misc/getstringwidth.js')
-rw-r--r-- | benchmark/misc/getstringwidth.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/benchmark/misc/getstringwidth.js b/benchmark/misc/getstringwidth.js new file mode 100644 index 0000000000..12f071c60d --- /dev/null +++ b/benchmark/misc/getstringwidth.js @@ -0,0 +1,26 @@ +'use strict'; + +const common = require('../common.js'); + +const bench = common.createBenchmark(main, { + type: ['ascii', 'mixed', 'emojiseq', 'fullwidth'], + n: [10e4] +}, { + flags: ['--expose-internals'] +}); + +function main({ n, type }) { + const { getStringWidth } = require('internal/readline/utils'); + + const str = ({ + ascii: 'foobar'.repeat(100), + mixed: 'foo'.repeat(100) + '๐' + 'bar'.repeat(100), + emojiseq: '๐จโ๐จโ๐งโ๐ฆ๐จโ๐ฉโ๐ฆโ๐ฆ๐จโ๐ฉโ๐งโ๐ง๐ฉโ๐ฉโ๐งโ๐ฆ'.repeat(10), + fullwidth: 'ไฝ ๅฅฝ'.repeat(150) + })[type]; + + bench.start(); + for (let j = 0; j < n; j += 1) + getStringWidth(str); + bench.end(n); +} |