diff --git a/dom/workers/loader/WorkerModuleLoader.cpp b/dom/workers/loader/WorkerModuleLoader.cpp index da1fca5dfc97..5db74d97316a 100644 --- a/dom/workers/loader/WorkerModuleLoader.cpp +++ b/dom/workers/loader/WorkerModuleLoader.cpp @@ -244,7 +244,7 @@ nsresult WorkerModuleLoader::CreateTextModule( aRequest->mLoadContext.get()); NS_ENSURE_SUCCESS(rv, rv); - auto compile = [&](auto& source) { + auto compile = [&](auto& source) -> JSObject* { using T = decltype(source); static_assert(std::is_same_v&> || std::is_same_v&>); @@ -256,6 +256,9 @@ nsresult WorkerModuleLoader::CreateTextModule( } else { str = JS_NewUCStringCopyN(aCx, source.get(), source.length()); } + if (!str) { + return nullptr; + } JS::Rooted defaultExport(aCx, JS::StringValue(str)); return JS::CreateDefaultExportSyntheticModule(aCx, defaultExport);