diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt index 02fe219af5b..271a0e0fcd1 100644 --- a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt +++ b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt @@ -41,10 +41,12 @@ public object KotlinJavascriptMetadataUtils { public fun hasMetadata(text: String): Boolean = METADATA_PATTERN.matcher(text).find() public fun writeMetadata(moduleName: String, content: ByteArray, metaFile: File) { - val text = "// Kotlin.$KOTLIN_JAVASCRIPT_METHOD_NAME($ABI_VERSION, \"$moduleName\", \"${printBase64Binary(content)}\");\n" - FileUtil.writeToFile(metaFile, text) + FileUtil.writeToFile(metaFile, writeMetadataToString(moduleName, content)) } + public fun writeMetadataToString(moduleName: String, content: ByteArray): String = + "// Kotlin.$KOTLIN_JAVASCRIPT_METHOD_NAME($ABI_VERSION, \"$moduleName\", \"${printBase64Binary(content)}\");\n" + platformStatic public fun loadMetadata(file: File): List { assert(file.exists()) { "Library " + file + " not found" } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/utils/serializer/KotlinJavaScriptSerializer.kt b/js/js.serializer/src/org/jetbrains/kotlin/utils/serializer/KotlinJavaScriptSerializer.kt index 45dc3f52da8..0da4f38cd9d 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/utils/serializer/KotlinJavaScriptSerializer.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/utils/serializer/KotlinJavaScriptSerializer.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.utils.serializer +import com.intellij.openapi.util.io.FileUtil import org.jetbrains.kotlin.builtins.BuiltInsSerializationUtil import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor @@ -36,6 +37,10 @@ import java.io.File public class KotlinJavaScriptSerializer() { public fun serialize(moduleName: String, moduleDescriptor: ModuleDescriptor, metaFile: File) { + FileUtil.writeToFile(metaFile, serializeToString(moduleName, moduleDescriptor)) + } + + public fun serializeToString(moduleName: String, moduleDescriptor: ModuleDescriptor): String { val contentMap = hashMapOf() DescriptorUtils.getPackagesFqNames(moduleDescriptor).forEach { @@ -47,7 +52,7 @@ public class KotlinJavaScriptSerializer() { } val content = KotlinJavascriptSerializationUtil.contentMapToByteArray(contentMap) - KotlinJavascriptMetadataUtils.writeMetadata(moduleName, content, metaFile) + return KotlinJavascriptMetadataUtils.writeMetadataToString(moduleName, content) } fun serializePackage(module: ModuleDescriptor, fqName: FqName, writeFun: (String, ByteArrayOutputStream) -> Unit) {