alert = x => {
try {
new Function(x); // Throws `SyntaxError` if invalid syntax
success++; // If no error is thrown, increment
spans.success.textContent = success;
spans.valid.textContent = x + '\n' + spans.valid.textContent;
} catch (e) { }
spans.trials.textContent = i;
spans.pct.textContent = (success / i * 100).toFixed(2);
};
var success, i, spans = {
success: document.getElementById('success'),
trials: document.getElementById('trials'),
pct: document.getElementById('pct'),
valid: document.getElementById('valid')
}, intervalId = null, button = document.getElementById('button');
success = i = 0;
function start() {
if (intervalId === null) {
intervalId = setInterval(_ => {
i++;
a="a=q;a=a.replace('q',uneval(a));for(b=c='a';d=a.split(c),c=d[Math.random()*~-d.length+1|0][0];b+=c);alert(b)";a=a.replace('q',uneval(a));for(b=c='a';d=a.split(c),c=d[Math.random()*~-d.length+1|0][0];b+=c);alert(b)
// Above from http://codegolf.stackexchange.com/a/98146/48878
}, 1);
}
button.onclick = stop;
button.textContent = 'Stop';
}
function stop() {
if (intervalId !== null) {
clearInterval(intervalId);
intervalId = null;
}
button.onclick = start;
button.textContent = 'Start';
spans.valid.className = 'prettyprint lang-js';
var script = document.createElement('script');
script.src = 'https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js';
document.body.appendChild(script);
var notice = document.getElementById('notice');
if (notice !== null) {
if (notice.parentNode !== null) {
notice.parentNode.removeChild(notice);
}
}
}
start();
alert = x => {
try {
new Function(x); // Throws `SyntaxError` if invalid syntax
success++; // If no error is thrown, increment
spans.success.textContent = success;
spans.valid.textContent = x + '\n' + spans.valid.textContent;
} catch (e) { }
spans.trials.textContent = i;
spans.pct.textContent = (success / i * 100).toFixed(2);
};
var success, i, spans = {
success: document.getElementById('success'),
trials: document.getElementById('trials'),
pct: document.getElementById('pct'),
valid: document.getElementById('valid')
}, intervalId = null, button = document.getElementById('button');
success = i = 0;
function start() {
if (intervalId === null) {
intervalId = setInterval(_ => {
i++;
a="a=q;a=a.replace('q',uneval(a));for(b=c='a';d=a.split(c),c=d[Math.random()*~-d.length+1|0][0];b+=c);alert(b)";a=a.replace('q',uneval(a));for(b=c='a';d=a.split(c),c=d[Math.random()*~-d.length+1|0][0];b+=c);alert(b)
// Above from http://codegolf.stackexchange.com/a/98146/48878
}, 1);
}
button.onclick = stop;
button.textContent = 'Stop';
}
function stop() {
if (intervalId !== null) {
clearInterval(intervalId);
intervalId = null;
}
button.onclick = start;
button.textContent = 'Start';
spans.valid.className = 'prettyprint lang-js';
var script = document.createElement('script');
script.src = 'https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js';
document.body.appendChild(script);
var notice = document.getElementById('notice');
if (notice !== null) {
if (notice.parentNode !== null) {
notice.parentNode.removeChild(notice);
}
}
}
start();
<button id="button">Stop</button><br><p id="notice">Stopping will syntax highlight.</p>
<h1>Stats</h1>
<pre id="res">Raw: <span id="success">0</span> out of <span id="trials">0</span>
Rate: <span id="pct">0</span>%</pre>
<h1>Successes</h1>
<pre id="valid"></pre>
body {
padding-left: 1em;
}
h1 {
margin: 0;
font-family: 'Open Sans';
}
pre, pre.prettyprint.lang-js#valid {
margin: 0;
font-family: 'Roboto Mono', monospace;
padding: 0;
border: none;
}
#res {
font-size: 3em;
}
button {
font-size: 2em;
}
#notice {
margin: 0;
padding: 0.2em;
font-size: 1.2em;
margin-top: 0.1em;
border: 1px solid black;
display: inline-block;
background: #ffe900;
}
External resources loaded into this fiddle: