From 47b842bff7f93ac65b60230b506e4cf683c18817 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Thu, 2 Oct 2008 16:22:27 +0200 Subject: [PATCH] jscript: Don't initialize variables without initialiser to undefined in variable_list_eval. --- dlls/jscript/engine.c | 24 +++++++++++------------- dlls/jscript/tests/lang.js | 2 ++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index 212ad104474..d84e65b518b 100644 --- a/dlls/jscript/engine.c +++ b/dlls/jscript/engine.c @@ -517,25 +517,23 @@ HRESULT block_statement_eval(exec_ctx_t *ctx, statement_t *_stat, return_type_t static HRESULT variable_list_eval(exec_ctx_t *ctx, variable_declaration_t *var_list, jsexcept_t *ei) { variable_declaration_t *iter; - HRESULT hres = E_FAIL; + HRESULT hres = S_OK; for(iter = var_list; iter; iter = iter->next) { + exprval_t exprval; VARIANT val; - if(iter->expr) { - exprval_t exprval; + if(!iter->expr) + continue; - hres = expr_eval(ctx, iter->expr, 0, ei, &exprval); - if(FAILED(hres)) - break; + hres = expr_eval(ctx, iter->expr, 0, ei, &exprval); + if(FAILED(hres)) + break; - hres = exprval_to_value(ctx->parser->script, &exprval, ei, &val); - exprval_release(&exprval); - if(FAILED(hres)) - break; - }else { - V_VT(&val) = VT_EMPTY; - } + hres = exprval_to_value(ctx->parser->script, &exprval, ei, &val); + exprval_release(&exprval); + if(FAILED(hres)) + break; hres = jsdisp_propput_name(ctx->var_disp, iter->identifier, ctx->parser->script->lcid, &val, ei, NULL/*FIXME*/); VariantClear(&val); diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js index f7ae2be7dce..d9c3689ea8f 100644 --- a/dlls/jscript/tests/lang.js +++ b/dlls/jscript/tests/lang.js @@ -741,6 +741,8 @@ function varTestFunc(varTest3) { var varTest4; } +varTestFunc(3); + deleteTest = 1; delete deleteTest; try { -- 2.11.4.GIT