From: Christoph von Wittich Date: Sat, 22 Aug 2009 15:26:35 +0000 (+0000) Subject: sync jscript winetest with wine 1.1.28 X-Git-Tag: ReactOS-0.3.11~1034 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=a41cdb8eaeaa56df6441f65b8a3df23814480360 sync jscript winetest with wine 1.1.28 svn path=/trunk/; revision=42850 --- diff --git a/rostests/winetests/jscript/api.js b/rostests/winetests/jscript/api.js index 15b4b574939..8b4316f39cb 100644 --- a/rostests/winetests/jscript/api.js +++ b/rostests/winetests/jscript/api.js @@ -77,6 +77,14 @@ ok(tmp.f() === "[object RegExp]", "tmp.f() = " + tmp.f()); (tmp = new String).f = Object.prototype.toString; ok(tmp.f() === "[object String]", "tmp.f() = " + tmp.f()); +var obj = new Object(); +obj.toString = function (x) { + ok(arguments.length === 0, "arguments.length = " + arguments.length); + return "test"; +}; +ok((tmp = obj.toLocaleString()) === "test", "obj.toLocaleString() = " + tmp); +ok((tmp = obj.toLocaleString(1)) === "test", "obj.toLocaleString(1) = " + tmp); + ok("".length === 0, "\"\".length = " + "".length); ok(getVT("".length) == "VT_I4", "\"\".length = " + "".length); ok("abc".length === 3, "\"abc\".length = " + "abc".length); @@ -1345,4 +1353,203 @@ exception_test(function() {eval("while(")}, "SyntaxError", -2146827286); exception_test(function() {eval("if(")}, "SyntaxError", -2146827286); exception_test(function() {eval("'unterminated")}, "SyntaxError", -2146827273); +function testObjectInherit(obj, ts, tls, vo) { + ok(obj.hasOwnProperty === Object.prototype.hasOwnProperty, + "obj.hasOwnProperty !== Object.prototype.hasOwnProprty"); + ok(obj.isPrototypeOf === Object.prototype.isPrototypeOf, + "obj.isPrototypeOf !== Object.prototype.isPrototypeOf"); + ok(obj.propertyIsEnumerable === Object.prototype.propertyIsEnumerable, + "obj.propertyIsEnumerable !== Object.prototype.propertyIsEnumerable"); + + if(ts) + ok(obj.toString === Object.prototype.toString, + "obj.toString !== Object.prototype.toString"); + else + ok(obj.toString != Object.prototype.toString, + "obj.toString == Object.prototype.toString"); + + if(tls) + ok(obj.toLocaleString === Object.prototype.toLocaleString, + "obj.toLocaleString !== Object.prototype.toLocaleString"); + else + ok(obj.toLocaleString != Object.prototype.toLocaleString, + "obj.toLocaleString == Object.prototype.toLocaleString"); + + if(vo) + ok(obj.valueOf === Object.prototype.valueOf, + "obj.valueOf !== Object.prototype.valueOf"); + else + ok(obj.valueOf != Object.prototype.valueOf, + "obj.valueOf == Object.prototype.valueOf"); + + ok(obj._test === "test", "obj.test = " + obj._test); +} + +Object.prototype._test = "test"; +testObjectInherit(new String("test"), false, true, false); +testObjectInherit(/test/g, false, true, true); +testObjectInherit(new Number(1), false, false, false); +testObjectInherit(new Date(), false, false, false); +testObjectInherit(new Boolean(true), false, true, false); +testObjectInherit(new Array(), false, false, true); +testObjectInherit(new Error(), false, true, true); +testObjectInherit(testObjectInherit, false, true, true); +testObjectInherit(Math, true, true, true); + +function testFunctions(obj, arr) { + var l; + + for(var i=0; irgvarg) == VT_BSTR, "V_VT(psp->rgvargs) = %d\n", V_VT(pdp->rgvarg)); ok(V_VT(pdp->rgvarg+1) == VT_BOOL, "V_VT(psp->rgvargs+1) = %d\n", V_VT(pdp->rgvarg)); - ok(V_BOOL(pdp->rgvarg+1), "%s: %s\n", test_name, debugstr_w(V_BSTR(pdp->rgvarg))); + ok(V_BOOL(pdp->rgvarg+1), "%s: %s\n", test_name, wine_dbgstr_w(V_BSTR(pdp->rgvarg))); return S_OK; @@ -329,7 +324,7 @@ static HRESULT WINAPI Global_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, ok(V_VT(pdp->rgvarg) == VT_BSTR, "V_VT(psp->rgvargs) = %d\n", V_VT(pdp->rgvarg)); if(V_VT(pdp->rgvarg) == VT_BSTR) - trace("%s: %s\n", test_name, debugstr_w(V_BSTR(pdp->rgvarg))); + trace("%s: %s\n", test_name, wine_dbgstr_w(V_BSTR(pdp->rgvarg))); return S_OK; @@ -507,7 +502,7 @@ static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPC if(!strcmp_wa(pstrName, test_valA)) CHECK_EXPECT(GetItemInfo_testVal); else if(strcmp_wa(pstrName, testA)) - ok(0, "unexpected pstrName %s\n", debugstr_w(pstrName)); + ok(0, "unexpected pstrName %s\n", wine_dbgstr_w(pstrName)); *ppiunkItem = (IUnknown*)&Global; return S_OK; @@ -835,6 +830,18 @@ static void run_tests(void) parse_script_a("ok(typeof(test) === 'object', \"typeof(test) != 'object'\");"); + parse_script_a("function reportSuccess() {}; reportSuccess();"); + + SET_EXPECT(global_propget_d); + parse_script_a("var testPropGet"); + CHECK_CALLED(global_propget_d); + + SET_EXPECT(global_notexists_d); + parse_script_a("var notExists; notExists = 1;"); + CHECK_CALLED(global_notexists_d); + + parse_script_a("function f() { var testPropGet; }"); + run_from_res("lang.js"); run_from_res("api.js"); run_from_res("regexp.js");