1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-08 20:06:18 +00:00

jscript: Properly handle passing undefined value to Number.toString in ES5+ mode.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
This commit is contained in:
Gabriel Ivăncescu 2023-06-22 16:19:01 +03:00 committed by Alexandre Julliard
parent 3d04d052cd
commit 38f6eb34b8
3 changed files with 5 additions and 1 deletions

View File

@ -239,7 +239,7 @@ static HRESULT Number_toString(script_ctx_t *ctx, jsval_t vthis, WORD flags, uns
if(FAILED(hres))
return hres;
if(argc) {
if(argc && (ctx->version < SCRIPTLANGUAGEVERSION_ES5 || !is_undefined(argv[0]))) {
hres = to_int32(ctx, argv[0], &radix);
if(FAILED(hres))
return hres;

View File

@ -2709,6 +2709,7 @@ testException(function() {Number.prototype.toFixed.call(arr);}, "E_NOT_NUM");
testException(function() {Number.prototype.toLocaleString.call(arr);}, "E_NOT_NUM");
testException(function() {Number.prototype.toLocaleString.call(null);}, "E_NOT_NUM");
testException(function() {(new Number(3)).toString(1);}, "E_INVALID_CALL_ARG");
testException(function() {(new Number(3)).toString(undefined);}, "E_INVALID_CALL_ARG");
testException(function() {(new Number(3)).toFixed(21);}, "E_FRACTION_DIGITS_OUT_OF_RANGE");
testException(function() {(new Number(1)).toPrecision(0);}, "E_PRECISION_OUT_OF_RANGE");
if(invokeVersion < 2)

View File

@ -1127,6 +1127,9 @@ sync_test("toString", function() {
obj = Object.create(Number.prototype);
tmp = Object.prototype.toString.call(obj);
ok(tmp === "[object Object]", "toString.call(Object.create(Number.prototype)) = " + tmp);
tmp = (new Number(303)).toString(undefined);
ok(tmp === "303", "Number 303 toString(undefined) = " + tmp);
});
sync_test("bind", function() {