Gabriel Ivăncescu : jscript: Handle non-JS objects in Object.getPrototypeOf.
Alexandre Julliard
julliard at winehq.org
Fri Mar 25 15:28:09 CDT 2022
Module: wine
Branch: master
Commit: f85831838436a8f0c754a71bfb64b104b04c9099
URL: https://source.winehq.org/git/wine.git/?a=commit;h=f85831838436a8f0c754a71bfb64b104b04c9099
Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date: Fri Mar 25 16:45:42 2022 +0200
jscript: Handle non-JS objects in Object.getPrototypeOf.
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/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 d1522b1cd36..a675e45c4a0 100644
--- a/dlls/jscript/object.c
+++ b/dlls/jscript/object.c
@@ -850,13 +850,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 c03a2c2ec88..0339d9b08fa 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() {
More information about the wine-cvs
mailing list