spread operator benchmark
by CoolCmd
HTML
<script src="https://cdn.jsdelivr.net/g/lodash@4.17.4,benchmarkjs@2.1.4"></script>
<ul id='cycleResults'>
</ul>
<div id="result">
</div>
<br>
<button id="btn">
Run Tests
</button>
JavaScript
'use strict';
var a = Array(1000);
a.fill(0x20);
function test1() {
return String.fromCodePoint.apply(this, a);
}
function test2() {
return String.fromCodePoint(...a);
}
var cycleResults = document.getElementById('cycleResults');
var result = document.getElementById('result');
var btn = document.getElementById('btn');
btn.onclick = function runTests() {
cycleResults.textContent = '';
result.textContent = 'Tests running...';
btn.setAttribute('hidden', '');
(new Benchmark.Suite)
// add tests
.add('apply', test1)
.add('spread', test2)
// add listeners
.on('cycle', function(event) {
console.log(event.target);
var e = document.createElement('li');
e.textContent = String(event.target);
cycleResults.appendChild(e);
})
.on('complete', function() {
result.textContent = 'Fastest is ' + this.filter('fastest').map('name');
btn.removeAttribute('hidden');
})
// run async
.run({
'async': true
});
};