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