Module: wine Branch: master Commit: 47b842bff7f93ac65b60230b506e4cf683c18817 URL: http://source.winehq.org/git/wine.git/?a=commit;h=47b842bff7f93ac65b60230b50...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Oct 2 16:22:27 2008 +0200
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 212ad10..d84e65b 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 f7ae2be..d9c3689 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 {