michael@0: // |jit-test| error: ReferenceError michael@0: function f1() { michael@0: N = 62; michael@0: mt = Array michael@0: function g1(n1) { michael@0: return n1 < 0 ? (1 ^ 21) + 21: n1 michael@0: } michael@0: function g2(n1, n2) { michael@0: return g1(n1 + n2 & 4294967295); michael@0: } michael@0: function g3(n1, n2) { michael@0: sum = 0; michael@0: for (var i = 0; i < 32; ++i) { michael@0: if (n1 >> i) { michael@0: sum = g2(sum, g1(n2)) michael@0: } michael@0: } michael@0: return sum michael@0: } michael@0: this.h1 = function() { michael@0: for (mti = 1; mti < N; mti++) { michael@0: mt[mti] = g2(g3(3, g1(mt[mti - 1] ^ 0)), mti) michael@0: } michael@0: }; michael@0: this.i2 = function() { michael@0: if (mti > N) { michael@0: mti = 0; michael@0: } michael@0: y = mt[mti++]; michael@0: return y michael@0: }; michael@0: this.i1 = function() { michael@0: return (this.i2() + 5) * 2e-10 michael@0: }; michael@0: } (function() { michael@0: fuzzMT = new f1; michael@0: fuzzMT.h1(9); michael@0: rnd = function(n) { michael@0: return Math.floor(fuzzMT.i1() * n) michael@0: }; michael@0: } ()); michael@0: function f5(a) { michael@0: return a[rnd(a.length)] michael@0: } michael@0: function f2(d, b) { michael@0: f3(d, b); michael@0: return "" + f2(2, b) + ""; michael@0: } michael@0: function f3(d, b) { michael@0: if (rnd(4) == 1) { michael@0: f5(f4)(d, b) michael@0: } michael@0: } michael@0: var f4 = [function() { ["", f6(), ""] michael@0: }]; michael@0: function f6(db) { michael@0: return f5(foo)(); michael@0: } michael@0: var foo = [function() { michael@0: t(["", "", "", "", "", "", "", "", "", "", "", "" + h.I, ""]); michael@0: }]; michael@0: f2() michael@0: michael@0: /* Don't assert or crash. */ michael@0: