diff --git a/mozilla/js/src/jsregexp.c b/mozilla/js/src/jsregexp.c index 6da14d48f61..2cea2dc2931 100644 --- a/mozilla/js/src/jsregexp.c +++ b/mozilla/js/src/jsregexp.c @@ -4308,10 +4308,12 @@ js_NewRegExpObject(JSContext *cx, JSTokenStream *ts, str = js_NewStringCopyN(cx, chars, length); if (!str) return NULL; - re = js_NewRegExp(cx, ts, str, flags, JS_FALSE); - if (!re) - return NULL; JS_PUSH_TEMP_ROOT_STRING(cx, str, &tvr); + re = js_NewRegExp(cx, ts, str, flags, JS_FALSE); + if (!re) { + JS_POP_TEMP_ROOT(cx, &tvr); + return NULL; + } obj = js_NewObject(cx, &js_RegExpClass, NULL, NULL, 0); if (!obj || !JS_SetPrivate(cx, obj, re)) { js_DestroyRegExp(cx, re);