Commit a20a9166 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

jscript: Added Math.random implementation.

parent 890a48ad
......@@ -3,7 +3,7 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = jscript.dll
IMPORTS = oleaut32 kernel32
IMPORTS = oleaut32 advapi32 kernel32
RC_SRCS = rsrc.rc
......
......@@ -20,8 +20,10 @@
#include "wine/port.h"
#include <math.h>
#include <limits.h>
#include "jscript.h"
#include "ntsecapi.h"
#include "wine/debug.h"
......@@ -352,11 +354,21 @@ static HRESULT Math_pow(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *d
return S_OK;
}
/* ECMA-262 3rd Edition 15.8.2.14 */
static HRESULT Math_random(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp)
{
FIXME("\n");
return E_NOTIMPL;
UINT r;
TRACE("\n");
if(!RtlGenRandom(&r, sizeof(r)))
return E_UNEXPECTED;
if(retv)
num_set_val(retv, (DOUBLE)r/(DOUBLE)UINT_MAX);
return S_OK;
}
/* ECMA-262 3rd Edition 15.8.2.15 */
......
......@@ -585,6 +585,14 @@ ok(tmp === 2, "Math.pow(2, 2) = " + tmp);
tmp = Math.pow(2, 2, 3);
ok(tmp === 4, "Math.pow(2, 2, 3) = " + tmp);
tmp = Math.random();
ok(typeof(tmp) == "number", "typeof(tmp) = " + typeof(tmp));
ok(0 <= tmp && tmp <= 1, "Math.random() = " + tmp);
tmp = Math.random(100);
ok(typeof(tmp) == "number", "typeof(tmp) = " + typeof(tmp));
ok(0 <= tmp && tmp <= 1, "Math.random(100) = " + tmp);
var func = function (a) {
var a = 1;
if(a) return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment