[PATCH 7/9] jscript: Handle non-JS objects in Object.getPrototypeOf.

Gabriel Ivăncescu gabrielopcode at gmail.com
Tue Mar 22 10:41:25 CDT 2022


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

diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c
index cf823a3..7c952eb 100644
--- a/dlls/jscript/object.c
+++ b/dlls/jscript/object.c
@@ -851,13 +851,8 @@ static HRESULT Object_getPrototypeOf(script_ctx_t *ctx, jsval_t vthis, WORD flag
     TRACE("(%s)\n", debugstr_jsval(argv[0]));
 
     obj = to_jsdisp(get_object(argv[0]));
-    if(!obj) {
-        FIXME("Non-JS object\n");
-        return E_NOTIMPL;
-    }
-
     if(r)
-        *r = obj->prototype
+        *r = obj && obj->prototype
             ? jsval_obj(jsdisp_addref(obj->prototype))
             : jsval_null();
     return S_OK;
diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js
index c03a2c2..0339d9b 100644
--- a/dlls/mshtml/tests/es5.js
+++ b/dlls/mshtml/tests/es5.js
@@ -803,6 +803,8 @@ sync_test("getPrototypeOf", function() {
     obj = Object.create(null);
     ok(!("toString" in obj), "toString is in obj");
     ok(Object.getPrototypeOf(obj) === null, "Object.getPrototypeOf(obj) = " + Object.getPrototypeOf(obj));
+
+    ok(Object.getPrototypeOf(external) === null, "Object.getPrototypeOf(non-JS obj) = " + Object.getPrototypeOf(external));
 });
 
 sync_test("toString", function() {
-- 
2.34.1




More information about the wine-devel mailing list