jscript: Avoid crash when calling stringify() with no arguments.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2018-05-05 14:13:12 -05:00 committed by Alexandre Julliard
parent 2e9b17922e
commit bf47aebdee
2 changed files with 10 additions and 0 deletions

View File

@ -768,6 +768,12 @@ static HRESULT JSON_stringify(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, un
TRACE("\n");
if(!argc) {
if(r)
*r = jsval_undefined();
return S_OK;
}
if(argc >= 2 && is_object_instance(argv[1])) {
FIXME("Replacer %s not yet supported\n", debugstr_jsval(argv[1]));
return E_NOTIMPL;

View File

@ -1810,6 +1810,7 @@ ok(isNaN(tmp), "Math.tan(-Infinity) is not NaN");
return;
var stringify_tests = [
[[], undefined],
[[true], "true"],
[[false], "false"],
[[null], "null"],
@ -1836,6 +1837,9 @@ ok(isNaN(tmp), "Math.tan(-Infinity) is not NaN");
"["+i+"] stringify(" + stringify_tests[i][0] + ") returned " + s + " expected " + stringify_tests[i][1]);
}
s = JSON.stringify();
ok(s === undefined, "stringify() returned " + s + " expected undefined");
s = JSON.stringify(testObj);
ok(s === undefined || s === "undefined" /* broken on some old versions */,
"stringify(testObj) returned " + s + " expected undfined");