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:
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());