vbscript: Added interpreter support for numeric literals.
This commit is contained in:
parent
880d706636
commit
66d3dd4b7e
|
@ -253,20 +253,38 @@ static HRESULT interp_string(exec_ctx_t *ctx)
|
||||||
|
|
||||||
static HRESULT interp_long(exec_ctx_t *ctx)
|
static HRESULT interp_long(exec_ctx_t *ctx)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
const LONG arg = ctx->instr->arg1.lng;
|
||||||
return E_NOTIMPL;
|
VARIANT v;
|
||||||
|
|
||||||
|
TRACE("%d\n", arg);
|
||||||
|
|
||||||
|
V_VT(&v) = VT_I4;
|
||||||
|
V_I4(&v) = arg;
|
||||||
|
return stack_push(ctx, &v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT interp_short(exec_ctx_t *ctx)
|
static HRESULT interp_short(exec_ctx_t *ctx)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
const LONG arg = ctx->instr->arg1.lng;
|
||||||
return E_NOTIMPL;
|
VARIANT v;
|
||||||
|
|
||||||
|
TRACE("%d\n", arg);
|
||||||
|
|
||||||
|
V_VT(&v) = VT_I2;
|
||||||
|
V_I2(&v) = arg;
|
||||||
|
return stack_push(ctx, &v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT interp_double(exec_ctx_t *ctx)
|
static HRESULT interp_double(exec_ctx_t *ctx)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
const DOUBLE *arg = ctx->instr->arg1.dbl;
|
||||||
return E_NOTIMPL;
|
VARIANT v;
|
||||||
|
|
||||||
|
TRACE("%lf\n", *arg);
|
||||||
|
|
||||||
|
V_VT(&v) = VT_R8;
|
||||||
|
V_R8(&v) = *arg;
|
||||||
|
return stack_push(ctx, &v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT interp_empty(exec_ctx_t *ctx)
|
static HRESULT interp_empty(exec_ctx_t *ctx)
|
||||||
|
|
|
@ -38,5 +38,11 @@ Call ok(getVT("") = "VT_BSTR", "getVT("""") is not VT_BSTR")
|
||||||
Call ok(getVT("test") = "VT_BSTR", "getVT(""test"") is not VT_BSTR")
|
Call ok(getVT("test") = "VT_BSTR", "getVT(""test"") is not VT_BSTR")
|
||||||
Call ok(getVT(Empty) = "VT_EMPTY", "getVT(Empty) is not VT_EMPTY")
|
Call ok(getVT(Empty) = "VT_EMPTY", "getVT(Empty) is not VT_EMPTY")
|
||||||
Call ok(getVT(null) = "VT_NULL", "getVT(null) is not VT_NULL")
|
Call ok(getVT(null) = "VT_NULL", "getVT(null) is not VT_NULL")
|
||||||
|
Call ok(getVT(0) = "VT_I2", "getVT(0) is not VT_I2")
|
||||||
|
Call ok(getVT(1) = "VT_I2", "getVT(1) is not VT_I2")
|
||||||
|
Call ok(getVT(0.5) = "VT_R8", "getVT(0.5) is not VT_R8")
|
||||||
|
Call ok(getVT(0.0) = "VT_R8", "getVT(0.0) is not VT_R8")
|
||||||
|
Call ok(getVT(2147483647) = "VT_I4", "getVT(2147483647) is not VT_I4")
|
||||||
|
Call ok(getVT(2147483648) = "VT_R8", "getVT(2147483648) is not VT_R8")
|
||||||
|
|
||||||
reportSuccess()
|
reportSuccess()
|
||||||
|
|
Loading…
Reference in New Issue