add kjsm option for kotlin js command line compiler

This commit is contained in:
Michael Nedzelsky
2015-11-20 15:59:11 +03:00
parent 24e473f47b
commit c80c33efb6
13 changed files with 69 additions and 12 deletions
@@ -21,9 +21,7 @@ import com.google.dart.compiler.util.TextOutput
import com.google.dart.compiler.util.TextOutputImpl
import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.vfs.VfsUtilCore
import org.jetbrains.kotlin.backend.common.output.OutputFileCollection
import org.jetbrains.kotlin.backend.common.output.SimpleOutputFile
import org.jetbrains.kotlin.backend.common.output.SimpleOutputFileCollection
import org.jetbrains.kotlin.backend.common.output.*
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.js.config.Config
import org.jetbrains.kotlin.js.sourceMap.JsSourceGenerationVisitor
@@ -70,7 +68,7 @@ public abstract class TranslationResult protected constructor(public val diagnos
}
val jsFile = SimpleOutputFile(sourceFiles, outputFile.getName(), prefix + code + postfix)
val outputFiles = arrayListOf(jsFile)
val outputFiles = arrayListOf<OutputFile>(jsFile)
if (config.isMetaInfo()) {
val metaFileName = KotlinJavascriptMetadataUtils.replaceSuffix(outputFile.getName())
@@ -80,6 +78,13 @@ public abstract class TranslationResult protected constructor(public val diagnos
outputFiles.add(jsMetaFile)
}
if (config.isKjsm) {
KotlinJavascriptSerializationUtil.toContentMap(moduleDescriptor).forEach {
// TODO Add correct source files
outputFiles.add(SimpleOutputBinaryFile(emptyList(), config.moduleId + VfsUtilCore.VFS_SEPARATOR_CHAR + it.key, it.value))
}
}
if (sourceMapBuilder != null) {
sourceMapBuilder.skipLinesAtBeginning(StringUtil.getLineBreakCount(prefix))
val sourceMapFile = SimpleOutputFile(sourceFiles, sourceMapBuilder.getOutFile().getName(), sourceMapBuilder.build())