'use strict'; const util = require('util'); const common = require('../common'); const inputs = { 'string': ['Hello, my name is %s', 'Fred'], 'string-2': ['Hello, %s is my name', 'Fred'], 'number': ['Hi, I was born in %d', 1989], 'replace-object': ['An error occurred %j', { msg: 'This is an error' }], 'unknown': ['hello %a', 'test'], 'no-replace': [1, 2], 'no-replace-2': ['foobar', 'yeah', 'mensch', 5], 'only-objects': [{ msg: 'This is an error' }, { msg: 'This is an error' }], 'many-%': ['replace%%%%s%%%%many%s%s%s', 'percent'], 'object-to-string': ['foo %s bar', { toString() { return 'bla'; } }], 'object-%s': ['foo %s bar', { a: true, b: false }], }; const bench = common.createBenchmark(main, { n: [1e6], type: Object.keys(inputs), }); function main({ n, type }) { const [first, second] = inputs[type]; bench.start(); for (let i = 0; i < n; i++) { util.format(first, second); } bench.end(n); }