From 3cafa8d10160c5ba5aa3387c598d3800cc148833 Mon Sep 17 00:00:00 2001 From: "rogerl%netscape.com" Date: Tue, 12 Feb 2002 19:12:42 +0000 Subject: [PATCH] Fixing bug #103351 - using undefined as RegExp value for String.replace. r=khanson, sr=brendan --- js/src/jsstr.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/js/src/jsstr.c b/js/src/jsstr.c index db0a69660d90..fcfde7786d1f 100644 --- a/js/src/jsstr.c +++ b/js/src/jsstr.c @@ -1065,22 +1065,18 @@ match_or_replace(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, reobj = JSVAL_TO_OBJECT(argv[0]); re = (JSRegExp *) JS_GetPrivate(cx, reobj); } else { - if (JSVAL_IS_VOID(argv[0])) { - re = js_NewRegExp(cx, NULL, cx->runtime->emptyString, 0, JS_FALSE); - } else { - src = js_ValueToString(cx, argv[0]); - if (!src) + src = js_ValueToString(cx, argv[0]); + if (!src) + return JS_FALSE; + if (data->optarg < argc) { + argv[0] = STRING_TO_JSVAL(src); + opt = js_ValueToString(cx, argv[data->optarg]); + if (!opt) return JS_FALSE; - if (data->optarg < argc) { - argv[0] = STRING_TO_JSVAL(src); - opt = js_ValueToString(cx, argv[data->optarg]); - if (!opt) - return JS_FALSE; - } else { - opt = NULL; - } - re = js_NewRegExpOpt(cx, NULL, src, opt, forceFlat); + } else { + opt = NULL; } + re = js_NewRegExpOpt(cx, NULL, src, opt, forceFlat); if (!re) return JS_FALSE; reobj = NULL;