Module: wine Branch: master Commit: 7dab372271f8423e4ff2f6612179eaf5d4572610 URL: https://source.winehq.org/git/wine.git/?a=commit;h=7dab372271f8423e4ff2f6612...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Aug 21 12:32:01 2019 +0200
jscript: Fix Object.defineProperty return value.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/object.c | 2 ++ dlls/mshtml/tests/es5.js | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c index 123541e..58db45b 100644 --- a/dlls/jscript/object.c +++ b/dlls/jscript/object.c @@ -500,6 +500,8 @@ static HRESULT Object_defineProperty(script_ctx_t *ctx, vdisp_t *jsthis, WORD fl
hres = jsdisp_define_property(obj, name, &prop_desc); release_property_descriptor(&prop_desc); + if(SUCCEEDED(hres) && r) + *r = jsval_obj(jsdisp_addref(obj)); return hres; }
diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js index 11b68e5..7ee8cc1 100644 --- a/dlls/mshtml/tests/es5.js +++ b/dlls/mshtml/tests/es5.js @@ -311,8 +311,9 @@ function test_defineProperty() { ok(false, "expected exception"); }
- var obj = new Object(); - Object.defineProperty(obj, "test", {}); + var obj = new Object(), defined; + defined = Object.defineProperty(obj, "test", {}); + ok(defined === obj, "defined != obj"); ok("test" in obj, "test is not in obj"); test_own_data_prop_desc(obj, "test", false, false, false); ok(obj.test === undefined, "obj.test = " + obj.test);