Jacek Caban : jscript: Use prototype for builtin Number properties.

Alexandre Julliard julliard at winehq.org
Tue Jul 24 14:39:32 CDT 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Jul 24 13:17:19 2012 +0200

jscript: Use prototype for builtin Number properties.

---

 dlls/jscript/number.c     |   10 +++++++++-
 dlls/jscript/tests/api.js |    5 +++++
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/dlls/jscript/number.c b/dlls/jscript/number.c
index d2de790..9107005 100644
--- a/dlls/jscript/number.c
+++ b/dlls/jscript/number.c
@@ -543,6 +543,14 @@ static const builtin_info_t Number_info = {
     NULL
 };
 
+static const builtin_info_t NumberInst_info = {
+    JSCLASS_NUMBER,
+    {NULL, Number_value, 0},
+    0, NULL,
+    NULL,
+    NULL
+};
+
 static HRESULT NumberConstr_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, VARIANT *argv,
         VARIANT *retv, jsexcept_t *ei)
 {
@@ -605,7 +613,7 @@ static HRESULT alloc_number(script_ctx_t *ctx, jsdisp_t *object_prototype, Numbe
     if(object_prototype)
         hres = init_dispex(&number->dispex, ctx, &Number_info, object_prototype);
     else
-        hres = init_dispex_from_constr(&number->dispex, ctx, &Number_info, ctx->number_constr);
+        hres = init_dispex_from_constr(&number->dispex, ctx, &NumberInst_info, ctx->number_constr);
     if(FAILED(hres))
         return hres;
 
diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js
index a723f6e..fc787a9 100644
--- a/dlls/jscript/tests/api.js
+++ b/dlls/jscript/tests/api.js
@@ -227,6 +227,11 @@ ok(!obj.hasOwnProperty('getTime'), "obj.hasOwnProperty('getTime') is true");
 ok(!Date.hasOwnProperty('getTime'), "Date.hasOwnProperty('getTime') is true");
 ok(Date.prototype.hasOwnProperty('getTime'), "Date.prototype.hasOwnProperty('getTime') is false");
 
+obj = new Number();
+ok(!obj.hasOwnProperty('toFixed'), "obj.hasOwnProperty('toFixed') is true");
+ok(!Number.hasOwnProperty('toFixed'), "Number.hasOwnProperty('toFixed') is true");
+ok(Number.prototype.hasOwnProperty('toFixed'), "Number.prototype.hasOwnProperty('toFixed') is false");
+
 tmp = "" + new Object();
 ok(tmp === "[object Object]", "'' + new Object() = " + tmp);
 (tmp = new Array).f = Object.prototype.toString;




More information about the wine-cvs mailing list