feat(lib/modules/metro): blacklist primitives and empty objects for finders

This commit is contained in:
PalmDevs 2025-07-11 15:59:35 +07:00
parent c66dace21b
commit f05885e559
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA

View file

@ -106,7 +106,16 @@ function handleFactoryCall(
)
const { exports } = moduleObject
if (exports != null) mInitialized.add(mInitializingId)
// Blacklist exports that:
// - are primitives (https://developer.mozilla.org/en-US/docs/Glossary/Primitive)
// - are empty objects
if (exports instanceof Object) {
if (exports.__proto__ === Object.prototype) {
if (Reflect.ownKeys(exports).length)
mInitialized.add(mInitializingId!)
} else mInitialized.add(mInitializingId)
}
executeInitializeSubscriptions(mInitializingId, exports)
} finally {