JSFiddle - React, Tailwind, and code Playground
HTML
<pre id="logger"></pre>
JavaScript
var log = '';
function * gen() { log += 'X'; yield 0; log += 'Y'; }
function a() { log += 'A'; }
function b() { log += 'B'; return gen(); }
function c() { log += 'C'; }
function fn() {
var args = [];
for (var i = 0; i < arguments.length; ++i) {
args.push(arguments[i]);
}
return args;
}
function atostr(O) {
return '[' + O.reduce(function(prev, curr) {
if (prev) prev += ', ';
return prev + String(curr);
}, '') + ']';
}
function $log(O) {
if (Array.isArray(O)) {
O = atostr(O);
}
logger.appendChild(document.createTextNode(O + "\n"));
}
$log(fn(a(), ...b(), c()));
$log(log);