WebpackPatcher: Try catch more code prone to errors

This commit is contained in:
Nuckyz 2025-05-14 16:24:18 -03:00
parent 98b1b11dfa
commit 707d688887
No known key found for this signature in database
GPG key ID: 440BF8296E1C4AD9
2 changed files with 49 additions and 19 deletions

View file

@ -145,9 +145,17 @@ function makePropertyNonEnumerable(target: Record<PropertyKey, any>, key: Proper
}
export function _blacklistBadModules(requireCache: NonNullable<AnyWebpackRequire["c"]>, exports: ModuleExports, moduleId: PropertyKey) {
if (shouldIgnoreValue(exports)) {
makePropertyNonEnumerable(requireCache, moduleId);
return true;
try {
if (shouldIgnoreValue(exports)) {
makePropertyNonEnumerable(requireCache, moduleId);
return true;
}
} catch (err) {
logger.error(
"Error while blacklisting module:\n", err,
"\n\nModule id:", moduleId,
"\n\nModule exports:", exports,
);
}
if (typeof exports !== "object") {
@ -156,17 +164,25 @@ export function _blacklistBadModules(requireCache: NonNullable<AnyWebpackRequire
let hasOnlyBadProperties = true;
for (const exportKey in exports) {
// Some exports might have not been initialized yet due to circular imports, so try catch it.
try {
var exportValue = exports[exportKey];
} catch {
continue;
}
// Some exports might have not been initialized yet due to circular imports, so try catch it.
try {
var exportValue = exports[exportKey];
} catch {
continue;
}
if (shouldIgnoreValue(exportValue)) {
makePropertyNonEnumerable(exports, exportKey);
} else {
hasOnlyBadProperties = false;
if (shouldIgnoreValue(exportValue)) {
makePropertyNonEnumerable(exports, exportKey);
} else {
hasOnlyBadProperties = false;
}
} catch (err) {
logger.error(
"Error while blacklistng module:\n", err,
"\n\nModule id:", moduleId,
"\n\nExport value:", exportValue,
);
}
}