JS IR: serialize declarations without mutable state

This commit is contained in:
Anton Bannykh
2021-04-02 17:56:06 +03:00
committed by TeamCityServer
parent 1e822aa28a
commit 8fe8419ad4
4 changed files with 217 additions and 145 deletions
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
import org.jetbrains.kotlin.backend.common.serialization.IrFileSerializer
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer
import org.jetbrains.kotlin.ir.declarations.IrFile
import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.ir.util.IrMessageLogger
import org.jetbrains.kotlin.ir.util.hasAnnotation
@@ -19,13 +20,15 @@ class JsIrFileSerializer(
declarationTable: DeclarationTable,
expectDescriptorToSymbol: MutableMap<DeclarationDescriptor, IrSymbol>,
skipExpects: Boolean,
bodiesOnlyForInlines: Boolean = false
bodiesOnlyForInlines: Boolean = false,
icMode: Boolean = false,
) : IrFileSerializer(
messageLogger,
declarationTable,
expectDescriptorToSymbol,
bodiesOnlyForInlines = bodiesOnlyForInlines,
skipExpects = skipExpects
skipExpects = skipExpects,
skipMutableState = icMode,
) {
companion object {
private val JS_EXPORT_FQN = FqName("kotlin.js.JsExport")