Jacek Caban : jscript: Added support for SCRIPTTEXT_ISEXPRESSION.

Alexandre Julliard julliard at winehq.org
Wed Dec 12 15:14:55 CST 2012


Module: wine
Branch: master
Commit: 5e4a16819ef3e29757d54a536e436cdb18981fee
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5e4a16819ef3e29757d54a536e436cdb18981fee

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Dec 12 13:12:17 2012 +0100

jscript: Added support for SCRIPTTEXT_ISEXPRESSION.

---

 dlls/jscript/jscript.c |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/dlls/jscript/jscript.c b/dlls/jscript/jscript.c
index 16deac4..f7032bb 100644
--- a/dlls/jscript/jscript.c
+++ b/dlls/jscript/jscript.c
@@ -766,10 +766,34 @@ static HRESULT WINAPI JScriptParse_ParseScriptText(IActiveScriptParse *iface,
     if(This->thread_id != GetCurrentThreadId() || This->ctx->state == SCRIPTSTATE_CLOSED)
         return E_UNEXPECTED;
 
-    hres = compile_script(This->ctx, pstrCode, NULL, pstrDelimiter, FALSE, This->is_encode, &code);
+    hres = compile_script(This->ctx, pstrCode, NULL, pstrDelimiter, (dwFlags & SCRIPTTEXT_ISEXPRESSION) != 0,
+            This->is_encode, &code);
     if(FAILED(hres))
         return hres;
 
+    if(dwFlags & SCRIPTTEXT_ISEXPRESSION) {
+        exec_ctx_t *exec_ctx;
+
+        hres = create_exec_ctx(This->ctx, NULL, This->ctx->global, NULL, TRUE, &exec_ctx);
+        if(SUCCEEDED(hres)) {
+            jsval_t r;
+
+            IActiveScriptSite_OnEnterScript(This->site);
+
+            clear_ei(This->ctx);
+            hres = exec_source(exec_ctx, code, &code->global_code, TRUE, &r);
+            if(SUCCEEDED(hres)) {
+                hres = jsval_to_variant(r, pvarResult);
+                jsval_release(r);
+            }
+            exec_release(exec_ctx);
+
+            IActiveScriptSite_OnLeaveScript(This->site);
+        }
+
+        return hres;
+    }
+
     if(!is_started(This->ctx)) {
         if(This->queue_tail)
             This->queue_tail = This->queue_tail->next = code;




More information about the wine-cvs mailing list