try { new Error() } catch (e) {}

const N = 18;

var arr = [];
for (var i = 0; i < N; ++i)
    arr[i] = 'a';
arr[N] = '%';

function inner(i) {
    decodeURI(arr[i]);
}
function outer() {
    for (var i = 0; i <= N; ++i)
        inner(i);
}

var caught = false;
try {
    outer();
} catch (e) {
    caught = true;
}
assertEq(caught, true);