js/src/jit-test/tests/jaeger/bug577705.js

changeset 0
6474c204b198
     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 +

mercurial