From d7c8c2544d82d550459ff28cad2b1b64cf39227b Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Tue, 9 Sep 2008 01:26:37 +0200 Subject: [PATCH] jscript: Added '!==' expression implementation. --- dlls/jscript/engine.c | 21 ++++++++++++++++++--- dlls/jscript/tests/lang.js | 3 +++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index 8f66b3dac08..2a986438331 100644 --- a/dlls/jscript/engine.c +++ b/dlls/jscript/engine.c @@ -976,10 +976,25 @@ HRESULT not_equal_expression_eval(exec_ctx_t *ctx, expression_t *_expr, DWORD fl return E_NOTIMPL; } -HRESULT not_equal2_expression_eval(exec_ctx_t *ctx, expression_t *expr, DWORD flags, jsexcept_t *ei, exprval_t *ret) +/* ECMA-262 3rd Edition 11.9.5 */ +HRESULT not_equal2_expression_eval(exec_ctx_t *ctx, expression_t *_expr, DWORD flags, jsexcept_t *ei, exprval_t *ret) { - FIXME("\n"); - return E_NOTIMPL; + binary_expression_t *expr = (binary_expression_t*)_expr; + VARIANT rval, lval; + BOOL b; + HRESULT hres; + + TRACE("\n"); + + hres = get_binary_expr_values(ctx, expr, ei, &rval, &lval); + if(FAILED(hres)) + return hres; + + hres = equal2_values(&rval, &lval, &b); + if(FAILED(hres)) + return hres; + + return return_bool(ret, !b); } HRESULT less_expression_eval(exec_ctx_t *ctx, expression_t *expr, DWORD flags, jsexcept_t *ei, exprval_t *ret) diff --git a/dlls/jscript/tests/lang.js b/dlls/jscript/tests/lang.js index 61d108f7ea3..92bf7798e9b 100644 --- a/dlls/jscript/tests/lang.js +++ b/dlls/jscript/tests/lang.js @@ -32,6 +32,9 @@ ok(null === null, "null === null is false"); ok(undefined === undefined, "undefined === undefined is false"); ok(!(undefined === null), "!(undefined === null) is false"); +ok(1 !== 2, "1 !== 2 is false"); +ok(null !== undefined, "null !== undefined is false"); + var trueVar = true; ok(trueVar, "trueVar is not true");