jscript: Added Number.toString implementation.
This commit is contained in:
parent
9b74d6a91c
commit
c3e2a6f9d7
|
@ -39,11 +39,39 @@ static const WCHAR propertyIsEnumerableW[] =
|
||||||
{'p','r','o','p','e','r','t','y','I','s','E','n','u','m','e','r','a','b','l','e',0};
|
{'p','r','o','p','e','r','t','y','I','s','E','n','u','m','e','r','a','b','l','e',0};
|
||||||
static const WCHAR isPrototypeOfW[] = {'i','s','P','r','o','t','o','t','y','p','e','O','f',0};
|
static const WCHAR isPrototypeOfW[] = {'i','s','P','r','o','t','o','t','y','p','e','O','f',0};
|
||||||
|
|
||||||
|
/* ECMA-262 3rd Edition 15.7.4.2 */
|
||||||
static HRESULT Number_toString(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
|
static HRESULT Number_toString(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
|
||||||
VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp)
|
VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp)
|
||||||
{
|
{
|
||||||
FIXME("\n");
|
NumberInstance *number;
|
||||||
return E_NOTIMPL;
|
BSTR str;
|
||||||
|
HRESULT hres;
|
||||||
|
|
||||||
|
TRACE("\n");
|
||||||
|
|
||||||
|
if(!is_class(dispex, JSCLASS_NUMBER)) {
|
||||||
|
FIXME("throw TypeError\n");
|
||||||
|
return E_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
number = (NumberInstance*)dispex;
|
||||||
|
|
||||||
|
if(arg_cnt(dp) != 0) {
|
||||||
|
FIXME("unsupported args\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
hres = to_string(dispex->ctx, &number->num, ei, &str);
|
||||||
|
if(FAILED(hres))
|
||||||
|
return hres;
|
||||||
|
|
||||||
|
if(retv) {
|
||||||
|
V_VT(retv) = VT_BSTR;
|
||||||
|
V_BSTR(retv) = str;
|
||||||
|
}else {
|
||||||
|
SysFreeString(str);
|
||||||
|
}
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT Number_toLocaleString(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
|
static HRESULT Number_toLocaleString(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp,
|
||||||
|
|
|
@ -85,5 +85,8 @@ tmp = arr.toString("test");
|
||||||
ok(tmp === "1,2,,false,,,a", "arr.toString() = " + tmp);
|
ok(tmp === "1,2,,false,,,a", "arr.toString() = " + tmp);
|
||||||
|
|
||||||
var num = new Number(2);
|
var num = new Number(2);
|
||||||
|
ok(num.toString() === "2", "num(2).toString !== 2");
|
||||||
|
var num = new Number();
|
||||||
|
ok(num.toString() === "0", "num().toString !== 0");
|
||||||
|
|
||||||
reportSuccess();
|
reportSuccess();
|
||||||
|
|
Loading…
Reference in New Issue