diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt new file mode 100644 index 00000000000..714d4633a73 --- /dev/null +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt @@ -0,0 +1,29 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.backend.common.serialization + +import org.jetbrains.kotlin.backend.common.LoggingContext +import org.jetbrains.kotlin.ir.declarations.IrFile +import org.jetbrains.kotlin.ir.declarations.IrModuleFragment +import org.jetbrains.kotlin.library.IrIrSerializedIrFile +import org.jetbrains.kotlin.library.SerializedIrModule + +abstract class IrModuleSerializer(protected val logger: LoggingContext, + protected val mangler: KotlinMangler, + protected val declarationTable: DeclarationTable) { + + + abstract fun createSerializerForFile(file: IrFile): F + + private fun serializeIrFile(file: IrFile): IrIrSerializedIrFile { + val fileSerializer = createSerializerForFile(file) + return fileSerializer.serializeIrFile(file) + } + + fun serializedIrModule(module: IrModuleFragment): SerializedIrModule { + return SerializedIrModule(module.files.map { serializeIrFile(it) }) + } +} \ No newline at end of file diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrFileSerializer.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrFileSerializer.kt new file mode 100644 index 00000000000..c8401299b00 --- /dev/null +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrFileSerializer.kt @@ -0,0 +1,16 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir + +import org.jetbrains.kotlin.backend.common.LoggingContext +import org.jetbrains.kotlin.backend.common.serialization.IrFileSerializer +import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable + +class JsIrFileSerializer( + logger: LoggingContext, + declarationTable: DeclarationTable, + bodiesOnlyForInlines: Boolean = false +) : IrFileSerializer(logger, declarationTable, JsMangler, bodiesOnlyForInlines) diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrModuleSerializer.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrModuleSerializer.kt index f94935465ff..d1e44b9dda6 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrModuleSerializer.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrModuleSerializer.kt @@ -7,10 +7,12 @@ package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir import org.jetbrains.kotlin.backend.common.LoggingContext import org.jetbrains.kotlin.backend.common.serialization.IrModuleSerializer -import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable +import org.jetbrains.kotlin.backend.common.serialization.KotlinMangler +import org.jetbrains.kotlin.ir.declarations.IrFile -class JsIrModuleSerializer( - logger: LoggingContext, - declarationTable: DeclarationTable, - bodiesOnlyForInlines: Boolean = false -) : IrModuleSerializer(logger, declarationTable, JsMangler, bodiesOnlyForInlines) +class JsIrModuleSerializer(logger: LoggingContext, declarationTable: JsDeclarationTable) : + IrModuleSerializer(logger, JsMangler, declarationTable) { + + + override fun createSerializerForFile(file: IrFile): JsIrFileSerializer = JsIrFileSerializer(logger, declarationTable) +} \ No newline at end of file