tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 4b1c8f3a56479eef14df1230cf2e386255cb1afe
parent 2daf4952091c5a6c5405a2dd7e60d145d9d21406
Author: André Bargull <andre.bargull@gmail.com>
Date:   Mon,  3 Nov 2025 13:43:05 +0000

Bug 1997869: Use ReturnStringCopy in more testing functions. r=spidermonkey-reviewers,jandem

This avoids duplicated code and ensure proper handling of OOM.

Differential Revision: https://phabricator.services.mozilla.com/D271016

Diffstat:
Mjs/src/builtin/TestingFunctions.cpp | 27+++++----------------------
1 file changed, 5 insertions(+), 22 deletions(-)

diff --git a/js/src/builtin/TestingFunctions.cpp b/js/src/builtin/TestingFunctions.cpp @@ -1026,13 +1026,7 @@ static bool WasmCompilersPresent(JSContext* cx, unsigned argc, Value* vp) { strcat(buf, "ion"); } - JSString* result = JS_NewStringCopyZ(cx, buf); - if (!result) { - return false; - } - - args.rval().setString(result); - return true; + return ReturnStringCopy(cx, args, buf); } static bool WasmCompileMode(JSContext* cx, unsigned argc, Value* vp) { @@ -1595,8 +1589,7 @@ static bool WasmGlobalToString(JSContext* cx, unsigned argc, Value* vp) { MOZ_ASSERT_UNREACHABLE(); } - args.rval().setString(JS_NewStringCopyZ(cx, result.get())); - return true; + return ReturnStringCopy(cx, args, result.get()); } static bool WasmLosslessInvoke(JSContext* cx, unsigned argc, Value* vp) { @@ -2173,13 +2166,7 @@ static bool WasmFunctionTier(JSContext* cx, unsigned argc, Value* vp) { return false; } wasm::Tier tier = instance.code().funcTier(funcIndex); - RootedString tierString(cx, JS_NewStringCopyZ(cx, wasm::ToString(tier))); - if (!tierString) { - ReportOutOfMemory(cx); - return false; - } - args.rval().set(StringValue(tierString)); - return true; + return ReturnStringCopy(cx, args, wasm::ToString(tier)); } JS_ReportErrorASCII(cx, "argument is not an exported wasm function"); return false; @@ -9072,18 +9059,14 @@ static bool GetEnvironmentObjectType(JSContext* cx, unsigned argc, Value* vp) { if (envObj->is<EnvironmentObject>()) { EnvironmentObject* env = &envObj->as<EnvironmentObject>(); - JSString* str = JS_NewStringCopyZ(cx, env->typeString()); - args.rval().setString(str); - return true; + return ReturnStringCopy(cx, args, env->typeString()); } if (envObj->is<DebugEnvironmentProxy>()) { DebugEnvironmentProxy* envProxy = &envObj->as<DebugEnvironmentProxy>(); EnvironmentObject* env = &envProxy->environment(); char buf[256] = {'\0'}; SprintfLiteral(buf, "[DebugProxy] %s", env->typeString()); - JSString* str = JS_NewStringCopyZ(cx, buf); - args.rval().setString(str); - return true; + return ReturnStringCopy(cx, args, buf); } args.rval().setUndefined();