diff --git a/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt b/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt index fc572111ef3..c15e4aaa23d 100644 --- a/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt +++ b/libraries/stdlib/js-ir/runtime/typeCheckUtils.kt @@ -153,15 +153,12 @@ private fun completeInterfaceCache(ctor: Ctor): IsImplementsCache? { } } - val constructor = fastGetPrototype(ctor)?.constructor ?: return null - val parentInterfacesCache = completeInterfaceCache(constructor) ?: return interfacesCache + val parentInterfacesCache = fastGetPrototype(ctor)?.constructor?.let(::completeInterfaceCache) - if (interfacesCache == null) return parentInterfacesCache - - interfacesCache.extendCacheWith(parentInterfacesCache) - interfacesCache.isComplete = true - - return interfacesCache + return interfacesCache?.apply { + extendCacheWith(parentInterfacesCache) + isComplete = true + } ?: parentInterfacesCache } // Old JS Backend