Jacek Caban : jscript: Clear SCRIPTITEM_CODEONLY flag on script re-initialization.

Alexandre Julliard julliard at winehq.org
Fri Mar 27 16:14:39 CDT 2020


Module: wine
Branch: master
Commit: 99929c0896a94855902a3dad20d56ed539245836
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=99929c0896a94855902a3dad20d56ed539245836

Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);
 




More information about the wine-cvs mailing list