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