webpack: make window exports non enumerable

This commit is contained in:
Vendicated 2024-05-29 06:16:11 +02:00
parent da01237c05
commit 9b9a5322c9
No known key found for this signature in database
GPG key ID: D66986BAF75ECF18
2 changed files with 4 additions and 4 deletions

View file

@ -209,7 +209,7 @@ function patchFactories(factories: Record<string, (module: any, exports: any, re
// There are (at the time of writing) 11 modules exporting the window
// Make these non enumerable to improve webpack search performance
if (exports === window && require.c) {
if (require.c && (exports === window || exports?.default === window)) {
Object.defineProperty(require.c, id, {
value: require.c[id],
enumerable: false,
@ -229,7 +229,7 @@ function patchFactories(factories: Record<string, (module: any, exports: any, re
for (const [filter, callback] of subscriptions) {
try {
if (filter(exports)) {
if (exports && filter(exports)) {
subscriptions.delete(filter);
callback(exports, id);
} else if (exports.default && filter(exports.default)) {

View file

@ -106,13 +106,13 @@ export const find = traceFunction("find", function find(filter: FilterFn, { isIn
for (const key in cache) {
const mod = cache[key];
if (!mod?.exports || mod.exports === window) continue;
if (!mod?.exports) continue;
if (filter(mod.exports)) {
return isWaitFor ? [mod.exports, key] : mod.exports;
}
if (mod.exports.default && mod.exports.default !== window && filter(mod.exports.default)) {
if (mod.exports.default && filter(mod.exports.default)) {
const found = mod.exports.default;
return isWaitFor ? [found, key] : found;
}