Module: wine Branch: master Commit: e458e706360f8556367202174953a716cab5e0e9 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e458e706360f8556367202174...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Aug 21 12:31:33 2019 +0200
jscript: Support properties argument in Object.create.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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,