compression-random-data.js (971B)
1 // Deterministic Math.random, from Octane. 2 var seed = 49734321; 3 function rand() { 4 // Robert Jenkins' 32 bit integer hash function. 5 seed = ((seed + 0x7ed55d16) + (seed << 12)) & 0xffffffff; 6 seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff; 7 seed = ((seed + 0x165667b1) + (seed << 5)) & 0xffffffff; 8 seed = ((seed + 0xd3a2646c) ^ (seed << 9)) & 0xffffffff; 9 seed = ((seed + 0xfd7046c5) + (seed << 3)) & 0xffffffff; 10 seed = ((seed ^ 0xb55a4f09) ^ (seed >>> 16)) & 0xffffffff; 11 return (seed & 0xfffffff) / 0x10000000; 12 } 13 var randomS = ""; 14 function test(len) { 15 const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; 16 var s = "var data = '"; 17 while (randomS.length < len) { 18 randomS += chars.charAt((rand() * chars.length)|0); 19 } 20 s += randomS; 21 s += "'; function f() {}; assertEq(f.toString(), 'function f() {}');"; 22 eval(s); 23 } 24 for (var i=32740; i<32780; i += 5) { 25 test(i); 26 }