JS backend: minor improve in NamePredicate: replace list with set
JS backend: convert NumberConversionFIF to Kotlin
JS backend: refactoring support for binary intrinsic operations
JS backend: fix KT-5772 wrong code generated when <,<=,>,>= are used with explicit Comparable type

#KT-5772 Fixed
JS backend: tests for KT-5772
Allow to provide precomputed analyzers when creating ResolverForProject
Minor: fix typo in file name
Minor: extract property in KotlinResolveCache
Allow to provide delegate ModuleResolverProvider when computing resolve sessions for bodies
Reuse both storage manager and exception tracker when delegating to ModuleResolverProvider
Split global cache in KotlinCacheService into separate caches for libraries and for modules
Synthetic files cache delegates to libraries cache
Libraries cache drops only on roots change
Introduce ModuleSourceInfo
Implement ModuleSourceInfo.getDependentModules()
Delegate to global cache when building ModuleResolverProvider for synthetic files
Create composite exception tracker when delegating ModuleResolverProvider

Avoid dropping delegate caches when exception (i.e. ProcessCancelled) is thrown in delegating provider
Log when libraries cache is dropped because of ProcessCanceledException

Hope it can give insight on how often this happens
Correctly place decompiled kotlin files under LibrarySourceInfo

This check doesn't work for java (and other) decompiled sources, but we assume that we never deal with them in this code
Implement separate service which tracks modification in libraries

ProjectRootModificationTracker tracks root changes but not content modification