vbscript: Added interp_xor implementation.

This commit is contained in:
Jacek Caban 2011-09-14 13:00:02 +02:00 committed by Alexandre Julliard
parent 43d10693ca
commit f17b35fdeb
2 changed files with 25 additions and 2 deletions

View File

@ -614,8 +614,26 @@ static HRESULT interp_or(exec_ctx_t *ctx)
static HRESULT interp_xor(exec_ctx_t *ctx)
{
FIXME("\n");
return E_NOTIMPL;
variant_val_t r, l;
VARIANT v;
HRESULT hres;
TRACE("\n");
hres = stack_pop_val(ctx, &r);
if(FAILED(hres))
return hres;
hres = stack_pop_val(ctx, &l);
if(SUCCEEDED(hres)) {
hres = VarXor(l.v, r.v, &v);
release_val(&l);
}
release_val(&r);
if(FAILED(hres))
return hres;
return stack_push(ctx, &v);
}
static HRESULT interp_eqv(exec_ctx_t *ctx)

View File

@ -97,6 +97,11 @@ call ok(false and false or true, "false and false or true is false?")
call ok(true or false and false, "true or false and false is false?")
call ok(null or true, "null or true is false")
call ok(true xor false, "true xor false is false?")
call ok(not (false xor false), "false xor false is true?")
call ok(not (true or false xor true), "true or false xor true is true?")
call ok(not (true xor false or true), "true xor false or true is true?")
x = 3
Call ok(2+2 = 4, "2+2 = " & (2+2))
Call ok(false + 6 + true = 5, "false + 6 + true <> 5")