test262/implementation-contributed/javascriptcore/stress/closure-recursive-tail-call.js

22 lines
363 B
JavaScript

"use strict";
function makeClosure(x)
{
return (f) => {
if (x == 42) {
x = 0;
return f(f);
}
else
return x;
}
}
for (var i = 0; i < 1000; ++i) {
var g = makeClosure(42);
var h = makeClosure(41);
var value = g(h);
if (value != 41)
throw "Wrong result, got: " + value;
}