From 32ed3e9e97c7ca90c324cc9e4cd7e0437a965919 Mon Sep 17 00:00:00 2001 From: Brian Hackett Date: Wed, 16 Mar 2011 19:26:49 -0700 Subject: [PATCH] [INFER] Mark unexpected undefined result for JSON.stringify, bug 642161. --- js/src/jit-test/tests/basic/bug642161.js | 1 + js/src/json.cpp | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 js/src/jit-test/tests/basic/bug642161.js diff --git a/js/src/jit-test/tests/basic/bug642161.js b/js/src/jit-test/tests/basic/bug642161.js new file mode 100644 index 00000000000..18679dd9ed2 --- /dev/null +++ b/js/src/jit-test/tests/basic/bug642161.js @@ -0,0 +1 @@ +assertEq(JSON.stringify(0 | "prefix" || Boolean), undefined); diff --git a/js/src/json.cpp b/js/src/json.cpp index 71cdf5794b8..af3fb46fe09 100644 --- a/js/src/json.cpp +++ b/js/src/json.cpp @@ -162,6 +162,8 @@ js_json_stringify(JSContext *cx, uintN argc, Value *vp) return JS_FALSE; vp->setString(str); } else { + if (!cx->markTypeCallerUnexpected(types::TYPE_UNDEFINED)) + return JS_FALSE; vp->setUndefined(); }