Jacek Caban : jscript: Allow 0x strings with explicit radix 16 in parseInt.

Alexandre Julliard julliard at winehq.org
Thu Aug 8 19:27:20 CDT 2019


Module: wine
Branch: master
Commit: 9dd50eae0669417e9f3c16cd4604f337e76db850
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=9dd50eae0669417e9f3c16cd4604f337e76db850

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Aug  8 15:26:06 2019 +0200

jscript: Allow 0x strings with explicit radix 16 in parseInt.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/jscript/global.c     | 2 ++
 dlls/jscript/tests/api.js | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/dlls/jscript/global.c b/dlls/jscript/global.c
index 100cf40..33e6415 100644
--- a/dlls/jscript/global.c
+++ b/dlls/jscript/global.c
@@ -336,6 +336,8 @@ static HRESULT JSGlobal_parseInt(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags,
         }else {
             radix = 10;
         }
+    }else if(radix == 16 && *ptr == '0' && (ptr[1] == 'x' || ptr[1] == 'X')) {
+        ptr += 2;
     }
 
     i = char_to_int(*ptr++);
diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js
index 40a1b2d..58a0cd3 100644
--- a/dlls/jscript/tests/api.js
+++ b/dlls/jscript/tests/api.js
@@ -156,6 +156,12 @@ i = parseInt("1", 37);
 ok(isNaN(i), "parseInt('1', 37) = " + i);
 i = parseInt("1", 36);
 ok(i === 1, "parseInt('1', 36) = " + i);
+i = parseInt("0x1f", 16);
+ok(i === 31, "parseInt('0xf', 16) = " + i);
+i = parseInt("0x", 16);
+ok(isNaN(i), "parseInt('0x', 16) = " + i);
+i = parseInt("0x1f", 17);
+ok(i === 0, "parseInt('0xf', 16) = " + i);
 
 tmp = encodeURI("abc");
 ok(tmp === "abc", "encodeURI('abc') = " + tmp);




More information about the wine-cvs mailing list