diff --git a/dlls/jscript/bool.c b/dlls/jscript/bool.c index 14bb1a3944c..d5dfcb49da1 100644 --- a/dlls/jscript/bool.c +++ b/dlls/jscript/bool.c @@ -117,6 +117,14 @@ static const builtin_info_t Bool_info = { NULL }; +static const builtin_info_t BoolInst_info = { + JSCLASS_BOOLEAN, + {NULL, Bool_value, 0}, + 0, NULL, + NULL, + NULL +}; + static HRESULT BoolConstr_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, VARIANT *argv, VARIANT *retv, jsexcept_t *ei) { @@ -168,7 +176,7 @@ static HRESULT alloc_bool(script_ctx_t *ctx, jsdisp_t *object_prototype, BoolIns if(object_prototype) hres = init_dispex(&bool->dispex, ctx, &Bool_info, object_prototype); else - hres = init_dispex_from_constr(&bool->dispex, ctx, &Bool_info, ctx->bool_constr); + hres = init_dispex_from_constr(&bool->dispex, ctx, &BoolInst_info, ctx->bool_constr); if(FAILED(hres)) { heap_free(bool); diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js index 4675e08f888..3d8d67a2642 100644 --- a/dlls/jscript/tests/api.js +++ b/dlls/jscript/tests/api.js @@ -217,6 +217,11 @@ ok(Array.prototype.hasOwnProperty('length'), "Array.prototype.hasOwnProperty('le ok(!obj.hasOwnProperty('sort'), "obj.hasOwnProperty('sort') is true"); ok(obj.hasOwnProperty('length'), "obj.hasOwnProperty('length') is true"); +obj = new Boolean(false); +ok(!obj.hasOwnProperty('toString'), "obj.hasOwnProperty('toString') is true"); +ok(!Boolean.hasOwnProperty('toString'), "Boolean.hasOwnProperty('toString') is true"); +ok(Boolean.prototype.hasOwnProperty('toString'), "Boolean.prototype.hasOwnProperty('toString') is false"); + tmp = "" + new Object(); ok(tmp === "[object Object]", "'' + new Object() = " + tmp); (tmp = new Array).f = Object.prototype.toString;