vbscript: Added interp_or implementation.

This commit is contained in:
Jacek Caban 2011-09-14 12:59:37 +02:00 committed by Alexandre Julliard
parent fae7352f93
commit 4916c1b26c
2 changed files with 26 additions and 2 deletions

View File

@ -590,8 +590,26 @@ static HRESULT interp_and(exec_ctx_t *ctx)
static HRESULT interp_or(exec_ctx_t *ctx) static HRESULT interp_or(exec_ctx_t *ctx)
{ {
FIXME("\n"); variant_val_t r, l;
return E_NOTIMPL; 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 = VarOr(l.v, r.v, &v);
release_val(&l);
}
release_val(&r);
if(FAILED(hres))
return hres;
return stack_push(ctx, &v);
} }
static HRESULT cmp_oper(exec_ctx_t *ctx) static HRESULT cmp_oper(exec_ctx_t *ctx)

View File

@ -91,6 +91,12 @@ call ok(true and not false, "true and not false is not true")
call ok(not (false and true), "not (false and true) is not true") call ok(not (false and true), "not (false and true) is not true")
call ok(getVT(null and true) = "VT_NULL", "getVT(null and true) = " & getVT(null and true)) call ok(getVT(null and true) = "VT_NULL", "getVT(null and true) = " & getVT(null and true))
call ok(false or true, "false or uie is false?")
call ok(not (false or false), "false or false is not false?")
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")
x = 3 x = 3
Call ok(2+2 = 4, "2+2 = " & (2+2)) Call ok(2+2 = 4, "2+2 = " & (2+2))
Call ok(false + 6 + true = 5, "false + 6 + true <> 5") Call ok(false + 6 + true = 5, "false + 6 + true <> 5")