Jacek Caban : jscript: Use jsdisp_define_data_property for arguments object properties.

Alexandre Julliard julliard at winehq.org
Mon May 14 17:20:09 CDT 2018


Module: wine
Branch: master
Commit: 20007e586ae095cc7749fec33760a46ba4619823
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=20007e586ae095cc7749fec33760a46ba4619823

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon May 14 13:33:38 2018 +0200

jscript: Use jsdisp_define_data_property for arguments object properties.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/jscript/function.c  | 6 ++++--
 dlls/mshtml/tests/es5.js | 5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/dlls/jscript/function.c b/dlls/jscript/function.c
index 040bcc5..5fff9da 100644
--- a/dlls/jscript/function.c
+++ b/dlls/jscript/function.c
@@ -180,9 +180,11 @@ HRESULT setup_arguments_object(script_ctx_t *ctx, call_frame_t *frame)
     args->argc = frame->argc;
     args->frame = frame;
 
-    hres = jsdisp_propput_dontenum(&args->jsdisp, lengthW, jsval_number(args->argc));
+    hres = jsdisp_define_data_property(&args->jsdisp, lengthW, PROPF_WRITABLE | PROPF_CONFIGURABLE,
+                                       jsval_number(args->argc));
     if(SUCCEEDED(hres))
-        hres = jsdisp_propput_dontenum(&args->jsdisp, caleeW, jsval_disp(to_disp(&args->function->dispex)));
+        hres = jsdisp_define_data_property(&args->jsdisp, caleeW, PROPF_WRITABLE | PROPF_CONFIGURABLE,
+                                           jsval_obj(&args->function->dispex));
     if(SUCCEEDED(hres))
         hres = jsdisp_propput(frame->base_scope->jsobj, argumentsW, PROPF_WRITABLE, jsval_obj(&args->jsdisp));
     if(FAILED(hres)) {
diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js
index c2e3e9f..30b464c 100644
--- a/dlls/mshtml/tests/es5.js
+++ b/dlls/mshtml/tests/es5.js
@@ -190,6 +190,11 @@ function test_getOwnPropertyDescriptor() {
     test_own_data_prop_desc(obj, "multiline", false, false, false);
     test_own_data_prop_desc(obj, "source", false, false, false);
 
+    (function() {
+        test_own_data_prop_desc(arguments, "length", true, false, true);
+        test_own_data_prop_desc(arguments, "callee", true, false, true);
+    })();
+
     next_test();
 }
 




More information about the wine-cvs mailing list