Zebediah Figura : jscript: Avoid crash when calling stringify() with no arguments.
Module: wine Branch: master Commit: bf47aebdeeda0ccd16178bf0a52fd0cbd69794fe URL: https://source.winehq.org/git/wine.git/?a=commit;h=bf47aebdeeda0ccd16178bf0a... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Sat May 5 14:13:12 2018 -0500 jscript: Avoid crash when calling stringify() with no arguments. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/jscript/json.c | 6 ++++++ dlls/jscript/tests/api.js | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/dlls/jscript/json.c b/dlls/jscript/json.c index fc23b54..0430d41 100644 --- a/dlls/jscript/json.c +++ b/dlls/jscript/json.c @@ -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; diff --git a/dlls/jscript/tests/api.js b/dlls/jscript/tests/api.js index 4207f5a..f124c46 100644 --- a/dlls/jscript/tests/api.js +++ b/dlls/jscript/tests/api.js @@ -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");
participants (1)
-
Alexandre Julliard