Piotr Caban : jscript: Added Object_valueOf implementation.

Alexandre Julliard julliard at winehq.org
Tue Jul 7 08:08:23 CDT 2009


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

Author: Piotr Caban <piotr.caban at gmail.com>
Date:   Tue Jul  7 14:07:47 2009 +0200

 jscript: Added Object_valueOf implementation.

---

 dlls/jscript/object.c     |   12 ++++++++++--
 dlls/jscript/tests/api.js |    3 +++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c
index 9474bc4..f2e3956 100644
--- a/dlls/jscript/object.c
+++ b/dlls/jscript/object.c
@@ -49,8 +49,16 @@ static HRESULT Object_toLocaleString(DispatchEx *dispex, LCID lcid, WORD flags,
 static HRESULT Object_valueOf(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
         VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp)
 {
-    FIXME("\n");
-    return E_NOTIMPL;
+    TRACE("\n");
+
+    if(retv) {
+        IDispatchEx_AddRef(_IDispatchEx_(dispex));
+
+        V_VT(retv) = VT_DISPATCH;
+        V_DISPATCH(retv) = (IDispatch*)_IDispatchEx_(dispex);
+    }
+
+    return S_OK;
 }
 
 static HRESULT Object_hasOwnProperty(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js
index 23a4ad5..7075aec 100644
--- a/dlls/jscript/tests/api.js
+++ b/dlls/jscript/tests/api.js
@@ -439,6 +439,9 @@ ok(arr.sort() === arr, "arr.sort() !== arr");
 for(var i=0; i < arr.length; i++)
     ok(arr[i] === tmp[i], "arr[" + i + "] = " + arr[i] + " expected " + tmp[i]);
 
+ok(arr.valueOf === Object.prototype.valueOf, "arr.valueOf !== Object.prototype.valueOf");
+ok(arr === arr.valueOf(), "arr !== arr.valueOf");
+
 var num = new Number(6);
 arr = [0,1,2];
 tmp = arr.concat(3, [4,5], num);




More information about the wine-cvs mailing list