// This test case check the difference between fp->callee() and fp->fun() on
// lambdas.
(function (a, u) {
  var sum = function (array, callback) {
    for (var i = 0; i < array.length; i++)
      callback(array[i]);
  };
  (function () {
    (function r(t) {
       t !== u,
         sum(t, function (v)  r(v) );
    })(arguments);
  })(a);
}) (
    [
        [
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1]
        ], [
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1],
            [1], [1], [1], [1], [1], [1], [1], [1], [1], [1]
        ]
    ]
);
