Jacek Caban jacek@codeweavers.com writes:
dlls/jscript/dispex.c | 36 ++++++++++++++-- dlls/jscript/function.c | 98 ++++++++++++++++++++++++++++++++----------- dlls/jscript/jscript.h | 3 + dlls/jscript/tests/lang.js | 8 ++++ 4 files changed, 116 insertions(+), 29 deletions(-)
It doesn't work here:
../../../tools/runtest -q -P wine -M ieframe.dll -T ../../.. -p ieframe_test.exe.so webbrowser.c && touch webbrowser.ok wine: Unhandled page fault on read access to 0x06c238cc at address 0x564c09e3 (thread 003a), starting debugger... Unhandled exception: page fault on read access to 0x06c238cc in 32-bit code (0x564c09e3). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:564c09e3 ESP:0032d1d0 EBP:0032d218 EFLAGS:00210246( R- -- I Z- -P- ) EAX:0214bdec EBX:564f89dc ECX:02a7d2f0 EDX:02a7d2f0 ESI:02c8ef58 EDI:012b5eb8 Stack dump: 0x0032d1d0: 00000008 00000000 00000000 00000004 0x0032d1e0: 00000000 02c8ef58 4d430003 020cf1b0 0x0032d1f0: 00000000 00000001 00000030 00000060 0x0032d200: 00000000 00000003 0000006c 564f89dc 0x0032d210: 020cf210 02c8ef58 0032d278 564b3397 0x0032d220: 02c8ef58 012b5eb8 02a7d2f0 02a7d2f0 Backtrace: =>0 0x564c09e3 Arguments_idx_get+0x73(jsdisp=0x2c8ef58, idx=0x12b5eb8, res=0x2a7d2f0) [/home/julliard/wine/wine/dlls/jscript/function.c:108] in jscript (0x0032d218) 1 0x564b3397 prop_get+0xd6(This=0x2c8ef58, prop=0x20cf210, dp=0x32d2a8, r=0x2a7d2f0, caller=(nil)) [/home/julliard/wine/wine/dlls/jscript/dispex.c:450] in jscript (0x0032d278) 2 0x564b72aa jsdisp_get_idx+0xc9(obj=0x2c8ef58, idx=0, r=0x2a7d2f0) [/home/julliard/wine/wine/dlls/jscript/dispex.c:1399] in jscript (0x0032d2e8) 3 0x564c1c48 Function_apply+0x2e7(ctx=0x1fe13f0, jsthis=0x32d388, flags=0x1, argc=0x2, argv=0x2ab0f00, r=0x32d568) [/home/julliard/wine/wine/dlls/jscript/function.c:411] in jscript (0x0032d348) 4 0x564b5f1c invoke_prop_func+0x1ab(This=0x1fd66f8, jsthis=<is not available>, prop=0x1fdbeb8, flags=0x1, argc=0x2, argv=0x2ab0f00, r=0x32d568, caller=(nil)) [/home/julliard/wine/wine/dlls/jscript/dispex.c:384] in jscript (0x0032d3a8) 5 0x564b5f78 invoke_prop_func+0x207(This=<is not available>, jsthis=<is not available>, prop=0x2d7cce0, flags=0x1, argc=0x2, argv=0x2ab0f00, r=0x32d568, caller=(nil)) [/home/julliard/wine/wine/dlls/jscript/dispex.c:393] in jscript (0x0032d408) 6 0x564b63a7 disp_call+0xe6(ctx=0x1fe13f0, disp=0x2a7d2a8, id=0x4, flags=0x1, argc=0x2, argv=0x2ab0f00, ret=0x32d568) [/home/julliard/wine/wine/dlls/jscript/dispex.c:1103] in jscript (0x0032d518) 7 0x564b8a48 interp_call_member+0x117(ctx=<is not available>) [/home/julliard/wine/wine/dlls/jscript/engine.c:1032] in jscript (0x0032d588) 8 0x564beee9 exec_source+0x1d8(ctx=<is not available>, code=<is not available>, func=<is not available>, from_eval=<is not available>, ret=<is not available>) [/home/julliard/wine/wine/dlls/jscript/engine.c:2485] in jscript (0x0032d628) 9 0x564c12d0 invoke_source+0x3cf() in jscript (0x0032d6c8) 10 0x564c1a0c Function_apply+0xab(ctx=0x1fe13f0, jsthis=0x32d768, flags=0x1, argc=0x2, argv=0x2ab1c78, r=0x32d948) [/home/julliard/wine/wine/dlls/jscript/function.c:470] in jscript (0x0032d728) 11 0x564b5f1c invoke_prop_func+0x1ab(This=0x1fd66f8, jsthis=<is not available>, prop=0x1fdbeb8, flags=0x1, argc=0x2, argv=0x2ab1c78, r=0x32d948, caller=(nil)) [/home/julliard/wine/wine/dlls/jscript/dispex.c:384] in jscript (0x0032d788) 12 0x564b5f78 invoke_prop_func+0x207(This=<is not available>, jsthis=<is not available>, prop=0x2a96888, flags=0x1, argc=0x2, argv=0x2ab1c78, r=0x32d948, caller=(nil)) [/home/julliard/wine/wine/dlls/jscript/dispex.c:393] in jscript (0x0032d7e8) 13 0x564b63a7 disp_call+0xe6(ctx=0x1fe13f0, disp=0x2a96800, id=0x2, flags=0x1, argc=0x2, argv=0x2ab1c78, ret=0x32d948) [/home/julliard/wine/wine/dlls/jscript/dispex.c:1103] in jscript (0x0032d8f8) 14 0x564b8a48 interp_call_member+0x117(ctx=<is not available>) [/home/julliard/wine/wine/dlls/jscript/engine.c:1032] in jscript (0x0032d968) 15 0x564beee9 exec_source+0x1d8(ctx=<is not available>, code=<is not available>, func=<is not available>, from_eval=<is not available>, ret=<is not available>) [/home/julliard/wine/wine/dlls/jscript/engine.c:2485] in jscript (0x0032da08) 16 0x564c12d0 invoke_source+0x3cf() in jscript (0x0032daa8) 17 0x564c1f3a Function_invoke+0xb9(func_this=0x2aa4268, jsthis=(nil), flags=0x1, argc=0x1, argv=0x32dbd0, r=0x32dbc8) [/home/julliard/wine/wine/dlls/jscript/function.c:346] in jscript (0x0032db08) 18 0x564b60f5 invoke_prop_func+0x384(This=0x2aa4268, jsthis=<is not available>, prop=0x2aa42b0, flags=0x1, argc=0x1, argv=0x32dbd0, r=0x32dbc8, caller=(nil)) [/home/julliard/wine/wine/dlls/jscript/dispex.c:388] in jscript (0x0032db68) 19 0x564b6b69 DispatchEx_InvokeEx+0x398(iface=0x2aa4268, id=0, lcid=0x409, wFlags=0x1, pdp=0x32dd30, pvarRes=0x32dd10, pei=0x32dc60, pspCaller=(nil)) [/home/julliard/wine/wine/dlls/jscript/dispex.c:693] in jscript (0x0032dc18) 20 0x55bb08d6 call_disp_func+0xf5(disp=<is not available>, dp=0x32dd30, retv=0x32dd10) [/home/julliard/wine/wine/dlls/mshtml/../../include/dispex.h:299] in mshtml (0x0032dc98) 21 0x55bb0cd3 call_event_handlers.isra+0x1d2() in mshtml (0x0032dd68) 22 0x55bb165b fire_event_obj+0x35a(doc=0x1fdb738, eid=EVENTID_LOAD, event_obj=0x1f51d28, target=0x2bc32fc, script_this=0x1fd2700) [/home/julliard/wine/wine/dlls/mshtml/htmlevent.c:1073] in mshtml (0x0032ddf8) 23 0x55bb1c8d fire_event+0x8c(doc=0x1fdb738, eid=EVENTID_LOAD, set_event=0x1, target=0x2bc32fc, nsevent=0x2c6ef48, script_this=0x1fd2700) [/home/julliard/wine/wine/dlls/mshtml/htmlevent.c:1188] in mshtml (0x0032de28) 24 0x55bfe7cb handle_load+0xda(iface=0x1fdb958, event=0x2c6ef48) [/home/julliard/wine/wine/dlls/mshtml/nsevents.c:274] in mshtml (0x0032de98) 25 0x6a6184f8 in xul (+0x9d84f7) (0x01fdb978) 26 0x00000002 (0x6af902f8) 27 0x6a61a05c in xul (+0x9da05b) (0x6a61a078) 0x564c09e3 Arguments_idx_get+0x73 [/home/julliard/wine/wine/dlls/jscript/function.c:108] in jscript: movl 0x0(%eax,%edi,4),%eax 108 return jsdisp_propget_name(arguments->var_obj, arguments->function->func_code->params[idx], res);