function f(i) {
    if (i == 1500)
        g();
    const x = 42;
    function g() {
        return x;
    }
    return g;
}

var caught = false;
var i;
try {
    for (i = 0; i < 2000; i++)
        assertEq(f(i)(), 42);
} catch(e) {
    assertEq(e instanceof ReferenceError, true);
    assertEq(i, 1500);
    caught = true;
}
assertEq(caught, true);