Module: wine Branch: master Commit: 412e0af26f05aaad53731fecbd9045e696bb6452 URL: http://source.winehq.org/git/wine.git/?a=commit;h=412e0af26f05aaad53731fecbd...
Author: Piotr Caban piotr.caban@gmail.com Date: Wed Jul 22 13:02:24 2009 +0200
jscript: Throw error in to_primitive function.
---
dlls/jscript/jscript_En.rc | 1 + dlls/jscript/jsutils.c | 8 ++++---- dlls/jscript/resource.h | 1 + 3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/jscript/jscript_En.rc b/dlls/jscript/jscript_En.rc index 5e53f6d..df8ee2f 100644 --- a/dlls/jscript/jscript_En.rc +++ b/dlls/jscript/jscript_En.rc @@ -22,6 +22,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE { + IDS_TO_PRIMITIVE "Error converting object to primitive type" IDS_INVALID_CALL_ARG "Invalid procedure call or argument" IDS_NO_PROPERTY "Object doesn't support this property or method" IDS_ARG_NOT_OPT "Argument not optional" diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c index d5ffa7f..10d4f51 100644 --- a/dlls/jscript/jsutils.c +++ b/dlls/jscript/jsutils.c @@ -211,7 +211,7 @@ HRESULT to_primitive(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, VARIANT *ret if(SUCCEEDED(hres)) { hres = jsdisp_call(jsdisp, id, ctx->lcid, DISPATCH_METHOD, &dp, ret, ei, NULL /*FIXME*/); if(FAILED(hres)) { - FIXME("throw TypeError\n"); + WARN("call error - forwarding exception\n"); jsdisp_release(jsdisp); return hres; } @@ -227,7 +227,7 @@ HRESULT to_primitive(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, VARIANT *ret if(SUCCEEDED(hres)) { hres = jsdisp_call(jsdisp, id, ctx->lcid, DISPATCH_METHOD, &dp, ret, ei, NULL /*FIXME*/); if(FAILED(hres)) { - FIXME("throw TypeError\n"); + WARN("call error - forwarding exception\n"); jsdisp_release(jsdisp); return hres; } @@ -241,8 +241,8 @@ HRESULT to_primitive(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, VARIANT *ret
jsdisp_release(jsdisp);
- FIXME("throw TypeError\n"); - return E_FAIL; + WARN("failed\n"); + return throw_type_error(ctx, ei, IDS_TO_PRIMITIVE, NULL); } default: FIXME("Unimplemented for vt %d\n", V_VT(v)); diff --git a/dlls/jscript/resource.h b/dlls/jscript/resource.h index 91d14d3..0f5af9b 100644 --- a/dlls/jscript/resource.h +++ b/dlls/jscript/resource.h @@ -18,6 +18,7 @@
#include <windef.h>
+#define IDS_TO_PRIMITIVE 0x0001 #define IDS_INVALID_CALL_ARG 0x0005 #define IDS_NO_PROPERTY 0x01B6 #define IDS_ARG_NOT_OPT 0x01c1