Jacek Caban : jscript: Added null and undefined values support to to_object .

Alexandre Julliard julliard at winehq.org
Fri Dec 21 11:05:21 CST 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Dec 21 16:21:03 2012 +0100

jscript: Added null and undefined values support to to_object.

---

 dlls/jscript/jsutils.c    |    7 ++++---
 dlls/jscript/tests/api.js |    2 ++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c
index 91e0397..5527724 100644
--- a/dlls/jscript/jsutils.c
+++ b/dlls/jscript/jsutils.c
@@ -820,6 +820,10 @@ HRESULT to_object(script_ctx_t *ctx, jsval_t val, IDispatch **disp)
 
         *disp = to_disp(dispex);
         break;
+    case JSV_UNDEFINED:
+    case JSV_NULL:
+        WARN("object expected\n");
+        return throw_type_error(ctx, JS_E_OBJECT_EXPECTED, NULL);
     case JSV_VARIANT:
         switch(V_VT(get_variant(val))) {
         case VT_ARRAY|VT_VARIANT:
@@ -835,9 +839,6 @@ HRESULT to_object(script_ctx_t *ctx, jsval_t val, IDispatch **disp)
             return E_NOTIMPL;
         }
         break;
-    default:
-        FIXME("unsupported %s\n", debugstr_jsval(val));
-        return E_NOTIMPL;
     }
 
     return S_OK;
diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js
index 5d45777..eb16176 100644
--- a/dlls/jscript/tests/api.js
+++ b/dlls/jscript/tests/api.js
@@ -2300,6 +2300,8 @@ testException(function() {+nullDisp.prop;}, "E_OBJECT_REQUIRED");
 testException(function() {+nullDisp["prop"];}, "E_OBJECT_REQUIRED");
 testException(function() {delete (new Object());}, "E_INVALID_DELETE");
 testException(function() {delete false;}, "E_INVALID_DELETE");
+testException(function() {undefined.toString();}, "E_OBJECT_EXPECTED");
+testException(function() {null.toString();}, "E_OBJECT_EXPECTED");
 
 obj = new Object();
 obj.prop = 1;




More information about the wine-cvs mailing list