Module: wine Branch: master Commit: 5e4a16819ef3e29757d54a536e436cdb18981fee URL: http://source.winehq.org/git/wine.git/?a=commit;h=5e4a16819ef3e29757d54a536e...
Author: Jacek Caban jacek@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;