Jacek Caban (@jacek) commented about dlls/jscript/object.c:
hres = jsdisp_define_property(obj, name, &prop_desc); jsstr_release(name_str); release_property_descriptor(&prop_desc);
- if(SUCCEEDED(hres) && r)
*r = jsval_obj(jsdisp_addref(obj));
- if(SUCCEEDED(hres) && r) {
*r = jsval_disp(get_object(argv[0]));
IDispatch_AddRef(get_object(argv[0]));
- }
Why do we need it? We ensure that obj is a jsdisp earlier in the function.