Zebediah Figura : jscript: Avoid crash when calling stringify() with no arguments.
Alexandre Julliard
julliard at winehq.org
Mon May 7 16:34:41 CDT 2018
Module: wine
Branch: master
Commit: bf47aebdeeda0ccd16178bf0a52fd0cbd69794fe
URL: https://source.winehq.org/git/wine.git/?a=commit;h=bf47aebdeeda0ccd16178bf0a52fd0cbd69794fe
Author: Zebediah Figura <z.figura12 at 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 at gmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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");
More information about the wine-cvs
mailing list