summaryrefslogtreecommitdiff
path: root/benchmark/es
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark/es')
-rw-r--r--benchmark/es/string-repeat.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/benchmark/es/string-repeat.js b/benchmark/es/string-repeat.js
new file mode 100644
index 0000000000..a6b389033a
--- /dev/null
+++ b/benchmark/es/string-repeat.js
@@ -0,0 +1,35 @@
+'use strict';
+
+const assert = require('assert');
+const common = require('../common.js');
+
+const configs = {
+ n: [1e3],
+ mode: ['Array', 'repeat'],
+ encoding: ['ascii', 'utf8'],
+ size: [1e1, 1e3, 1e6],
+};
+
+const bench = common.createBenchmark(main, configs);
+
+function main(conf) {
+ const n = +conf.n;
+ const size = +conf.size;
+ const character = conf.encoding === 'ascii' ? 'a' : '\ud83d\udc0e'; // '🐎'
+
+ let str;
+
+ if (conf.mode === 'Array') {
+ bench.start();
+ for (let i = 0; i < n; i++)
+ str = new Array(size + 1).join(character);
+ bench.end(n);
+ } else {
+ bench.start();
+ for (let i = 0; i < n; i++)
+ str = character.repeat(size);
+ bench.end(n);
+ }
+
+ assert.strictEqual([...str].length, size);
+}