Jacek Caban : jscript: Added object to number conversion implementation.

Alexandre Julliard julliard at winehq.org
Thu Sep 25 07:13:24 CDT 2008


Module: wine
Branch: master
Commit: 136f7933c65bd5ef87de12083cf4a631ed07e58b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=136f7933c65bd5ef87de12083cf4a631ed07e58b

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Sep 25 00:52:10 2008 +0200

jscript: Added object to number conversion implementation.

---

 dlls/jscript/jsutils.c     |   12 ++++++++++++
 dlls/jscript/tests/lang.js |    5 +++++
 2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c
index 422076e..32b877b 100644
--- a/dlls/jscript/jsutils.c
+++ b/dlls/jscript/jsutils.c
@@ -335,6 +335,18 @@ HRESULT to_number(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, VARIANT *ret)
         break;
     case VT_BSTR:
         return str_to_number(V_BSTR(v), ret);
+    case VT_DISPATCH: {
+        VARIANT prim;
+        HRESULT hres;
+
+        hres = to_primitive(ctx, v, ei, &prim);
+        if(FAILED(hres))
+            return hres;
+
+        hres = to_number(ctx, &prim, ei, ret);
+        VariantClear(&prim);
+        return hres;
+    }
     case VT_BOOL:
         V_VT(ret) = VT_I4;
         V_I4(ret) = V_BOOL(v) ? 1 : 0;
diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js
index 63c8bc0..9bbdafe 100644
--- a/dlls/jscript/tests/lang.js
+++ b/dlls/jscript/tests/lang.js
@@ -359,6 +359,11 @@ ok(+"-3" === -3, "+'-3' !== -3");
 ok(+"0xff" === 255, "+'0xff' !== 255");
 ok(+"3e3" === 3000, "+'3e3' !== 3000");
 
+tmp = new Number(1);
+ok(+tmp === 1, "ToNumber(new Number(1)) = " + (+tmp));
+tmp = new String("1");
+ok(+tmp === 1, "ToNumber(new String('1')) = " + (+tmp));
+
 ok("" + 0 === "0", "\"\" + 0 !== \"0\"");
 ok("" + 123 === "123", "\"\" + 123 !== \"123\"");
 ok("" + (-5) === "-5", "\"\" + (-5) !== \"-5\"");




More information about the wine-cvs mailing list