32#define IActiveScriptParse_QueryInterface IActiveScriptParse64_QueryInterface
33#define IActiveScriptParse_Release IActiveScriptParse64_Release
34#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew
35#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText
36#define IActiveScriptParseProcedure2_Release IActiveScriptParseProcedure2_64_Release
37#define IActiveScriptParseProcedure2_ParseProcedureText IActiveScriptParseProcedure2_64_ParseProcedureText
41#define IActiveScriptParse_QueryInterface IActiveScriptParse32_QueryInterface
42#define IActiveScriptParse_Release IActiveScriptParse32_Release
43#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew
44#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText
45#define IActiveScriptParseProcedure2_Release IActiveScriptParseProcedure2_32_Release
46#define IActiveScriptParseProcedure2_ParseProcedureText IActiveScriptParseProcedure2_32_ParseProcedureText
51 {0xf414c260,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
53 {0xf414c262,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
55#define DEFINE_EXPECT(func) \
56 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
58#define SET_EXPECT(func) \
59 expect_ ## func = TRUE
61#define CHECK_EXPECT2(func) \
63 ok(expect_ ##func, "unexpected call " #func "\n"); \
64 called_ ## func = TRUE; \
67#define CHECK_EXPECT(func) \
69 CHECK_EXPECT2(func); \
70 expect_ ## func = FALSE; \
73#define CHECK_CALLED(func) \
75 ok(called_ ## func, "expected " #func "\n"); \
76 expect_ ## func = called_ ## func = FALSE; \
132#define JS_E_SUBSCRIPT_OUT_OF_RANGE 0x800a0009
133#define JS_E_INVALID_ACTION 0x800a01bd
134#define JS_E_OBJECT_EXPECTED 0x800a138f
135#define JS_E_UNDEFINED_VARIABLE 0x800a1391
136#define JS_E_EXCEPTION_THROWN 0x800a139e
137#define JS_E_SYNTAX 0x800a03ea
138#define JS_E_MISSING_RBRACKET 0x800a03ee
139#define JS_E_MISPLACED_RETURN 0x800a03fa
141#define DISPID_GLOBAL_TESTPROPGET 0x1000
142#define DISPID_GLOBAL_TESTPROPPUT 0x1001
143#define DISPID_GLOBAL_REPORTSUCCESS 0x1002
144#define DISPID_GLOBAL_TRACE 0x1003
145#define DISPID_GLOBAL_OK 0x1004
146#define DISPID_GLOBAL_GETVT 0x1005
147#define DISPID_GLOBAL_TESTOBJ 0x1006
148#define DISPID_GLOBAL_GETNULLBSTR 0x1007
149#define DISPID_GLOBAL_NULL_DISP 0x1008
150#define DISPID_GLOBAL_TESTTHIS 0x1009
151#define DISPID_GLOBAL_TESTTHIS2 0x100a
152#define DISPID_GLOBAL_INVOKEVERSION 0x100b
153#define DISPID_GLOBAL_CREATEARRAY 0x100c
154#define DISPID_GLOBAL_PROPGETFUNC 0x100d
155#define DISPID_GLOBAL_OBJECT_FLAG 0x100e
156#define DISPID_GLOBAL_ISWIN64 0x100f
157#define DISPID_GLOBAL_PUREDISP 0x1010
158#define DISPID_GLOBAL_ISNULLBSTR 0x1011
159#define DISPID_GLOBAL_PROPARGPUT 0x1012
160#define DISPID_GLOBAL_SHORTPROP 0x1013
161#define DISPID_GLOBAL_GETSHORT 0x1014
162#define DISPID_GLOBAL_TESTARGTYPES 0x1015
163#define DISPID_GLOBAL_INTPROP 0x1016
164#define DISPID_GLOBAL_DISPUNK 0x1017
165#define DISPID_GLOBAL_TESTRES 0x1018
166#define DISPID_GLOBAL_TESTNORES 0x1019
167#define DISPID_GLOBAL_DISPEXFUNC 0x101a
168#define DISPID_GLOBAL_TESTPROPPUTREF 0x101b
169#define DISPID_GLOBAL_GETSCRIPTSTATE 0x101c
170#define DISPID_GLOBAL_BINDEVENTHANDLER 0x101d
171#define DISPID_GLOBAL_TESTENUMOBJ 0x101e
172#define DISPID_GLOBAL_CALLEVAL 0x101f
173#define DISPID_GLOBAL_PROPARGPUTOP 0x1020
174#define DISPID_GLOBAL_THROWINT 0x1021
175#define DISPID_GLOBAL_THROWEI 0x1022
176#define DISPID_GLOBAL_VDATE 0x1023
177#define DISPID_GLOBAL_VCY 0x1024
178#define DISPID_GLOBAL_TODOWINE 0x1025
179#define DISPID_GLOBAL_TESTDESTROBJ 0x1026
181#define DISPID_GLOBAL_TESTPROPDELETE 0x2000
182#define DISPID_GLOBAL_TESTNOPROPDELETE 0x2001
183#define DISPID_GLOBAL_TESTPROPDELETEERROR 0x2002
185#define DISPID_TESTOBJ_PROP 0x2000
186#define DISPID_TESTOBJ_ONLYDISPID 0x2001
187#define DISPID_TESTOBJ_WITHPROP 0x2002
188#define DISPID_TESTOBJ_TOLOCALESTR 0x2003
190#define JS_E_OUT_OF_MEMORY 0x800a03ec
191#define JS_E_INVALID_CHAR 0x800a03f6
217 if (pGetThreadUILanguage)
219 if (pGetUserDefaultUILanguage)
225#define test_grfdex(a,b) _test_grfdex(__LINE__,a,b)
274 ok(rgVar !=
NULL,
"rgVar is NULL\n");
275 ok(celt == 1,
"celt = %ld\n", celt);
276 ok(pCeltFetched ==
NULL,
"pCeltFetched is not NULL\n");
308 ok(0,
"EnumVariant_Skip: unexpected call\n");
323 ok(0,
"EnumVariant_Clone: unexpected call\n");
404 ok(0,
"unexpected call\n");
415 LPOLESTR *rgszNames,
UINT cNames,
418 ok(0,
"unexpected call\n");
424 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
426 ok(0,
"unexpected call\n");
432 ok(0,
"unexpected call\n");
439 ok(0,
"unexpected call\n");
451 ok(0,
"unexpected call\n");
457 ok(0,
"unexpected call\n");
463 ok(0,
"unexpected call\n");
469 ok(0,
"unexpected call\n");
475 ok(0,
"unexpected call\n");
486 ok(pdp !=
NULL,
"pdp == NULL\n");
487 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
488 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
489 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
490 ok(pei ==
NULL,
"pei != NULL\n");
498 ok(0,
"unexpected call %lx\n",
id);
512 test_grfdex(grfdex, fdexNameCaseSensitive|fdexNameImplicit);
528 if(!
lstrcmpW(bstrName,
L"toLocaleString")) {
551 ok(pspCaller !=
NULL,
"pspCaller = NULL\n");
555 ok(pdp !=
NULL,
"pdp == NULL\n");
556 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
557 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
558 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
560 ok(pei !=
NULL,
"pei == NULL\n");
563 case INVOKE_PROPERTYGET:
565 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
566 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
569 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
571 case INVOKE_FUNC|INVOKE_PROPERTYGET:
572 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
574 case DISPATCH_CONSTRUCT:
576 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
579 ok(0,
"invalid flag (%x)\n",
wFlags);
589 ok(pdp !=
NULL,
"pdp == NULL\n");
590 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
591 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
592 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
593 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
594 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
596 ok(pei !=
NULL,
"pei == NULL\n");
602 ok(pdp !=
NULL,
"pdp == NULL\n");
603 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
604 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
605 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
606 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
607 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
609 ok(pei !=
NULL,
"pei == NULL\n");
619 ok(pdp !=
NULL,
"pdp == NULL\n");
620 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
621 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
622 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
623 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
625 ok(pei !=
NULL,
"pei == NULL\n");
628 V_I4(pvarRes) = 1234;
633 ok(0,
"unexpected call %lx\n",
id);
644 if(!
lstrcmpW(bstrName,
L"noDeleteTest")) {
677 ok(
id == DISPID_VALUE,
"id = %ld\n",
id);
678 ok(pdp !=
NULL,
"pdp == NULL\n");
679 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
683 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
684 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
685 ok(pei !=
NULL,
"pei == NULL\n");
686 ok(pspCaller !=
NULL,
"pspCaller == NULL\n");
687 ok(pspCaller != &
sp_obj,
"pspCaller == sp_obj\n");
690 }
else if(pspCaller) {
693 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
694 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
695 ok(pspCaller == &
sp_obj,
"pspCaller != sp_obj\n");
701 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
702 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
766 ok(pspCaller !=
NULL,
"pspCaller = NULL\n");
772 ok(pdp !=
NULL,
"pdp == NULL\n");
773 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
774 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs != NULL\n");
775 ok(*pdp->rgdispidNamedArgs ==
DISPID_THIS,
"*rgdispidNamedArgs = %ld\n", *pdp->rgdispidNamedArgs);
776 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
777 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
779 ok(pei !=
NULL,
"pei == NULL\n");
781 ok(
V_VT(pdp->rgvarg+1) ==
VT_BOOL,
"V_VT(pdp->rgvarg+1) = %d\n",
V_VT(pdp->rgvarg+1));
796 ok(0,
"unexpected call %lx\n",
id);
833 LPOLESTR *rgszNames,
UINT cNames,
837 ok(cNames==1,
"cNames = %d\n", cNames);
843 }
else if(!
lstrcmpW(*rgszNames,
L"noprop")) {
848 ok(0,
"unexpected call\n");
857 switch(dispIdMember) {
861 ok(pdp !=
NULL,
"pdp == NULL\n");
862 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
863 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
864 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
865 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
867 ok(ei !=
NULL,
"ei == NULL\n");
868 ok(puArgErr !=
NULL,
"puArgErr == NULL\n");
881 ok(0,
"unexpected call\n");
900 ok(0,
"unexpected call\n");
918 ok(disp !=
NULL,
"disp = NULL\n");
971 ok(!
wcscmp(ei->bstrDescription,
L"desc before defer"),
"bstrDescription = %s\n",
wine_dbgstr_w(ei->bstrDescription));
972 ok(!
wcscmp(ei->bstrHelpFile,
L"help before defer"),
"bstrHelpFile = %s\n",
wine_dbgstr_w(ei->bstrHelpFile));
973 ok(ei->dwHelpContext == 1337,
"dwHelpContext = %lu\n", ei->dwHelpContext);
978 ei->pfnDeferredFillIn =
NULL;
982 ei->dwHelpContext = 1234567890;
999 if(!
lstrcmpW(bstrName,
L"todo_wine_ok")) {
1004 if(!
lstrcmpW(bstrName,
L"reportSuccess")) {
1010 if(!
lstrcmpW(bstrName,
L"testPropGet")) {
1016 if(!
lstrcmpW(bstrName,
L"testPropPut")) {
1022 if(!
lstrcmpW(bstrName,
L"testPropPutRef")) {
1028 if(!
lstrcmpW(bstrName,
L"testPropDelete")) {
1034 if(!
lstrcmpW(bstrName,
L"testNoPropDelete")) {
1040 if(!
lstrcmpW(bstrName,
L"testPropDeleteError")) {
1056 if(!
lstrcmpW(bstrName,
L"getNullBSTR")) {
1060 if(!
lstrcmpW(bstrName,
L"isNullBSTR")) {
1086 if(!
lstrcmpW(bstrName,
L"invokeVersion")) {
1091 if(!
lstrcmpW(bstrName,
L"createArray")) {
1096 if(!
lstrcmpW(bstrName,
L"propGetFunc")) {
1101 if(!
lstrcmpW(bstrName,
L"objectFlag")) {
1119 if(!
lstrcmpW(bstrName,
L"propArgPutG")) {
1126 if(!
lstrcmpW(bstrName,
L"propArgPutOp")) {
1145 if(!
lstrcmpW(bstrName,
L"propArgPutO")) {
1147 test_grfdex(grfdex, fdexNameEnsure|fdexNameCaseSensitive);
1172 if(!
lstrcmpW(bstrName,
L"testArgTypes")) {
1197 if(!
lstrcmpW(bstrName,
L"dispexFunc")) {
1202 if(!
lstrcmpW(bstrName,
L"getScriptState")) {
1207 if(!
lstrcmpW(bstrName,
L"bindEventHandler")) {
1212 if(!
lstrcmpW(bstrName,
L"testEnumObj")) {
1222 if(!
lstrcmpW(bstrName,
L"testDestrObj")) {
1235 ok(pspCaller !=
NULL,
"pspCaller = NULL\n");
1239 ok(
wFlags == INVOKE_FUNC ||
wFlags == (INVOKE_FUNC|INVOKE_PROPERTYGET),
"wFlags = %x\n",
wFlags);
1240 ok(pdp !=
NULL,
"pdp == NULL\n");
1241 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1242 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1243 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
1244 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1245 if(
wFlags & INVOKE_PROPERTYGET)
1246 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1248 ok(!pvarRes,
"pvarRes != NULL\n");
1249 ok(pei !=
NULL,
"pei == NULL\n");
1251 ok(
V_VT(pdp->rgvarg) ==
VT_BSTR,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1252 ok(
V_VT(pdp->rgvarg+1) ==
VT_BOOL,
"V_VT(pdp->rgvarg+1) = %d\n",
V_VT(pdp->rgvarg+1));
1260 ok(
wFlags == INVOKE_FUNC ||
wFlags == (INVOKE_FUNC|INVOKE_PROPERTYGET),
"wFlags = %x\n",
wFlags);
1261 ok(pdp !=
NULL,
"pdp == NULL\n");
1262 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1263 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1264 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
1265 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1266 if(
wFlags & INVOKE_PROPERTYGET)
1267 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1269 ok(!pvarRes,
"pvarRes != NULL\n");
1270 ok(pei !=
NULL,
"pei == NULL\n");
1272 ok(
V_VT(pdp->rgvarg) ==
VT_BSTR,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1273 ok(
V_VT(pdp->rgvarg+1) ==
VT_BOOL,
"V_VT(pdp->rgvarg+1) = %d\n",
V_VT(pdp->rgvarg+1));
1280 ok(pdp !=
NULL,
"pdp == NULL\n");
1281 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1282 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1283 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1284 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1285 ok(!pvarRes,
"pvarRes != NULL\n");
1286 ok(pei !=
NULL,
"pei == NULL\n");
1288 ok(
V_VT(pdp->rgvarg) ==
VT_BSTR,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1298 ok(pdp !=
NULL,
"pdp == NULL\n");
1299 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1300 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
1301 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1303 ok(!pvarRes,
"pvarRes != NULL\n");
1304 ok(pei !=
NULL,
"pei == NULL\n");
1312 ok(pdp !=
NULL,
"pdp == NULL\n");
1313 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
1314 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1315 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1316 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1317 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1319 ok(pei !=
NULL,
"pei == NULL\n");
1330 ok(pdp !=
NULL,
"pdp == NULL\n");
1331 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1332 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1333 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1334 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1335 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %ld\n", pdp->rgdispidNamedArgs[0]);
1336 ok(!pvarRes,
"pvarRes != NULL\n");
1338 ok(
V_VT(pdp->rgvarg) ==
VT_I4,
"V_VT(pdp->rgvarg)=%d\n",
V_VT(pdp->rgvarg));
1339 ok(
V_I4(pdp->rgvarg) == 1,
"V_I4(pdp->rgvarg)=%ld\n",
V_I4(pdp->rgvarg));
1345 ok(
wFlags == (INVOKE_PROPERTYPUT|INVOKE_PROPERTYPUTREF),
"wFlags = %x\n",
wFlags);
1346 ok(pdp !=
NULL,
"pdp == NULL\n");
1347 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1348 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1349 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1350 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1351 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %ld\n", pdp->rgdispidNamedArgs[0]);
1352 ok(!pvarRes,
"pvarRes != NULL\n");
1358 ok(pdp !=
NULL,
"pdp == NULL\n");
1359 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1360 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1361 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1362 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1363 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1365 ok(pei !=
NULL,
"pei == NULL\n");
1368 switch(
V_VT(pdp->rgvarg)) {
1397 ok(0,
"unknown vt %d\n",
V_VT(pdp->rgvarg));
1404 ok(pvarRes !=
NULL,
"pvarRes = NULL\n");
1407 V_BOOL(pvarRes) = VARIANT_TRUE;
1412 ok(!pvarRes,
"pvarRes != NULL\n");
1419 ok(pdp !=
NULL,
"pdp == NULL\n");
1420 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
1421 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1422 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1423 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1424 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1426 ok(pei !=
NULL,
"pei == NULL\n");
1434 ok(pdp !=
NULL,
"pdp == NULL\n");
1435 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
1436 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1437 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1438 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1439 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1441 ok(pei !=
NULL,
"pei == NULL\n");
1450 ok(pdp !=
NULL,
"pdp == NULL\n");
1451 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
1452 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1453 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1454 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1455 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1457 ok(pei !=
NULL,
"pei == NULL\n");
1476 ok(pdp !=
NULL,
"pdp == NULL\n");
1477 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1478 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1479 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1480 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1481 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1483 ok(pei !=
NULL,
"pei == NULL\n");
1484 ok(
V_VT(pdp->rgvarg) ==
VT_BSTR,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1487 V_BOOL(pvarRes) =
V_BSTR(pdp->rgvarg) ? VARIANT_FALSE : VARIANT_TRUE;
1493 V_BOOL(pvarRes) =
sizeof(
void*) == 8 ? VARIANT_TRUE : VARIANT_FALSE;
1499 ok(pdp !=
NULL,
"pdp == NULL\n");
1500 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
1501 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1502 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1503 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1504 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1506 ok(pei !=
NULL,
"pei == NULL\n");
1513 ok(pdp !=
NULL,
"pdp == NULL\n");
1514 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1515 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1516 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1517 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1518 ok(pvarRes ==
NULL,
"pvarRes != NULL\n");
1519 ok(pei !=
NULL,
"pei == NULL\n");
1527 ok(pdp !=
NULL,
"pdp == NULL\n");
1528 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1529 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1530 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1531 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1532 ok(pvarRes ==
NULL,
"pvarRes != NULL\n");
1533 ok(pei !=
NULL,
"pei == NULL\n");
1543 ok(pdp !=
NULL,
"pdp == NULL\n");
1544 ok(!pdp->rgvarg,
"rgvarg != NULL\n");
1545 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1546 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1547 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1548 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1550 ok(pei !=
NULL,
"pei == NULL\n");
1563 ok(pdp !=
NULL,
"pdp == NULL\n");
1564 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1565 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1566 ok(!pdp->cArgs,
"cArgs = %d\n", pdp->cArgs);
1567 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1568 ok(pvarRes !=
NULL,
"pvarRes == NULL\n");
1570 ok(pei !=
NULL,
"pei == NULL\n");
1581 for(
i=0;
i<5;
i++) {
1582 for(
j=2;
j<4;
j++) {
1598 case INVOKE_FUNC|INVOKE_PROPERTYGET:
1599 ok(pdp->cArgs != 0,
"pdp->cArgs = %d\n", pdp->cArgs);
1600 ok(pvarRes !=
NULL,
"pdp->pvarRes == NULL\n");
1603 ok(0,
"invalid flag (%x)\n",
wFlags);
1606 ok(pdp !=
NULL,
"pdp == NULL\n");
1607 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1608 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1609 ok(pei !=
NULL,
"pei == NULL\n");
1614 V_I4(pvarRes) = pdp->cArgs;
1639 ok(pdp !=
NULL,
"pdp == NULL\n");
1640 ok(pdp->rgvarg !=
NULL,
"rgvarg != NULL\n");
1641 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1642 ok(pdp->cArgs == 3,
"cArgs = %d\n", pdp->cArgs);
1643 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1644 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %ld\n", pdp->rgdispidNamedArgs[0]);
1645 ok(!pvarRes,
"pvarRes != NULL\n");
1646 ok(pei !=
NULL,
"pei == NULL\n");
1648 ok(
V_VT(pdp->rgvarg) ==
VT_I4,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1649 ok(
V_I4(pdp->rgvarg) == 2,
"V_I4(pdp->rgvarg) = %ld\n",
V_I4(pdp->rgvarg));
1651 ok(
V_VT(pdp->rgvarg+1) ==
VT_I4,
"V_VT(pdp->rgvarg+1) = %d\n",
V_VT(pdp->rgvarg+1));
1652 ok(
V_I4(pdp->rgvarg+1) == 1,
"V_I4(pdp->rgvarg+1) = %ld\n",
V_I4(pdp->rgvarg+1));
1654 ok(
V_VT(pdp->rgvarg+2) ==
VT_I4,
"V_VT(pdp->rgvarg+2) = %d\n",
V_VT(pdp->rgvarg+2));
1655 ok(
V_I4(pdp->rgvarg+2) == 0,
"V_I4(pdp->rgvarg+2) = %ld\n",
V_I4(pdp->rgvarg+2));
1659 ok(pdp !=
NULL,
"pdp == NULL\n");
1660 ok(pdp->rgvarg !=
NULL,
"rgvarg != NULL\n");
1661 ok(pei !=
NULL,
"pei == NULL\n");
1664 case INVOKE_PROPERTYGET | INVOKE_FUNC:
1667 ok(pdp->cNamedArgs == 0,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1668 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1669 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
1670 ok(pdp->cNamedArgs == 0,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1671 ok(pvarRes !=
NULL,
"pvarRes = NULL\n");
1673 ok(
V_VT(pdp->rgvarg) ==
VT_I4,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1674 ok(
V_I4(pdp->rgvarg) == 1,
"V_I4(pdp->rgvarg) = %ld\n",
V_I4(pdp->rgvarg));
1676 ok(
V_VT(pdp->rgvarg+1) ==
VT_I4,
"V_VT(pdp->rgvarg+1) = %d\n",
V_VT(pdp->rgvarg+1));
1677 ok(
V_I4(pdp->rgvarg+1) == 0,
"V_I4(pdp->rgvarg+1) = %ld\n",
V_I4(pdp->rgvarg+1));
1682 case INVOKE_PROPERTYPUT:
1685 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1686 ok(pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT,
"pdp->rgdispidNamedArgs[0] = %ld\n", pdp->rgdispidNamedArgs[0]);
1687 ok(pdp->rgdispidNamedArgs !=
NULL,
"rgdispidNamedArgs == NULL\n");
1688 ok(pdp->cArgs == 3,
"cArgs = %d\n", pdp->cArgs);
1689 ok(pdp->cNamedArgs == 1,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1690 ok(!pvarRes,
"pvarRes != NULL\n");
1692 ok(
V_VT(pdp->rgvarg) ==
VT_I4,
"V_VT(pdp->rgvarg) = %d\n",
V_VT(pdp->rgvarg));
1693 ok(
V_I4(pdp->rgvarg) == 8,
"V_I4(pdp->rgvarg) = %ld\n",
V_I4(pdp->rgvarg));
1695 ok(
V_VT(pdp->rgvarg+1) ==
VT_I4,
"V_VT(pdp->rgvarg+1) = %d\n",
V_VT(pdp->rgvarg+1));
1696 ok(
V_I4(pdp->rgvarg+1) == 1,
"V_I4(pdp->rgvarg+1) = %ld\n",
V_I4(pdp->rgvarg+1));
1698 ok(
V_VT(pdp->rgvarg+2) ==
VT_I4,
"V_VT(pdp->rgvarg+2) = %d\n",
V_VT(pdp->rgvarg+2));
1699 ok(
V_I4(pdp->rgvarg+2) == 0,
"V_I4(pdp->rgvarg+2) = %ld\n",
V_I4(pdp->rgvarg+2));
1712 hres = IDispatch_QueryInterface(
script_disp, &IID_IDispatchEx, (
void**)&dispex);
1716 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
1733 hres = IDispatchEx_InvokeEx(dispex,
id,
lcid, DISPATCH_CONSTRUCT, pdp, pvarRes, pei, pspCaller);
1738 hres = IDispatchEx_InvokeEx(dispex,
id,
lcid, DISPATCH_CONSTRUCT, pdp,
NULL, pei, pspCaller);
1746 hres = IDispatchEx_InvokeEx(dispex,
id,
lcid,
wFlags, pdp, pvarRes, pei, pspCaller);
1749 IDispatchEx_Release(dispex);
1760 ok(pdp !=
NULL,
"pdp == NULL\n");
1761 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1762 ok(pvarRes !=
NULL,
"pvarRes != NULL\n");
1764 switch(
V_VT(pdp->rgvarg))
1773 ok(0,
"vt = %u\n",
V_VT(pdp->rgvarg));
1780 ok(pdp !=
NULL,
"pdp == NULL\n");
1781 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1782 ok(pvarRes !=
NULL,
"pvarRes != NULL\n");
1784 switch(
V_VT(pdp->rgvarg))
1787 V_CY(pvarRes).int64 =
V_I4(pdp->rgvarg);
1790 V_CY(pvarRes).int64 =
V_R8(pdp->rgvarg);
1793 ok(0,
"vt = %u\n",
V_VT(pdp->rgvarg));
1800 V_INT(pvarRes) = 22;
1815 ok(pdp !=
NULL,
"pdp == NULL\n");
1816 ok(pdp->rgvarg !=
NULL,
"rgvarg != NULL\n");
1817 ok(pdp->cArgs == 6,
"cArgs = %d\n", pdp->cArgs);
1818 ok(!pvarRes,
"pvarRes != NULL\n");
1820 ok(
V_VT(pdp->rgvarg+1) ==
VT_I4,
"V_VT(pdp->rgvarg+1) = %d\n",
V_VT(pdp->rgvarg+1));
1821 ok(
V_I4(pdp->rgvarg+1) == 10,
"V_I4(pdp->rgvarg+1) = %ld\n",
V_I4(pdp->rgvarg+1));
1823 ok(
V_VT(pdp->rgvarg+2) ==
VT_I4,
"V_VT(pdp->rgvarg+2) = %d\n",
V_VT(pdp->rgvarg+2));
1824 ok(
V_I4(pdp->rgvarg+2) == 10,
"V_I4(pdp->rgvarg+2) = %ld\n",
V_I4(pdp->rgvarg+2));
1826 ok(
V_VT(pdp->rgvarg+3) ==
VT_I4,
"V_VT(pdp->rgvarg+3) = %d\n",
V_VT(pdp->rgvarg+3));
1827 ok(
V_I4(pdp->rgvarg+3) == 22,
"V_I4(pdp->rgvarg+3) = %ld\n",
V_I4(pdp->rgvarg+3));
1829 ok(
V_VT(pdp->rgvarg+4) ==
VT_I4,
"V_VT(pdp->rgvarg+4) = %d\n",
V_VT(pdp->rgvarg+4));
1830 ok(
V_I4(pdp->rgvarg+4) == 22,
"V_I4(pdp->rgvarg+4) = %ld\n",
V_I4(pdp->rgvarg+4));
1873 ok(pdp !=
NULL,
"pdp == NULL\n");
1874 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1875 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1876 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1877 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1878 ok(pvarRes ==
NULL,
"pvarRes != NULL\n");
1879 ok(pei !=
NULL,
"pei == NULL\n");
1882 hres = IDispatch_QueryInterface(
V_DISPATCH(pdp->rgvarg), &IID_IDispatchEx, (
void**)&eval_func);
1883 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
1898 IDispatchEx_Release(eval_func);
1906 ok(pdp !=
NULL,
"pdp == NULL\n");
1907 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1908 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1909 ok(pdp->cArgs == 1,
"cArgs = %d\n", pdp->cArgs);
1910 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1911 ok(pei !=
NULL,
"pei == NULL\n");
1915 V_BOOL(pvarRes) = VARIANT_FALSE;
1926 ok(0,
"unexpected vt %d\n",
V_VT(
v));
1933 VARIANT *
v = pdp->rgvarg + pdp->cArgs - 1;
1937 ok(pdp !=
NULL,
"pdp == NULL\n");
1938 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
1939 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
1940 ok(pdp->cArgs == 1 || pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
1941 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
1942 ok(pei !=
NULL,
"pei == NULL\n");
1946 V_BOOL(pvarRes) = VARIANT_FALSE;
1957 ok(0,
"unexpected vt %d\n",
V_VT(
v));
1962 if(pdp->cArgs == 1) {
1970 pei->dwHelpContext = 1337;
1976 ok(0,
"unexpected call %lx\n",
id);
1993 ok(0,
"id = %ld\n",
id);
2053 ok(dwReturnMask == SCRIPTINFO_IUNKNOWN,
"unexpected dwReturnMask %lx\n", dwReturnMask);
2054 ok(!ppti,
"ppti != NULL\n");
2071 const VARIANT *pvarResult,
const EXCEPINFO *pexcepinfo)
2114 ok(pscripterror !=
NULL,
"ActiveScriptSite_OnScriptError -- expected pscripterror to be set, got NULL\n");
2145 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptProperty,
2146 (
void**)&script_prop);
2147 ok(
hres ==
S_OK,
"Could not get IActiveScriptProperty iface: %08lx\n",
hres);
2150 IActiveScriptProperty_Release(script_prop);
2162 &IID_IActiveScript, (
void**)&
script);
2170 IActiveScript_Release(
script);
2179 IActiveScriptParse *
parser;
2187 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2188 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2191 IActiveScript_Release(engine);
2201 hres = IActiveScript_AddNamedItem(engine,
L"test",
2202 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|
flags);
2206 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
2216 IActiveScript_Release(engine);
2224 IActiveScriptParseProcedure2 *parse_proc;
2225 IActiveScriptParse *
parser;
2237 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2238 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2247 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
2249 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParseProcedure2, (
void**)&parse_proc);
2250 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2253 SCRIPTPROC_HOSTMANAGESSOURCE|SCRIPTPROC_IMPLICIT_THIS|SCRIPTPROC_IMPLICIT_PARENTS, &disp);
2256 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
2257 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
2258 IDispatch_Release(disp);
2264 IDispatchEx_Release(dispex);
2267 IActiveScript_Release(engine);
2275 IActiveScriptParse *
parser;
2283 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2284 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2287 IActiveScript_Release(engine);
2297 hres = IActiveScript_AddNamedItem(engine,
L"test",
2298 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
2302 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
2306 IActiveScript_Release(engine);
2311#define ERROR_TODO_PARSE 0x0001
2312#define ERROR_TODO_SCODE 0x0002
2313#define ERROR_TODO_DESCRIPTION 0x0004
2314#define ERROR_TODO_HELPFILE 0x0008
2318 IActiveScriptParse *
parser;
2323 static const struct {
2328 const WCHAR *error_source;
2330 const WCHAR *help_file;
2332 const WCHAR *line_text;
2339 L"Microsoft JScript compilation error",
2345 L"var a=1;\nif(a\n-->0) a=5;\n",
2347 L"Microsoft JScript compilation error",
2356 L"Microsoft JScript runtime error",
2357 L"Object doesn't support this action"
2362 L"Microsoft JScript runtime error",
2366 L"var a;\nnew null;",
2368 L"Microsoft JScript runtime error",
2372 L"var a; new null;",
2374 L"Microsoft JScript runtime error",
2378 L"var a;\na=\n new null;",
2380 L"Microsoft JScript runtime error",
2384 L"var a;\nif(na=\n new null) {}",
2386 L"Microsoft JScript runtime error",
2390 L"not_existing_variable.something();",
2392 L"Microsoft JScript runtime error",
2393 L"'not_existing_variable' is undefined"
2398 L"Microsoft JScript runtime error",
2399 L"Exception thrown and not caught"
2402 L"var f = function() { throw 1; };\n"
2405 L"Microsoft JScript runtime error",
2406 L"Exception thrown and not caught"
2409 L"var f = function() { throw 1; };\n"
2410 L"try { f(); } finally { 2; }\n",
2412 L"Microsoft JScript runtime error",
2413 L"Exception thrown and not caught"
2416 L" throwInt(-2146827270);",
2418 L"Microsoft JScript runtime error",
2419 L"'return' statement outside of function"
2422 L" throwEI(-2146827270);",
2428 L" throwEI(-2146827270, false);",
2430 L"Microsoft JScript runtime error",
2431 L"'return' statement outside of function"
2434 L" throwEI(-2147467259 /* E_FAIL */, false);",
2438 L" throwInt(-2147467259 /* E_FAIL */);",
2448 L" throwEI(-2147467259 /* E_FAIL */);",
2454 L" throwEI(-2147467259 /* E_FAIL */, true);",
2456 L"source after defer",
2457 L"desc after defer",
2458 L"help after defer", 1234567890,
2464 L" case 1: break;\n"
2465 L" case 0: break;\n"
2466 L" case new null: break;\n"
2467 L" default: throw 1;\n"
2470 L"Microsoft JScript runtime error",
2476 L"} while ( new null );\n",
2478 L"Microsoft JScript runtime error",
2482 L"for (var i = 0; i < 100; new null) { i++ }",
2484 L"Microsoft JScript runtime error",
2488 L"for (var i = 0; new null; i++) { i++ }",
2490 L"Microsoft JScript runtime error",
2494 L"for (new null; i < 100; i++) { i++ }",
2496 L"Microsoft JScript runtime error",
2500 L"var e = new Error();\n"
2501 L"e.number = -2146828279;\n"
2502 L"e.description = 'test';\n"
2505 L"Microsoft JScript runtime error",
2513 L"var e = new Error();\n"
2514 L"e.number = -2146828279;\n"
2515 L"e.message = 'test';\n"
2518 L"Microsoft JScript runtime error",
2526 L"var e = new Error();\n"
2537 L"var e = new Object();\n"
2538 L"e.number = -2146828279;\n"
2539 L"e.description = 'test';\n"
2542 L"Microsoft JScript runtime error",
2543 L"Exception thrown and not caught",
2549 L"f(1\n,\n2,\n ,,3\n);\n",
2551 L"Microsoft JScript compilation error",
2559 skip(
"Non-english UI (test with hardcoded strings)\n");
2565 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2566 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2574 hres = IActiveScript_AddNamedItem(engine,
L"test",
2575 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
2579 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
2597 DWORD source_context;
2606 source_context = 0xdeadbeef;
2609 ok(source_context == 10,
"source_context = %lx\n", source_context);
2616 character = 0xdeadbeef;
2619 ok(character ==
tests[
i].character,
"[%u] character = %lu expected %u\n",
i, character,
tests[
i].character);
2624 line_text = (
BSTR)0xdeadbeef;
2629 ok(line_text !=
NULL && !
lstrcmpW(line_text,
tests[
i].line_text),
"[%u] GetSourceLineText returned %s expected %s\n",
2643 ei.wReserved = 0xdead;
2644 ei.bstrSource = (
BSTR)0xdeadbeef;
2645 ei.bstrDescription = (
BSTR)0xdeadbeef;
2646 ei.bstrHelpFile = (
BSTR)0xdeadbeef;
2647 ei.dwHelpContext = 0xdeadbeef;
2648 ei.pvReserved = (
void *)0xdeadbeef;
2649 ei.pfnDeferredFillIn = (
void *)0xdeadbeef;
2650 ei.scode = 0xdeadbeef;
2656 ok(ei.scode ==
tests[
i].error,
"[%u] scode = %08lx, expected %08lx\n",
i, ei.scode,
tests[
i].error);
2657 ok(ei.wCode == 0,
"wCode = %x\n", ei.wCode);
2663 if(
tests[
i].error_source)
2664 ok(ei.bstrSource && !
lstrcmpW(ei.bstrSource,
tests[
i].error_source),
"[%u] bstrSource = %s expected %s\n",
2667 ok(!ei.bstrSource,
"[%u] bstrSource = %s expected NULL\n",
i,
wine_dbgstr_w(ei.bstrSource));
2670 ok(ei.bstrDescription && !
lstrcmpW(ei.bstrDescription,
tests[
i].description),
2673 ok(!ei.bstrDescription,
"[%u] bstrDescription = %s expected NULL\n",
i,
wine_dbgstr_w(ei.bstrDescription));
2680 ok(!ei.bstrHelpFile,
"[%u] bstrHelpFile = %s expected NULL\n",
i,
wine_dbgstr_w(ei.bstrHelpFile));
2682 ok(ei.dwHelpContext ==
tests[
i].help_context,
"dwHelpContext = %lu, expected %lu\n", ei.dwHelpContext,
tests[
i].help_context);
2683 ok(!ei.pvReserved,
"pvReserved = %p\n", ei.pvReserved);
2684 ok(!ei.pfnDeferredFillIn,
"pfnDeferredFillIn = %p\n", ei.pfnDeferredFillIn);
2694 IActiveScript_Release(engine);
2699#define run_script(a) _run_script(__LINE__,a)
2712 const char *file_map;
2803 IActiveScriptParse *
parser;
2811 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2812 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2815 IActiveScript_Release(engine);
2827 hres = IActiveScript_AddNamedItem(engine,
L"testVal",
2828 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|
2829 (global_members ? SCRIPTITEM_GLOBALMEMBERS : 0));
2835 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
2847 IActiveScript_Release(engine);
2853 IActiveScriptParse *
parser;
2862 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2863 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2871 hres = IActiveScript_AddNamedItem(engine,
L"test", SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
2874 str =
SysAllocString(
L"ok(getScriptState() === 5, \"getScriptState = \" + getScriptState());\n"
2875 L"reportSuccess();");
2883 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
2887 IActiveScript_Release(engine);
2894 IActiveScriptParse *
parser;
2903 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2904 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2912 hres = IActiveScript_AddNamedItem(engine,
L"test", SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
2916 L"reportSuccess();");
2925 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
2930 IActiveScript_Release(engine);
2937 IActiveScriptParse *
parser;
2945 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2946 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2955 hres = IActiveScript_AddNamedItem(engine,
L"testVal",
2956 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
2961 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
2967 *engine_ret = engine;
2976 IActiveScriptParse *
parser;
2987 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
2988 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
2997 hres = IActiveScript_AddNamedItem(engine,
L"testVal",
2998 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
3013 hres = IActiveScript_GetScriptState(engine, &
state);
3018 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
3028 DISPPARAMS dp = {0}, dp_get = {0};
3051 dp.cArgs = dp.cNamedArgs = 1;
3074 IDispatch_Release(
obj);
3106 IDispatch_Release(disp);
3114 DISPPARAMS dp = {0};
3127 IDispatch_Release(disp);
3139 IDispatch_Release(disp);
3142 hres =
parse_script_expr(
L"var arr = [5]; arr.toString = function() {return \"foo\";}; arr.valueOf = function() {return 42;}; arr", &
v, &
script);
3152 IDispatch_Release(disp);
3166 IDispatch_Release(disp);
3180 IDispatch_Release(disp);
3194 IDispatch_Release(disp);
3205 IDispatch_Release(disp);
3213 dp.cArgs = dp.cNamedArgs = 1;
3223 IDispatch_Release(disp);
3238 IDispatch_Release(disp);
3249 {
L"+1234.5",
L"1,234.50" },
3250 {
L"-1337.7331",
L"-1,337.73" },
3251 {
L"-0.0123",
L"-0.01" },
3252 {
L"-0.0198",
L"-0.02" },
3253 {
L"0.004",
L"0.00" },
3254 {
L"65536.5",
L"65,536.50" },
3257 static const WCHAR fmt[] =
L"Number.prototype.toLocaleString.call(%s)";
3307 ok(
hres == 0x800a03fa,
"parse_script_expr failed: %08lx\n",
hres);
3310 ok(
hres == 0x800a03fa,
"parse_script_expr failed: %08lx\n",
hres);
3325 hres =
parse_script_expr(
L"var o=new Object(); Object.prototype.toString = function() {return \"wine\";}; Object.prototype.toLocaleString.call(o)", &
v,
NULL);
3331 hres =
parse_script_expr(
L"var o=new Object(); delete Object.prototype.toString; Object.prototype.toLocaleString.call(o)", &
v,
NULL);
3332 ok(
hres == 0x800a01b6,
"parse_script_expr failed: %08lx\n",
hres);
3334 hres =
parse_script_expr(
L"var o=new Object(); o.toString = function() {return \"wine\";}; Object.prototype.toLocaleString.call(o)", &
v,
NULL);
3343 L"Number.prototype.toLocaleString = function() {return 12;};"
3344 L"[1,2,arr,3].toLocaleString('foo','bar','baz')", &
v,
NULL);
3357 ok(
hres == 0x800a01b6,
"parse_script_expr failed: %08lx\n",
hres);
3370 DISPPARAMS dp = {
NULL}, dp_max = {
NULL};
3371 DISPID func_id, max_id, prop_id;
3382 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex);
3383 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3387 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3392 hres = IDispatchEx_GetDispID(dispex,
str, 0, &max_id);
3397 hres = IDispatchEx_GetDispID(dispex,
str, 0, &prop_id);
3401 dp_max.rgvarg = &
arg;
3422 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
3425 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3443 IActiveScript_Close(
script);
3451 IDispatchEx_Release(dispex);
3452 IActiveScript_Release(
script);
3458 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex);
3459 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3463 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3468 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
3471 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3476 hres = IDispatchEx_GetDispID(dispex,
str, 0, &prop_id);
3490 IDispatchEx_Release(dispex);
3491 IActiveScript_Release(
script);
3497 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex);
3498 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3502 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
3505 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3509 IDispatchEx_Release(dispex);
3510 IActiveScript_Release(
script);
3517 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex);
3518 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3522 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3536 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3552 IDispatchEx_Release(dispex);
3553 IActiveScript_Release(
script);
3557 L"this.prop1 = 6; this.prop2 = 9; }; var o = new c(); o.prop2 = 7; o",
3562 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex);
3563 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3567 hres = IDispatchEx_GetDispID(dispex,
str, 0, &prop_id);
3577 hres = IDispatchEx_GetDispID(dispex,
str, 0, &prop_id);
3587 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3594 ok(
V_I4(&
v) == 42,
"V_I4(v) = %s\n", wine_dbgstr_variant(&
v));
3596 IDispatchEx_Release(dispex);
3597 IActiveScript_Release(
script);
3604 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex);
3605 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3609 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameEnsure, &func_id);
3614 dp.cArgs = dp.cNamedArgs = 1;
3625 dp.cArgs = dp.cNamedArgs = 0;
3627 dp.rgdispidNamedArgs =
NULL;
3631 ok(
V_I4(&
v) == 42,
"V_I4(v) = %s\n", wine_dbgstr_variant(&
v));
3639 ok(
V_I4(&
v) == 137,
"V_I4(v) = %s\n", wine_dbgstr_variant(&
v));
3642 IDispatchEx_Release(dispex);
3643 IActiveScript_Release(
script);
3660 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex);
3661 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3665 hres = IDispatchEx_GetDispID(dispex,
str, 0, &func_id);
3670 hres = IDispatchEx_GetDispID(dispex,
str, 0, &prop_id);
3674 hres = IDispatchEx_GetMemberName(dispex, func_id, &
str);
3679 hres = IDispatchEx_GetMemberName(dispex, prop_id, &
str);
3684 propflags = 0xdeadbeef;
3685 hres = IDispatchEx_GetMemberProperties(dispex, func_id, 0, &propflags);
3687 ok(propflags == 0,
"propflags = %08lx", propflags);
3689 propflags = 0xdeadbeef;
3690 hres = IDispatchEx_GetMemberProperties(dispex, prop_id, 0, &propflags);
3692 ok(propflags == 0,
"propflags = %08lx", propflags);
3694 hres = IDispatchEx_DeleteMemberByDispID(dispex, func_id);
3697 hres = IDispatchEx_GetMemberName(dispex, func_id, &
str);
3699 hres = IDispatchEx_GetMemberProperties(dispex, func_id, 0, &propflags);
3702 hres = IDispatchEx_GetMemberName(dispex, prop_id, &
str);
3706 propflags = 0xdeadbeef;
3707 hres = IDispatchEx_GetMemberProperties(dispex, prop_id, 0, &propflags);
3709 ok(propflags == 0,
"propflags = %08lx", propflags);
3712 hres = IDispatchEx_DeleteMemberByName(dispex,
str, 0);
3716 hres = IDispatchEx_GetMemberName(dispex, prop_id, &
str);
3718 hres = IDispatchEx_GetMemberProperties(dispex, prop_id, 0, &propflags);
3721 IDispatchEx_Release(dispex);
3722 IActiveScript_Release(
script);
3727 static const WCHAR cyclic_refs[] =
L"(function() {\n"
3728 "var a = function() {}, c = { 'a': a, 'ref': Math }, b = { 'a': a, 'c': c };\n"
3729 "Math.ref = { 'obj': testDestrObj, 'ref': Math, 'a': a, 'b': b };\n"
3730 "a.ref = { 'ref': Math, 'a': a }; b.ref = Math.ref;\n"
3731 "a.self = a; b.self = b; c.self = c;\n"
3736 IActiveScriptParse *
parser;
3737 DISPPARAMS dp = { 0 };
3750 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
3753 IActiveScript_Release(
script);
3762 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
3765 IActiveScript_Release(
script);
3772 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&
parser);
3773 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
3784 IActiveScript_Release(
script);
3792 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&
parser);
3793 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
3801 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex);
3802 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3811 hres = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&dispex2);
3812 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3815 dp.cArgs = dp.cNamedArgs = 1;
3820 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameEnsure, &
id);
3830 hres = IDispatchEx_GetDispID(dispex2,
str, fdexNameEnsure, &
id);
3839 IDispatchEx_Release(dispex2);
3840 IDispatchEx_Release(dispex);
3851 IActiveScript_Release(script2);
3852 IActiveScript_Release(
script);
3857 IActiveScriptParse *
parser;
3869 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
3870 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
3879 hres = IActiveScript_AddNamedItem(engine,
L"testVal",
3880 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
3885 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
3891 hres = IDispatch_QueryInterface(
script_disp, &IID_IDispatchEx, (
void**)&script_dispex);
3892 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
3896 hres = IDispatchEx_GetDispID(script_dispex,
str, 0, &
id);
3922 hres = IDispatchEx_GetDispID(script_dispex,
str, 0, &v_id);
3939 L" ok(x === 5, 'x = ' + x);"
3946 hres = IDispatchEx_GetDispID(script_dispex,
str, 0, &
id);
3950 IDispatchEx_Release(script_dispex);
3967 {
L"var a = 1; reportSuccess();",
S_OK},
3968 {
L"\xfeffvar a = 1; reportSuccess();",
S_OK},
3970 {
L"var\xfeff a = 1; reportSuccess();",
S_OK},
3971 {
L"var a = 1; \xfeffreportSuccess();",
S_OK},
3973 {
L"var a = 1; reportSuccess\xfeff();",
S_OK},
3974 {
L"var a = 1; reportSuccess(\xfeff);",
S_OK},
3975 {
L"var a =\xfeff 1; reportSuccess(\xfeff);",
S_OK},
3976 {
L"\xfeffvar a =\xfeff\xfeff 1; reportSuccess(\xfeff);",
S_OK},
3982 for (
i = 0; bom_tests[
i].
str[0];
i++)
4014 win_skip(
"Could not create script\n");
4017 IActiveScript_Release(
script);
4056 run_script(
L"ok((delete testObj.deleteTest) === true, 'delete testObj.deleteTest did not return true');");
4060 run_script(
L"ok((delete testObj.noDeleteTest) === false, 'delete testObj.noDeleteTest did not return false');");
4065 run_script(
L"ok((delete testPropDelete) === true, 'delete testPropDelete did not return true');");
4071 run_script(
L"ok((delete testNoPropDelete) === false, 'delete testPropDelete did not return false');");
4083 run_script(
L"ok((delete pureDisp.prop) === false, 'delete pureDisp.prop did not return true');");
4087 run_script(
L"ok((delete pureDisp.noprop) === true, 'delete pureDisp.noprop did not return false');");
4095 run_script(
L"var t = {func: pureDisp}; t = t.func(false);");
4103 run_script(
L"var t = {func: dispexFunc}; t = t.func(false);");
4107 run_script(
L"Function.prototype.apply.call(dispexFunc, testObj, [true]);");
4111 run_script(
L"Function.prototype.apply.call(pureDisp, testObj, [true]);");
4116 run_script(
L"ok(typeof(test) === 'object', \"typeof(test) != 'object'\");");
4118 run_script(
L"function reportSuccess() {}; reportSuccess();");
4128 run_script(
L"var testPropGet; function testPropGet() {}");
4139 run_script(
L"(function () { var testPropGet; })();");
4140 run_script(
L"(function () { eval('var testPropGet;'); })();");
4143 run_script(
L"ok(propGetFunc() == 0, \"Incorrect propGetFunc value\");");
4145 run_script(
L"ok(propGetFunc(1) == 1, \"Incorrect propGetFunc value\");");
4146 run_script(
L"ok(propGetFunc(1, 2) == 2, \"Incorrect propGetFunc value\");");
4148 run_script(
L"ok(propGetFunc().toString() == 0, \"Incorrect propGetFunc value\");");
4150 run_script(
L"ok(propGetFunc(1).toString() == 1, \"Incorrect propGetFunc value\");");
4157 run_script(
L"(function() { var tmp = (function () { return testObj; })()(1);})();");
4158 run_script(
L"(function() { var tmp = (function () { return testObj; })()();})();");
4160 run_script(
L"ok((testObj instanceof Object) === false, 'testObj is instance of Object');");
4163 run_script(
L"ok(('prop' in testObj) === true, 'prop is not in testObj');");
4167 run_script(
L"ok(('noprop' in testObj) === false, 'noprop is in testObj');");
4171 run_script(
L"ok(Object.prototype.hasOwnProperty.call(testObj, 'prop') === true, 'hasOwnProperty(\\\"prop\\\") returned false');");
4175 run_script(
L"ok(Object.prototype.hasOwnProperty.call(testObj, 'noprop') === false, 'hasOwnProperty(\\\"noprop\\\") returned true');");
4179 run_script(
L"ok(Object.prototype.hasOwnProperty.call(pureDisp, 'prop') === true, 'hasOwnProperty(\\\"noprop\\\") returned false');");
4183 run_script(
L"ok(Object.prototype.hasOwnProperty.call(pureDisp, 'noprop') === false, 'hasOwnProperty(\\\"noprop\\\") returned true');");
4187 run_script(
L"ok(String(testObj) === '1', 'wrong testObj value');");
4191 run_script(
L"ok(String.prototype.concat.call(testObj, ' OK') === '1 OK', 'wrong concat result');");
4212 run_script(
L"(function () { this.testPropGet; })();");
4217 run_script(
L"(function () { testThis(this); })();");
4218 run_script(
L"function x() { testThis(this); }; x();");
4219 run_script(
L"var t = {func: function () { ok(this === t, 'this !== t'); }}; with(t) { func(); }");
4220 run_script(
L"function x() { testThis(this); }; with({y: 1}) { x(); }");
4221 run_script(
L"(function () { function x() { testThis(this);} x(); })();");
4225 run_script(
L"ok(typeof(testObj.onlyDispID) === 'unknown', 'unexpected typeof(testObj.onlyDispID)');");
4230 hres =
parse_script(SCRIPTITEM_GLOBALMEMBERS,
L"testObj.notExists = testObj.getIDFail;");
4237 hres =
parse_script(SCRIPTITEM_GLOBALMEMBERS,
L"testObj.getIDFail = testPropGet;");
4245 run_script(
L"var t=0; propArgPutG(t++, t++) = t++;");
4251 run_script(
L"var t=0; test.propArgPutO(t++, t++) = t++;");
4258 run_script(
L"var t=0; propArgPutOp(t++, t++) += t++;");
4266 run_script(
L"var t=0; propArgPutOp(t++, t++) ^= 14;");
4272 run_script(
L"testArgTypes(dispUnk, intProp(), intProp, getShort(), shortProp,"
4273 L"function(i1,ui1,ui2,r4,i4ref,ui4,nullunk,d,i,s) {"
4274 L" ok(getVT(i) === 'VT_I4', 'getVT(i) = ' + getVT(i));"
4275 L" ok(getVT(s) === 'VT_I4', 'getVT(s) = ' + getVT(s));"
4276 L" ok(getVT(d) === 'VT_DISPATCH', 'getVT(d) = ' + getVT(d));"
4277 L" ok(getVT(nullunk) === 'VT_DISPATCH', 'getVT(nullunk) = ' + getVT(nullunk));"
4278 L" ok(nullunk === null, 'nullunk !== null');"
4279 L" ok(getVT(ui4) === 'VT_R8', 'getVT(ui4) = ' + getVT(ui4));"
4280 L" ok(ui4 > 0, 'ui4 = ' + ui4);"
4281 L" ok(getVT(i4ref) === 'VT_I4', 'getVT(i4ref) = ' + getVT(i4ref));"
4282 L" ok(i4ref === 2, 'i4ref = ' + i4ref);"
4283 L" ok(r4 === 0.5, 'r4 = ' + r4);"
4284 L" ok(getVT(r4) === 'VT_R8', 'getVT(r4) = ' + getVT(r4));"
4285 L" ok(getVT(ui2) === 'VT_I4', 'getVT(ui2) = ' + getVT(ui2));"
4286 L" ok(getVT(ui1) === 'VT_I4', 'getVT(ui1) = ' + getVT(ui1));"
4287 L" ok(ui1 === 4, 'ui1 = ' + ui1);"
4288 L" ok(getVT(i1) === 'VT_I4', 'getVT(i1) = ' + getVT(i1));"
4289 L" ok(i1 === 5, 'i1 = ' + i1);"
4295 run_script(
L"var t = (function () { with(testObj) { return withProp; }})(); ok(t === 1, 't = ' + t);");
4301 run_script(
L"var t = [testObj].toLocaleString(); ok(t === '1234', 't = ' + t);");
4305 run_script(
L"@set @t=2\nok(@t === 2, '@t = ' + @t);");
4309 run_script(
L"@if(true)\nif(@_jscript) reportSuccess();\n@end");
4327 L" var testEnumObj = new Enumerator(testObj);"
4328 L" var tmp = testEnumObj.moveFirst();"
4329 L" ok(tmp == undefined, \"testEnumObj.moveFirst() = \" + tmp);"
4341 L" var testEnumObj = new Enumerator(testObj);"
4342 L" while (!testEnumObj.atEnd())"
4344 L" ok(testEnumObj.item() == 123, "
4345 L" \"testEnumObj.item() = \"+testEnumObj.item());"
4346 L" testEnumObj.moveNext();"
4379 ok(
hres !=
S_OK,
"ParseScriptText have not failed\n");
4396 DISPPARAMS dp = {
args};
4427 run_script(
L"#@~^EAAAAA==.\x7fwGMYUEm1+kd`*iAQYAAA==^#~@");
4440 run_script(
L"report#@~^BwAAAA==j!m^\x7f/k2QIAAA==^#~@();");
4447 run_script(
L"#@~^GQAAAA==@#@&d.\x7fwKDYUE1^+k/c#p@#@&OAYAAA==^#~@");
4484 IActiveScriptParse *
parser;
4494 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptParse, (
void**)&
parser);
4495 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
4497 IActiveScript_Release(engine);
4507 hres = IActiveScript_AddNamedItem(engine,
L"test",
4508 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE);
4512 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
4523 IActiveScript_Release(engine);
4530 trace(
"Running benchmarks...\n");
4543 &IID_IActiveScriptProperty, (
void**)&script_prop);
4546 IActiveScriptProperty_Release(script_prop);
4548 return parse_script(0,
L"if(!('localeCompare' in String.prototype)) throw 1;") ==
S_OK;
4561 win_skip(
"Broken engine, probably too old\n");
4562 }
else if(
argc > 2) {
4566 trace(
"invoke version 0\n");
4570 trace(
"invoke version 2\n");
4573 trace(
"JSctipt.Encode tests...\n");
4575 trace(
"ParseProcedureText tests...\n");
@ SCRIPTSTATE_INITIALIZED
@ SCRIPTSTATE_UNINITIALIZED
enum tagSCRIPTSTATE SCRIPTSTATE
int const char const *const int const line_number
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define CreateFileMappingW(a, b, c, d, e, f)
#define CreateFileA(a, b, c, d, e, f, g)
#define MultiByteToWideChar
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
LCID WINAPI GetUserDefaultLCID(void)
LANGID WINAPI GetUserDefaultLangID(void)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreate(VARTYPE vt, UINT cDims, SAFEARRAYBOUND *rgsabound)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static DISPID propput_dispid
#define todo_wine_if(is_todo)
static struct test_info tests[]
static void test_isvisible(void)
#define parse_script(p, s)
static void test_error_reports(void)
static BOOL check_jscript(void)
#define DISPID_GLOBAL_VDATE
static HRESULT WINAPI testObj_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex)
static HRESULT WINAPI pureDisp_GetIDsOfNames(IDispatchEx *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
#define test_grfdex(a, b)
static BOOL run_tests(void)
static void test_invokeex(void)
#define DISPID_GLOBAL_NULL_DISP
#define DISPID_GLOBAL_INTPROP
#define DISPID_GLOBAL_PROPARGPUTOP
static HRESULT WINAPI pureDisp_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv)
static void test_eval(void)
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
static ULONG WINAPI testDestrObj_Release(IDispatchEx *iface)
#define JS_E_INVALID_CHAR
static HRESULT WINAPI testObj_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
static ULONG WINAPI sp_AddRef(IServiceProvider *iface)
#define DISPID_GLOBAL_OBJECT_FLAG
static HRESULT WINAPI bindEventHandlerDisp_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv)
static HRESULT WINAPI BindEventHandler_QueryInterface(IBindEventHandler *iface, REFIID riid, void **ppv)
#define DISPID_GLOBAL_TESTTHIS2
#define DISPID_GLOBAL_ISWIN64
static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *res, EXCEPINFO *pei, IServiceProvider *pspCaller)
static const IActiveScriptSiteVtbl ActiveScriptSite_CheckErrorVtbl
static IDispatchEx testDestrObj
static const IServiceProviderVtbl sp_vtbl
static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
#define DISPID_GLOBAL_TESTPROPPUTREF
static HRESULT WINAPI EnumVARIANT_Skip(IEnumVARIANT *This, ULONG celt)
#define ERROR_TODO_DESCRIPTION
static ULONG WINAPI sp_Release(IServiceProvider *iface)
#define JS_E_OBJECT_EXPECTED
static HRESULT WINAPI sp_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
static HRESULT WINAPI DispatchEx_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex)
static ULONG WINAPI DispatchEx_Release(IDispatchEx *iface)
#define JS_E_MISSING_RBRACKET
static void _run_script(unsigned line, const WCHAR *src)
static HRESULT WINAPI DispatchEx_GetIDsOfNames(IDispatchEx *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static const CLSID CLSID_JScript
static IActiveScript * script_engine
#define JS_E_SUBSCRIPT_OUT_OF_RANGE
static HRESULT WINAPI DispatchEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID id)
static ULONG WINAPI EnumVARIANT_Release(IEnumVARIANT *iface)
#define DISPID_GLOBAL_TESTNOPROPDELETE
static HRESULT WINAPI DispatchEx_GetNameSpaceParent(IDispatchEx *iface, IUnknown **ppunk)
static HRESULT WINAPI pureDisp_Invoke(IDispatchEx *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *res, EXCEPINFO *ei, UINT *puArgErr)
static IDispatchExVtbl pureDispVtbl
static IDispatchExVtbl GlobalVtbl
static HRESULT WINAPI DispatchEx_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid)
#define JS_E_OUT_OF_MEMORY
#define DISPID_GLOBAL_DISPEXFUNC
#define DISPID_GLOBAL_TESTRES
static IDispatchEx pureDisp
static HRESULT WINAPI DispatchEx_Invoke(IDispatchEx *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
#define IActiveScriptParseProcedure2_ParseProcedureText
static IServiceProvider sp_obj
#define CHECK_EXPECT(func)
#define JS_E_MISPLACED_RETURN
static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti)
static HRESULT parse_script_expr(const WCHAR *expr, VARIANT *res, IActiveScript **engine_ret)
#define DISPID_TESTOBJ_TOLOCALESTR
#define DISPID_TESTOBJ_WITHPROP
static HRESULT WINAPI EnumVARIANT_Clone(IEnumVARIANT *This, IEnumVARIANT **ppEnum)
#define DEFINE_EXPECT(func)
static HRESULT WINAPI DispatchEx_GetMemberName(IDispatchEx *iface, DISPID id, BSTR *pbstrName)
static HRESULT WINAPI testObj_Invoke(IDispatchEx *iface, DISPID id, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, UINT *puArgErr)
#define IActiveScriptParse_InitNew
#define DISPID_GLOBAL_REPORTSUCCESS
static BOOL is_lang_english(void)
static HRESULT WINAPI EnumVARIANT_QueryInterface(IEnumVARIANT *iface, REFIID riid, void **ppv)
#define DISPID_GLOBAL_THROWINT
#define IActiveScriptParse_ParseScriptText
#define DISPID_GLOBAL_TESTOBJ
#define IActiveScriptParseProcedure2_Release
static void test_number_localization(void)
static HRESULT invoke_procedure(const WCHAR *args, const WCHAR *source, DISPPARAMS *dp)
#define DISPID_GLOBAL_THROWEI
#define DISPID_TESTOBJ_PROP
#define IActiveScriptParse_Release
static HRESULT WINAPI EnumVARIANT_Reset(IEnumVARIANT *This)
#define DISPID_GLOBAL_TESTARGTYPES
#define DISPID_GLOBAL_TRACE
static void test_parse_proc(void)
static IDispatchExVtbl testcallerobj_vtbl
#define DISPID_GLOBAL_CREATEARRAY
static ULONG WINAPI testDestrObj_AddRef(IDispatchEx *iface)
static IDispatchExVtbl bindEventHandlerDispVtbl
static IDispatchEx dispexFunc
#define DISPID_GLOBAL_PUREDISP
#define DISPID_GLOBAL_TESTPROPGET
#define DISPID_GLOBAL_SHORTPROP
static void test_destructors(void)
#define DISPID_GLOBAL_TESTPROPDELETE
static HRESULT WINAPI DispatchEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid)
static IBindEventHandler BindEventHandler
#define DISPID_GLOBAL_TESTTHIS
static HRESULT WINAPI Global_DeleteMemberByDispID(IDispatchEx *iface, DISPID id)
static IDispatch * script_disp
static void close_script(IActiveScript *script)
static IDispatchEx testcallerobj
static HRESULT WINAPI DispatchEx_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv)
static HRESULT WINAPI dispexFunc_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *res, EXCEPINFO *pei, IServiceProvider *pspCaller)
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **ppv)
static void run_from_res(const char *name)
static void run_benchmarks(void)
#define DISPID_GLOBAL_TESTPROPPUT
#define DISPID_GLOBAL_TESTNORES
static int EnumVARIANT_next_0_count
static HRESULT CALLBACK test_deferred_fill_in(struct tagEXCEPINFO *ei)
static IEnumVARIANT testEnumVARIANT
static IDispatchEx bindEventHandlerDisp
static void _test_grfdex(unsigned line, DWORD grfdex, DWORD expect)
static IActiveScriptSite ActiveScriptSite_CheckError
static void test_retval(void)
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
#define DISPID_GLOBAL_VCY
static HRESULT WINAPI EnumVARIANT_Next(IEnumVARIANT *This, ULONG celt, VARIANT *rgVar, ULONG *pCeltFetched)
static int invoke_version
static ULONG WINAPI DispatchEx_AddRef(IDispatchEx *iface)
#define DISPID_GLOBAL_GETVT
static void test_script_exprs(void)
#define DISPID_GLOBAL_TODOWINE
static IEnumVARIANTVtbl testEnumVARIANTVtbl
static HRESULT WINAPI ActiveScriptSite_OnScriptError_CheckError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
#define DISPID_GLOBAL_TESTDESTROBJ
#define CHECK_CALLED(func)
#define DISPID_GLOBAL_PROPGETFUNC
static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface)
static const char * test_name
static HRESULT WINAPI testObj_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid)
static const CLSID CLSID_JScriptEncode
static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate(IActiveScriptSite *iface, const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
static HRESULT WINAPI testcallerobj_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
static void run_encoded_tests(void)
#define DISPID_GLOBAL_PROPARGPUT
#define DISPID_GLOBAL_BINDEVENTHANDLER
static int EnumVARIANT_index
#define JS_E_UNDEFINED_VARIABLE
#define DISPID_GLOBAL_TESTENUMOBJ
static void run_benchmark(const char *script_name)
static BSTR load_res(const char *name)
#define DISPID_GLOBAL_GETSHORT
static ULONG WINAPI EnumVARIANT_AddRef(IEnumVARIANT *iface)
static IDispatchExVtbl dispexFuncVtbl
#define ERROR_TODO_HELPFILE
static void run_from_file(const char *filename)
#define DISPID_GLOBAL_DISPUNK
static void test_default_value(void)
static const CLSID * engine_clsid
static LONG test_destr_ref
static const IBindEventHandlerVtbl BindEventHandlerVtbl
static HRESULT WINAPI DispatchEx_GetTypeInfo(IDispatchEx *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
#define DISPID_GLOBAL_CALLEVAL
static HRESULT WINAPI sp_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
static void test_propputref(void)
static IDispatchExVtbl testDestrObjVtbl
static ULONG WINAPI BindEventHandler_Release(IBindEventHandler *iface)
static IActiveScriptError * script_error
static IDispatchEx testObj
#define JS_E_EXCEPTION_THROWN
static const IActiveScriptSiteVtbl ActiveScriptSiteVtbl
static HRESULT WINAPI Global_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex)
static BSTR get_script_from_file(const char *filename)
#define DISPID_GLOBAL_TESTPROPDELETEERROR
static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
static HRESULT WINAPI BindEventHandler_BindHandler(IBindEventHandler *iface, const WCHAR *event, IDispatch *disp)
static IActiveScript * create_script(void)
static HRESULT set_script_prop(IActiveScript *engine, DWORD property, VARIANT *val)
#define DISPID_GLOBAL_GETSCRIPTSTATE
#define DISPID_GLOBAL_INVOKEVERSION
#define JS_E_INVALID_ACTION
#define DISPID_GLOBAL_GETNULLBSTR
static IDispatchEx Global
static void run_bom_tests(void)
static IActiveScriptSite ActiveScriptSite
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
#define DISPID_TESTOBJ_ONLYDISPID
static HRESULT WINAPI DispatchEx_GetTypeInfoCount(IDispatchEx *iface, UINT *pctinfo)
static IDispatchExVtbl testObjVtbl
static void test_members(void)
#define DISPID_GLOBAL_ISNULLBSTR
static void test_automagic(void)
static BOOL strict_dispid_check
static HRESULT WINAPI Global_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid)
static void test_start(void)
static ULONG WINAPI BindEventHandler_AddRef(IBindEventHandler *iface)
static HINSTANCE hkernel32
static VARIANTARG static DISPID
#define parse_htmlscript(a)
static const char * script_name
#define FILE_ATTRIBUTE_READONLY
#define MAKELCID(lgid, srtid)
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define DISPATCH_PROPERTYPUT
#define DISPATCH_PROPERTYGET
#define DISPATCH_PROPERTYPUTREF
#define IsEqualGUID(rguid1, rguid2)
#define SUBLANG_ENGLISH_US
static __inline const char * wine_dbgstr_guid(const GUID *id)
int winetest_get_mainargs(char ***pargv)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
DWORD WINAPI GetLastError(void)
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define DISP_E_MEMBERNOTFOUND
#define DISP_E_UNKNOWNNAME