Jacek Caban : jscript: Support properties argument in Object.create.
Alexandre Julliard
julliard at winehq.org
Wed Aug 21 14:39:33 CDT 2019
Module: wine
Branch: master
Commit: e458e706360f8556367202174953a716cab5e0e9
URL: https://source.winehq.org/git/wine.git/?a=commit;h=e458e706360f8556367202174953a716cab5e0e9
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Aug 21 12:31:33 2019 +0200
jscript: Support properties argument in Object.create.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/jscript/object.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c
index 7794f1d..123541e 100644
--- a/dlls/jscript/object.c
+++ b/dlls/jscript/object.c
@@ -598,11 +598,6 @@ static HRESULT Object_create(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags,
TRACE("(%s)\n", debugstr_jsval(argv[0]));
- if(argc > 1) {
- FIXME("Unsupported properties argument %s\n", debugstr_jsval(argv[1]));
- return E_NOTIMPL;
- }
-
if(argc && is_object_instance(argv[0])) {
if(get_object(argv[0]))
proto = to_jsdisp(get_object(argv[0]));
@@ -615,13 +610,18 @@ static HRESULT Object_create(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags,
return E_INVALIDARG;
}
- if(r) {
- hres = create_dispex(ctx, NULL, proto, &obj);
- if(FAILED(hres))
- return hres;
+ hres = create_dispex(ctx, NULL, proto, &obj);
+ if(FAILED(hres))
+ return hres;
+
+ if(argc >= 2 && !is_undefined(argv[1]))
+ hres = jsdisp_define_properties(ctx, obj, argv[1]);
+
+ if(SUCCEEDED(hres) && r)
*r = jsval_obj(obj);
- }
- return S_OK;
+ else
+ jsdisp_release(obj);
+ return hres;
}
static HRESULT Object_getPrototypeOf(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags,
More information about the wine-cvs
mailing list