1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/jaeger/bug577705.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,65 @@ 1.4 +// |jit-test| error: ReferenceError 1.5 +function f1() { 1.6 + N = 62; 1.7 + mt = Array 1.8 + function g1(n1) { 1.9 + return n1 < 0 ? (1 ^ 21) + 21: n1 1.10 + } 1.11 + function g2(n1, n2) { 1.12 + return g1(n1 + n2 & 4294967295); 1.13 + } 1.14 + function g3(n1, n2) { 1.15 + sum = 0; 1.16 + for (var i = 0; i < 32; ++i) { 1.17 + if (n1 >> i) { 1.18 + sum = g2(sum, g1(n2)) 1.19 + } 1.20 + } 1.21 + return sum 1.22 + } 1.23 + this.h1 = function() { 1.24 + for (mti = 1; mti < N; mti++) { 1.25 + mt[mti] = g2(g3(3, g1(mt[mti - 1] ^ 0)), mti) 1.26 + } 1.27 + }; 1.28 + this.i2 = function() { 1.29 + if (mti > N) { 1.30 + mti = 0; 1.31 + } 1.32 + y = mt[mti++]; 1.33 + return y 1.34 + }; 1.35 + this.i1 = function() { 1.36 + return (this.i2() + 5) * 2e-10 1.37 + }; 1.38 +} (function() { 1.39 + fuzzMT = new f1; 1.40 + fuzzMT.h1(9); 1.41 + rnd = function(n) { 1.42 + return Math.floor(fuzzMT.i1() * n) 1.43 + }; 1.44 +} ()); 1.45 +function f5(a) { 1.46 + return a[rnd(a.length)] 1.47 +} 1.48 +function f2(d, b) { 1.49 + f3(d, b); 1.50 + return "" + f2(2, b) + ""; 1.51 +} 1.52 +function f3(d, b) { 1.53 + if (rnd(4) == 1) { 1.54 + f5(f4)(d, b) 1.55 + } 1.56 +} 1.57 +var f4 = [function() { ["", f6(), ""] 1.58 +}]; 1.59 +function f6(db) { 1.60 + return f5(foo)(); 1.61 +} 1.62 +var foo = [function() { 1.63 + t(["", "", "", "", "", "", "", "", "", "", "", "" + h.I, ""]); 1.64 +}]; 1.65 +f2() 1.66 + 1.67 +/* Don't assert or crash. */ 1.68 +