tor-browser

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

commit 05d576ee5539eff58de39c60ac504357be563608
parent de4df10efe3276145d072b9c629b6521fd0bb8ae
Author: Cornelius Emase <corneliuslochipi@gmail.com>
Date:   Mon,  3 Nov 2025 16:35:22 +0000

Bug 1996859 - Introduce 'bytes' module type and handle it in all consumers. r=dminor

Add JS::ModuleType::Bytes and include it in GetModuleType and related
switch cases to ensure proper detection and handling across module
consumers.

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

Diffstat:
Mjs/public/Modules.h | 3++-
Mjs/src/builtin/ModuleObject.cpp | 2++
Mjs/src/shell/ModuleLoader.cpp | 1+
Mjs/src/shell/ShellModuleObjectWrapper.cpp | 3+++
4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/js/public/Modules.h b/js/public/Modules.h @@ -43,8 +43,9 @@ enum class ModuleType : uint32_t { JavaScript, JSON, CSS, + Bytes, - Limit = CSS, + Limit = Bytes, }; /** diff --git a/js/src/builtin/ModuleObject.cpp b/js/src/builtin/ModuleObject.cpp @@ -227,6 +227,8 @@ static bool GetModuleType(JSContext* cx, moduleType = JS::ModuleType::JSON; } else if (js::EqualStrings(typeStr, cx->names().css)) { moduleType = JS::ModuleType::CSS; + } else if (js::EqualStrings(typeStr, cx->names().bytes)) { + moduleType = JS::ModuleType::Bytes; } else { moduleType = JS::ModuleType::Unknown; } diff --git a/js/src/shell/ModuleLoader.cpp b/js/src/shell/ModuleLoader.cpp @@ -525,6 +525,7 @@ JSObject* ModuleLoader::loadAndParse(JSContext* cx, HandleString pathArg, switch (moduleType) { case JS::ModuleType::Unknown: + case JS::ModuleType::Bytes: JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr, JSMSG_BAD_MODULE_TYPE); return nullptr; diff --git a/js/src/shell/ShellModuleObjectWrapper.cpp b/js/src/shell/ShellModuleObjectWrapper.cpp @@ -378,6 +378,9 @@ bool ModuleTypeToString(JSContext* cx, JS::Handle<JSObject*> owner, case JS::ModuleType::CSS: MOZ_ASSERT_UNREACHABLE("CSS modules are not supported in the shell"); break; + case JS::ModuleType::Bytes: + to.setString(cx->names().bytes); + break; } MOZ_ASSERT(!to.isUndefined());