From 53e831e2cb62fda468bf63c02ece2d31de5428d2 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sun, 21 Sep 2008 15:37:57 +0200 Subject: [PATCH] jscript: Added Number function implementation. --- dlls/jscript/number.c | 17 +++++++++++++++++ dlls/jscript/tests/api.js | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/dlls/jscript/number.c b/dlls/jscript/number.c index 5106debe2c9..4ace40b093e 100644 --- a/dlls/jscript/number.c +++ b/dlls/jscript/number.c @@ -167,6 +167,23 @@ static HRESULT NumberConstr_value(DispatchEx *dispex, LCID lcid, WORD flags, DIS TRACE("\n"); switch(flags) { + case INVOKE_FUNC: + if(!arg_cnt(dp)) { + if(retv) { + V_VT(retv) = VT_I4; + V_I4(retv) = 0; + } + return S_OK; + } + + hres = to_number(dispex->ctx, get_arg(dp, 0), ei, &num); + if(FAILED(hres)) + return hres; + + if(retv) + *retv = num; + break; + case DISPATCH_CONSTRUCT: { DispatchEx *obj; diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js index 2e426bec2d5..ecc6da4c7a3 100644 --- a/dlls/jscript/tests/api.js +++ b/dlls/jscript/tests/api.js @@ -89,4 +89,8 @@ ok(num.toString() === "2", "num(2).toString !== 2"); var num = new Number(); ok(num.toString() === "0", "num().toString !== 0"); +ok(Number() === 0, "Number() = " + Number()); +ok(Number(false) === 0, "Number(false) = " + Number(false)); +ok(Number("43") === 43, "Number('43') = " + Number("43")); + reportSuccess();