jscript: Added NaN value implementation.
This commit is contained in:
parent
ad1c1c6107
commit
53ade93cd9
|
@ -108,8 +108,19 @@ static HRESULT constructor_call(DispatchEx *constr, LCID lcid, WORD flags, DISPP
|
||||||
static HRESULT JSGlobal_NaN(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
|
static HRESULT JSGlobal_NaN(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
|
||||||
VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp)
|
VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
TRACE("\n");
|
||||||
return E_NOTIMPL;
|
|
||||||
|
switch(flags) {
|
||||||
|
case DISPATCH_PROPERTYGET:
|
||||||
|
num_set_nan(retv);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
FIXME("unimplemented flags %x\n", flags);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT JSGlobal_Infinity(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
|
static HRESULT JSGlobal_Infinity(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
|
||||||
|
|
|
@ -242,6 +242,16 @@ static inline void num_set_val(VARIANT *v, DOUBLE d)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void num_set_nan(VARIANT *v)
|
||||||
|
{
|
||||||
|
V_VT(v) = VT_R8;
|
||||||
|
#ifdef NAN
|
||||||
|
V_R8(v) = NAN;
|
||||||
|
#else
|
||||||
|
V_UI8(v) = (ULONGLONG)0x7ff80000<<32;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
const char *debugstr_variant(const VARIANT*);
|
const char *debugstr_variant(const VARIANT*);
|
||||||
|
|
||||||
HRESULT WINAPI JScriptFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**);
|
HRESULT WINAPI JScriptFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**);
|
||||||
|
|
|
@ -785,7 +785,10 @@ if (true)
|
||||||
else
|
else
|
||||||
ok(true, "else should be associated with nearest if statement");
|
ok(true, "else should be associated with nearest if statement");
|
||||||
|
|
||||||
|
ok(isNaN(NaN) === true, "isNaN(NaN) !== true");
|
||||||
ok(isNaN(0.5) === false, "isNaN(0.5) !== false");
|
ok(isNaN(0.5) === false, "isNaN(0.5) !== false");
|
||||||
ok(isNaN() === true, "isNaN() !== true");
|
ok(isNaN() === true, "isNaN() !== true");
|
||||||
|
ok(isNaN(NaN, 0) === true, "isNaN(NaN, 0) !== true");
|
||||||
|
ok(isNaN(0.5, NaN) === false, "isNaN(0.5, NaN) !== false");
|
||||||
|
|
||||||
reportSuccess();
|
reportSuccess();
|
||||||
|
|
Loading…
Reference in New Issue