Module: wine Branch: master Commit: 3b80361a707109cd57e70dac5c05e76c33dcf9c6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3b80361a707109cd57e70dac5c...
Author: Jacek Caban jacek@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;