Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 // |jit-test| slow;
3 // Binary: cache/js-dbg-32-be41973873db-linux
4 // Flags: --ion-eager
5 //
6 function MersenneTwister19937() {
7 N = 624;
8 var M = 397;
9 MATRIX_A = 567483615;
10 UPPER_MASK = 2147483648;
11 var LOWER_MASK = 767;
12 mt = Array();
13 function unsigned32(n1) {
14 return n1 < 0 ? (n1 ^ UPPER_MASK) + UPPER_MASK : n1;
15 }
16 function addition32(n1, n2) {
17 return unsigned32(n1 + n2 & 4294967295);
18 }
19 function multiplication32(n1, n2) {
20 sum = 0;
21 for (i = 0; i < 32; ++i) {
22 if (n1 >> i & 1) {
23 sum = addition32(sum, unsigned32(n2 << i));
24 }
25 }
26 return sum;
27 }
28 this.init_genrand = function() {
29 for (mti = 1; mti < N; mti++) {
30 mt[mti] = addition32(multiplication32(181433253, unsigned32(mt[mti - 1] ^ mt[mti - 1] >>> 30)), mti);
31 }
32 };
33 this.genrand_int32 = function() {
34 mag01 = Array(0, MATRIX_A);
35 if (mti > N) {
36 for (kk = 0; kk < N - M; kk++) {
37 y = unsigned32(mt[kk] & UPPER_MASK | mt[kk + 1] & LOWER_MASK);
38 }
39 for (; kk < N; kk++) {
40 mt[kk] = unsigned32(mt[kk + (M - N)] ^ y >>> 1 ^ mag01[y & 1]);
41 }
42 mti = 0;
43 }
44 y = mt[mti++];
45 return y;
46 };
47 }
48 (function() {
49 var fuzzMT = new MersenneTwister19937;
50 fuzzSeed = 4;
51 fuzzMT.init_genrand(fuzzSeed);
52 rnd = function(n) {
53 var x = fuzzMT.genrand_int32() * 2.2e-10;
54 return Math.floor(x * n);
55 };
56 }());
58 function rndElt(a) {
59 return a[rnd(a.length)];
60 }
61 varBinderFor = ["", "t", ""];
62 function forLoopHead(d, b, v, reps) {
63 var sInit = rndElt(varBinderFor) + v + "=0";
64 var sCond = v + "<" + reps;
65 sNext = "++" + v;
66 return "for(" + sInit + ";" + sCond + ";" + sNext + ")";
67 }
68 function makeBranchUnstableLoop(d, b) {
69 var reps = rnd(rnd(9));
70 v = uniqueVarName();
71 var mod = rnd();
72 target = rnd(mod);
73 return "" + forLoopHead(d, b, v, reps) + "{" + "if(" + v + "%" + mod + "==" + target + "){" + makeStatement(d - 2, b) + "}" + "{" + makeStatement(d - 2) + "}" + "}";
74 }
75 function weighted(wa) {
76 a = [];
77 for (var i = 0; i < wa.length; ++i) {
78 for (var j = 0; j < wa[i].w; ++j) {
79 a.push(wa[i].fun);
80 }
81 }
82 return a;
83 }
84 statementMakers = weighted([{
85 w: 6,
86 fun: makeBranchUnstableLoop
87 }, {}]);
88 (function() {
89 builderStatementMakers = weighted([{
90 w: 1,
91 fun: function() {
92 return "gc()";
93 }
94 }, {
95 w: 10,
96 fun: function() {}
97 }]);
98 makeBuilderStatement = function() {
99 return rndElt(builderStatementMakers)();
100 };
101 }());
102 function uniqueVarName() {
103 for (i = 0; i < 6; ++i) {
104 s = String.fromCharCode(97 + rnd(6));
105 }
106 return s;
107 }
108 function makeLittleStatement(d) {
109 rnd(0);
110 if (rnd) {
111 rndElt(littleStatementMakers)();
112 }
113 }
114 littleStatementMakers = [function() {}];
115 function testOne() {
116 var code = makeOv(10);
117 tryItOut(code);
118 }
119 function makeStatement(d, b) {
120 if (rnd(0)) {}
121 if (rnd(2)) {
122 return makeBuilderStatement();
123 }
124 d < 6 && rnd() == 0;
125 if (d < rnd(8)) {
126 return makeLittleStatement();
127 }
128 return rndElt(statementMakers)(d, b);
129 }
130 function makeOv(d, B) {
131 if (rnd() == 0) {}
132 return "" + makeStatement(d, [""]);
133 }
134 function tryItOut(code) {
135 try {
136 f = Function(code);
137 f();
138 } catch (r) {}
139 }
140 for (let aa = 0; aa < 9999; aa++) {
141 testOne();
142 }