Jacek Caban : jscript: Use jsdisp_define_data_property in Object.getOwnPropertyDescriptor.
Alexandre Julliard
julliard at winehq.org
Mon Jun 11 13:10:51 CDT 2018
Module: wine
Branch: master
Commit: b0cce16c7a390c3ce5e3f800a8c50f34425e9072
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b0cce16c7a390c3ce5e3f800a8c50f34425e9072
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Jun 11 15:54:26 2018 +0200
jscript: Use jsdisp_define_data_property in Object.getOwnPropertyDescriptor.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/jscript/jscript.h | 6 ++++--
dlls/jscript/object.c | 20 ++++++++++----------
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h
index 5a7be8e..1cb6d15 100644
--- a/dlls/jscript/jscript.h
+++ b/dlls/jscript/jscript.h
@@ -90,10 +90,12 @@ extern HINSTANCE jscript_hinstance DECLSPEC_HIDDEN;
#define PROPF_ARGMASK 0x00ff
#define PROPF_METHOD 0x0100
-#define PROPF_ENUMERABLE 0x0200
-#define PROPF_CONSTR 0x0400
+#define PROPF_CONSTR 0x0200
+
+#define PROPF_ENUMERABLE 0x0400
#define PROPF_WRITABLE 0x0800
#define PROPF_CONFIGURABLE 0x1000
+#define PROPF_ALL (PROPF_ENUMERABLE | PROPF_WRITABLE | PROPF_CONFIGURABLE)
#define PROPF_VERSION_MASK 0x01ff0000
#define PROPF_VERSION_SHIFT 16
diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c
index d18f1c9..9428931 100644
--- a/dlls/jscript/object.c
+++ b/dlls/jscript/object.c
@@ -493,23 +493,23 @@ static HRESULT Object_getOwnPropertyDescriptor(script_ctx_t *ctx, vdisp_t *jsthi
return hres;
if(prop_desc.explicit_getter || prop_desc.explicit_setter) {
- hres = jsdisp_propput_name(desc_obj, getW, prop_desc.getter
- ? jsval_obj(prop_desc.getter) : jsval_undefined());
+ hres = jsdisp_define_data_property(desc_obj, getW, PROPF_ALL,
+ prop_desc.getter ? jsval_obj(prop_desc.getter) : jsval_undefined());
if(SUCCEEDED(hres))
- hres = jsdisp_propput_name(desc_obj, setW, prop_desc.setter
- ? jsval_obj(prop_desc.setter) : jsval_undefined());
+ hres = jsdisp_define_data_property(desc_obj, setW, PROPF_ALL,
+ prop_desc.setter ? jsval_obj(prop_desc.setter) : jsval_undefined());
}else {
hres = jsdisp_propput_name(desc_obj, valueW, prop_desc.value);
if(SUCCEEDED(hres))
- hres = jsdisp_propput_name(desc_obj, writableW,
- jsval_bool(!!(prop_desc.flags & PROPF_WRITABLE)));
+ hres = jsdisp_define_data_property(desc_obj, writableW, PROPF_ALL,
+ jsval_bool(!!(prop_desc.flags & PROPF_WRITABLE)));
}
if(SUCCEEDED(hres))
- hres = jsdisp_propput_name(desc_obj, enumerableW,
- jsval_bool(!!(prop_desc.flags & PROPF_ENUMERABLE)));
+ hres = jsdisp_define_data_property(desc_obj, enumerableW, PROPF_ALL,
+ jsval_bool(!!(prop_desc.flags & PROPF_ENUMERABLE)));
if(SUCCEEDED(hres))
- hres = jsdisp_propput_name(desc_obj, configurableW,
- jsval_bool(!!(prop_desc.flags & PROPF_CONFIGURABLE)));
+ hres = jsdisp_define_data_property(desc_obj, configurableW, PROPF_ALL,
+ jsval_bool(!!(prop_desc.flags & PROPF_CONFIGURABLE)));
release_property_descriptor(&prop_desc);
if(SUCCEEDED(hres) && r)
More information about the wine-cvs
mailing list