michael@0: // vim: set ts=8 sts=4 et sw=4 tw=99: michael@0: function randomFloat () { michael@0: // note that in fuzz-testing, this can used as the size of a buffer to allocate. michael@0: // so it shouldn't return astronomic values. The maximum value 10000000 is already quite big. michael@0: var fac = 1.0; michael@0: var r = Math.random(); michael@0: if (r < 0.25) michael@0: fac = 10; michael@0: else if (r < 0.7) michael@0: fac = 10000000; michael@0: else if (r < 0.8) michael@0: fac = NaN; michael@0: return -0.5*fac + Math.random() * fac; michael@0: } michael@0: michael@0: for (var i = 0; i < 100000; i++) michael@0: randomFloat(); michael@0: