Source code
Revision control
Copy as Markdown
Other Tools
var causeOSI = true;
function rec(x, self) {
if (x === 0 || x !== x) {
if (causeOSI) {
causeOSI = false;
self(NaN, self)
causeOSI = true;
}
return;
}
self(x - 1, self);
}
// Use enough iterations to type infer the script.
causeOSI = false;
for (var i = 0; i < 20; ++i)
rec(1, rec);
causeOSI = true;
rec(2, rec)