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
	});
};