Module: wine Branch: master Commit: 99929c0896a94855902a3dad20d56ed539245836 URL: https://source.winehq.org/git/wine.git/?a=commit;h=99929c0896a94855902a3dad2...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Mar 27 18:34:56 2020 +0100
jscript: Clear SCRIPTITEM_CODEONLY flag on script re-initialization.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/jscript.c | 3 +++ dlls/jscript/tests/jscript.c | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/jscript/jscript.c b/dlls/jscript/jscript.c index 3fcaab0858..8e729a0432 100644 --- a/dlls/jscript/jscript.c +++ b/dlls/jscript/jscript.c @@ -757,6 +757,9 @@ static HRESULT WINAPI JScript_SetScriptSite(IActiveScript *iface, hres = retrieve_named_item_disp(pass, item); if(FAILED(hres)) return hres; } + + /* For some reason, CODEONLY flag is lost in re-initialized scripts */ + item->flags &= ~SCRIPTITEM_CODEONLY; }
This->site = pass; diff --git a/dlls/jscript/tests/jscript.c b/dlls/jscript/tests/jscript.c index a9f128ffc0..c1b83d4779 100644 --- a/dlls/jscript/tests/jscript.c +++ b/dlls/jscript/tests/jscript.c @@ -1599,7 +1599,7 @@ static void test_named_items(void) CHECK_CALLED(OnStateChange_CONNECTED); CHECK_CALLED_MULTI(OnEnterScript, 5); CHECK_CALLED_MULTI(OnLeaveScript, 5); - todo_wine CHECK_CALLED(GetIDsOfNames_persistent); + CHECK_CALLED(GetIDsOfNames_persistent); test_state(script, SCRIPTSTATE_CONNECTED);
dispex2 = get_script_dispatch(script, L"persistent"); @@ -1619,7 +1619,6 @@ static void test_named_items(void) SET_EXPECT(OnLeaveScript); hr = IActiveScriptParse_ParseScriptText(parse, L"this", L"persistent", NULL, NULL, 0, 0, SCRIPTTEXT_ISEXPRESSION, &var, NULL); ok(hr == S_OK, "ParseScriptText failed: %08x\n", hr); - todo_wine ok(V_VT(&var) == VT_DISPATCH && V_DISPATCH(&var) == &persistent_named_item, "Unexpected 'this': V_VT = %d, V_DISPATCH = %p\n", V_VT(&var), V_DISPATCH(&var)); VariantClear(&var); @@ -1634,7 +1633,6 @@ static void test_named_items(void) ok(hr == S_OK, "ParseScriptText failed: %08x\n", hr); CHECK_CALLED(OnEnterScript); CHECK_CALLED(OnLeaveScript); - todo_wine CHECK_CALLED(GetIDsOfNames_persistent);
SET_EXPECT(OnEnterScript); @@ -1645,7 +1643,6 @@ static void test_named_items(void) ok(FAILED(hr), "ParseScriptText returned: %08x\n", hr); CHECK_CALLED(OnEnterScript); CHECK_CALLED(OnLeaveScript); - todo_wine CHECK_CALLED(GetIDsOfNames_persistent); CHECK_CALLED(OnScriptError);