Gabriel Ivăncescu : mshtml/tests: Fix Number toLocaleString test on updated Win 8.1.

Alexandre Julliard julliard at winehq.org
Thu May 12 15:55:51 CDT 2022


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

Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date:   Thu May 12 12:56:03 2022 +0200

mshtml/tests: Fix Number toLocaleString test on updated Win 8.1.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52969
Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/tests/es5.js      | 21 ++++++++++++++-------
 dlls/mshtml/tests/winetest.js |  5 +++++
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js
index 8238e5d26f9..0f9df4cb8ea 100644
--- a/dlls/mshtml/tests/es5.js
+++ b/dlls/mshtml/tests/es5.js
@@ -150,10 +150,14 @@ sync_test("Number toLocaleString", function() {
     ];
 
     if(external.isEnglish) {
-        for(var i = 0; i < tests.length; i++) {
-            r = Number.prototype.toLocaleString.call(tests[i][0]);
-            ok(r === tests[i][1], "[" + i + "] got " + r);
-        }
+        /* Some recent Win8.1 updates have old jscript behavior */
+        if(Number.prototype.toLocaleString.call(0.0) === "0.00")
+            win_skip("skipping tests due to old behavior");
+        else
+            for(var i = 0; i < tests.length; i++) {
+                r = Number.prototype.toLocaleString.call(tests[i][0]);
+                ok(r === tests[i][1], "[" + i + "] got " + r);
+            }
     }
 
     try {
@@ -161,21 +165,24 @@ sync_test("Number toLocaleString", function() {
         ok(false, "expected exception calling it on string");
     }catch(ex) {
         var n = ex.number >>> 0;
-        ok(n === JS_E_WRONG_THIS, "called on string threw " + n);
+        ok(n === JS_E_WRONG_THIS || broken(n === JS_E_NUMBER_EXPECTED) /* newer Win8.1 */,
+           "called on string threw " + n);
     }
     try {
         Number.prototype.toLocaleString.call(undefined);
         ok(false, "expected exception calling it on undefined");
     }catch(ex) {
         var n = ex.number >>> 0;
-        ok(n === JS_E_WRONG_THIS, "called on undefined threw " + n);
+        ok(n === JS_E_WRONG_THIS || broken(n === JS_E_NUMBER_EXPECTED) /* newer Win8.1 */,
+           "called on undefined threw " + n);
     }
     try {
         Number.prototype.toLocaleString.call(external.nullDisp);
         ok(false, "expected exception calling it on nullDisp");
     }catch(ex) {
         var n = ex.number >>> 0;
-        ok(n === JS_E_WRONG_THIS, "called on nullDisp threw " + n);
+        ok(n === JS_E_WRONG_THIS || broken(n === JS_E_NUMBER_EXPECTED) /* newer Win8.1 */,
+           "called on nullDisp threw " + n);
     }
 });
 
diff --git a/dlls/mshtml/tests/winetest.js b/dlls/mshtml/tests/winetest.js
index ca7f2aab4c2..bdebb2fa173 100644
--- a/dlls/mshtml/tests/winetest.js
+++ b/dlls/mshtml/tests/winetest.js
@@ -54,6 +54,11 @@ function win_skip(m) {
     external.win_skip(m);
 }
 
+function broken(e)
+{
+    return external.broken(e);
+}
+
 function reportSuccess() {
     external.reportSuccess();
 }




More information about the wine-cvs mailing list