jscript: Use jsdisp_define_data_property for arguments object properties.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2018-05-14 13:33:38 +02:00 committed by Alexandre Julliard
parent ae8c45c694
commit 20007e586a
2 changed files with 9 additions and 2 deletions

View File

@ -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)) {

View File

@ -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();
}