jscript: Throw errors in Number functions.
This commit is contained in:
parent
f89fbb9b48
commit
3afc444e7f
|
@ -22,9 +22,11 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
{
|
||||
IDS_INVALID_CALL_ARG "Invalid procedure call or argument"
|
||||
IDS_NO_PROPERTY "Object doesn't support this property or method"
|
||||
IDS_ARG_NOT_OPT "Argument not optional"
|
||||
IDS_NOT_DATE "'[object]' is not a date object"
|
||||
IDS_NOT_NUM "Number expected"
|
||||
IDS_NOT_BOOL "Boolean object expected"
|
||||
IDS_INVALID_LENGTH "Array length must be a finite positive integer"
|
||||
}
|
||||
|
|
|
@ -54,10 +54,8 @@ static HRESULT Number_toString(DispatchEx *dispex, LCID lcid, WORD flags, DISPPA
|
|||
|
||||
TRACE("\n");
|
||||
|
||||
if(!is_class(dispex, JSCLASS_NUMBER)) {
|
||||
FIXME("throw TypeError\n");
|
||||
return E_FAIL;
|
||||
}
|
||||
if(!is_class(dispex, JSCLASS_NUMBER))
|
||||
return throw_type_error(dispex->ctx, ei, IDS_NOT_NUM, NULL);
|
||||
|
||||
number = (NumberInstance*)dispex;
|
||||
|
||||
|
@ -66,10 +64,8 @@ static HRESULT Number_toString(DispatchEx *dispex, LCID lcid, WORD flags, DISPPA
|
|||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
if(radix<2 || radix>36) {
|
||||
FIXME("throw TypeError\n");
|
||||
return E_FAIL;
|
||||
}
|
||||
if(radix<2 || radix>36)
|
||||
return throw_type_error(dispex->ctx, ei, IDS_INVALID_CALL_ARG, NULL);
|
||||
}
|
||||
|
||||
if(V_VT(&number->num) == VT_I4)
|
||||
|
@ -208,10 +204,8 @@ static HRESULT Number_valueOf(DispatchEx *dispex, LCID lcid, WORD flags, DISPPAR
|
|||
{
|
||||
TRACE("\n");
|
||||
|
||||
if(!is_class(dispex, JSCLASS_NUMBER)) {
|
||||
FIXME("throw TypeError\n");
|
||||
return E_FAIL;
|
||||
}
|
||||
if(!is_class(dispex, JSCLASS_NUMBER))
|
||||
return throw_type_error(dispex->ctx, ei, IDS_NOT_NUM, NULL);
|
||||
|
||||
if(retv) {
|
||||
NumberInstance *number = (NumberInstance*)dispex;
|
||||
|
|
|
@ -18,8 +18,10 @@
|
|||
|
||||
#include <windef.h>
|
||||
|
||||
#define IDS_INVALID_CALL_ARG 0x0005
|
||||
#define IDS_NO_PROPERTY 0x01B6
|
||||
#define IDS_ARG_NOT_OPT 0x01c1
|
||||
#define IDS_NOT_DATE 0x138E
|
||||
#define IDS_NOT_NUM 0x1389
|
||||
#define IDS_NOT_BOOL 0x1392
|
||||
#define IDS_INVALID_LENGTH 0x13A5
|
||||
|
|
|
@ -1302,5 +1302,7 @@ exception_test(function() {Array(-3);}, "RangeError");
|
|||
exception_test(function() {arr.toString = Boolean.prototype.toString; arr.toString();}, "TypeError");
|
||||
exception_test(function() {date.setTime();}, "TypeError");
|
||||
exception_test(function() {arr.test();}, "TypeError");
|
||||
exception_test(function() {arr.toString = Number.prototype.toString; arr.toString();}, "TypeError");
|
||||
exception_test(function() {(new Number(3)).toString(1);}, "TypeError");
|
||||
|
||||
reportSuccess();
|
||||
|
|
Loading…
Reference in New Issue