Jacek Caban : jscript: Better handling of to_integer result in String. charAt.

Alexandre Julliard julliard at winehq.org
Thu May 3 14:23:49 CDT 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu May  3 10:40:13 2012 +0200

jscript: Better handling of to_integer result in String.charAt.

---

 dlls/jscript/string.c     |   10 +++-------
 dlls/jscript/tests/api.js |    2 ++
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/dlls/jscript/string.c b/dlls/jscript/string.c
index b629d57..bf9312d 100644
--- a/dlls/jscript/string.c
+++ b/dlls/jscript/string.c
@@ -303,19 +303,15 @@ static HRESULT String_charAt(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DIS
 
     if(arg_cnt(dp)) {
         VARIANT num;
+        double d;
 
         hres = to_integer(ctx, get_arg(dp, 0), ei, &num);
         if(FAILED(hres)) {
             SysFreeString(val_str);
             return hres;
         }
-
-        if(V_VT(&num) == VT_I4) {
-            pos = V_I4(&num);
-        }else {
-            WARN("pos = %lf\n", V_R8(&num));
-            pos = -1;
-        }
+        d = num_val(&num);
+        pos = is_int32(d) ? d : -1;
     }
 
     if(!retv) {
diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js
index c1ae808..f92cd48 100644
--- a/dlls/jscript/tests/api.js
+++ b/dlls/jscript/tests/api.js
@@ -308,6 +308,8 @@ tmp = "abc".charAt(0,2);
 ok(tmp === "a", "'abc',charAt(0.2) = " + tmp);
 tmp = "abc".charAt(NaN);
 ok(tmp === "a", "'abc',charAt(NaN) = " + tmp);
+tmp = "abc".charAt(bigInt);
+ok(tmp === "", "'abc',charAt(bigInt) = " + tmp);
 
 tmp = "abc".charCodeAt(0);
 ok(tmp === 0x61, "'abc'.charCodeAt(0) = " + tmp);




More information about the wine-cvs mailing list