Piotr Caban : jscript: Throw error in to_primitive function.

Alexandre Julliard julliard at winehq.org
Wed Jul 22 09:35:04 CDT 2009


Module: wine
Branch: master
Commit: 412e0af26f05aaad53731fecbd9045e696bb6452
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=412e0af26f05aaad53731fecbd9045e696bb6452

Author: Piotr Caban <piotr.caban at 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




More information about the wine-cvs mailing list