[PATCH 9/9] jscript: Return the correct string for Object.toString(undefined) in ES5+ modes.

Gabriel Ivăncescu gabrielopcode at gmail.com
Fri Dec 3 07:57:42 CST 2021


Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
---
 dlls/jscript/object.c    | 2 ++
 dlls/mshtml/tests/es5.js | 2 --
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c
index 53f174d..fcc2afb 100644
--- a/dlls/jscript/object.c
+++ b/dlls/jscript/object.c
@@ -57,6 +57,8 @@ static HRESULT Object_toString(script_ctx_t *ctx, jsval_t vthis, WORD flags, uns
     if(!jsdisp) {
         if(ctx->version >= SCRIPTLANGUAGEVERSION_ES5 && is_null(vthis))
             str = L"[object Null]";
+        else if(ctx->version >= SCRIPTLANGUAGEVERSION_ES5 && is_undefined(vthis))
+            str = L"[object Undefined]";
         else
             str = L"[object Object]";
     }else if(names[jsdisp->builtin_info->class]) {
diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js
index dd34c9d..bb7b32e 100644
--- a/dlls/mshtml/tests/es5.js
+++ b/dlls/mshtml/tests/es5.js
@@ -807,10 +807,8 @@ sync_test("toString", function() {
     tmp = Object.prototype.toString.call(null);
     ok(tmp === "[object Null]", "toString.call(null) = " + tmp);
     tmp = Object.prototype.toString.call(undefined);
-    todo_wine.
     ok(tmp === "[object Undefined]", "toString.call(undefined) = " + tmp);
     tmp = Object.prototype.toString.call();
-    todo_wine.
     ok(tmp === "[object Undefined]", "toString.call() = " + tmp);
 
     obj = Object.create(null);
-- 
2.31.1




More information about the wine-devel mailing list