jscript: Added isNaN implementation.

This commit is contained in:
Jacek Caban 2008-10-14 16:07:01 -05:00 committed by Alexandre Julliard
parent 1715dcbb19
commit 88c12282e3
2 changed files with 30 additions and 2 deletions

View File

@ -16,6 +16,11 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include "wine/port.h"
#include <math.h>
#include "jscript.h"
#include "engine.h"
@ -252,8 +257,28 @@ static HRESULT JSGlobal_eval(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARA
static HRESULT JSGlobal_isNaN(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp)
{
FIXME("\n");
return E_NOTIMPL;
VARIANT_BOOL ret = VARIANT_FALSE;
VARIANT num;
HRESULT hres;
TRACE("\n");
if(arg_cnt(dp)) {
hres = to_number(dispex->ctx, get_arg(dp,0), ei, &num);
if(FAILED(hres))
return hres;
if(V_VT(&num) == VT_R8 && isnan(V_R8(&num)))
ret = VARIANT_TRUE;
}else {
ret = VARIANT_TRUE;
}
if(retv) {
V_VT(retv) = VT_BOOL;
V_BOOL(retv) = ret;
}
return S_OK;
}
static HRESULT JSGlobal_isFinite(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,

View File

@ -773,4 +773,7 @@ try {
ok(false, "deleteTest not throwed exception?");
}catch(ex) {}
ok(isNaN(0.5) === false, "isNaN(0.5) !== false");
ok(isNaN() === true, "isNaN() !== true");
reportSuccess();