Module: wine Branch: master Commit: 609e9de65c74233644fd6f9588122bdfc8c64d61 URL: https://source.winehq.org/git/wine.git/?a=commit;h=609e9de65c74233644fd6f958...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Apr 21 17:23:06 2021 +0200
jscript: Introduce INVALID_LOCAL_REF.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/jscript/compile.c | 1 + dlls/jscript/engine.c | 2 +- dlls/jscript/engine.h | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/jscript/compile.c b/dlls/jscript/compile.c index 08a5e3af64b..717ae00d053 100644 --- a/dlls/jscript/compile.c +++ b/dlls/jscript/compile.c @@ -2314,6 +2314,7 @@ static HRESULT compile_function(compiler_ctx_t *ctx, source_elements_t *source, TRACE("\n");
func->bytecode = ctx->code; + func->local_ref = INVALID_LOCAL_REF; ctx->func_head = ctx->func_tail = NULL; ctx->from_eval = from_eval; ctx->func = func; diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index f3d9d694b2a..e0a6e10e98b 100644 --- a/dlls/jscript/engine.c +++ b/dlls/jscript/engine.c @@ -3039,7 +3039,7 @@ static HRESULT setup_scope(script_ctx_t *ctx, call_frame_t *frame, scope_chain_t }
for(i = 0; i < frame->function->func_cnt; i++) { - if(frame->function->funcs[i].name && !frame->function->funcs[i].event_target) { + if(frame->function->funcs[i].local_ref != INVALID_LOCAL_REF) { jsdisp_t *func_obj; unsigned off;
diff --git a/dlls/jscript/engine.h b/dlls/jscript/engine.h index 483c32232c1..442e7334c41 100644 --- a/dlls/jscript/engine.h +++ b/dlls/jscript/engine.h @@ -145,6 +145,8 @@ typedef struct { int ref; } local_ref_t;
+#define INVALID_LOCAL_REF 0x7fffffff + typedef struct _function_code_t { BSTR name; int local_ref;