Jacek Caban : jscript: Use already running interpreter for execution new expressions.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Mar 30 10:00:30 CDT 2016


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Mar 29 17:49:19 2016 +0200

jscript: Use already running interpreter for execution new expressions.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/jscript/engine.c   | 3 +--
 dlls/jscript/function.c | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c
index 1bbc2ba..74cef15 100644
--- a/dlls/jscript/engine.c
+++ b/dlls/jscript/engine.c
@@ -963,7 +963,7 @@ static HRESULT interp_new(script_ctx_t *ctx)
         return throw_type_error(ctx, JS_E_INVALID_PROPERTY, NULL);
 
     clear_ret(frame);
-    return disp_call_value(ctx, get_object(constr), NULL, DISPATCH_CONSTRUCT,
+    return disp_call_value(ctx, get_object(constr), NULL, DISPATCH_CONSTRUCT | DISPATCH_JSCRIPT_CALLEREXECSSOURCE,
                            argc, stack_args(ctx, argc), &frame->ret);
 }
 
@@ -2604,7 +2604,6 @@ HRESULT exec_source(script_ctx_t *ctx, DWORD flags, bytecode_t *bytecode, functi
     frame->ip = function->instr_off;
     frame->stack_base = ctx->stack_top;
     frame->ret = jsval_undefined();
-
     if(scope)
         frame->base_scope = frame->scope = scope_addref(scope);
 
diff --git a/dlls/jscript/function.c b/dlls/jscript/function.c
index 55a34e1..617d835 100644
--- a/dlls/jscript/function.c
+++ b/dlls/jscript/function.c
@@ -334,7 +334,7 @@ HRESULT Function_invoke(jsdisp_t *func_this, IDispatch *jsthis, WORD flags, unsi
         if(FAILED(hres))
             return hres;
 
-        hres = invoke_source(function->dispex.ctx, function, to_disp(this_obj), argc, argv, TRUE, FALSE, r);
+        hres = invoke_source(function->dispex.ctx, function, to_disp(this_obj), argc, argv, TRUE, caller_execs_source, r);
         jsdisp_release(this_obj);
         return hres;
     }




More information about the wine-cvs mailing list