[JS IR] Generate sourcemaps for JS IR tests

This commit is contained in:
Sergej Jaskiewicz
2022-05-23 21:54:03 +03:00
committed by Space
parent 29f3445721
commit 0320d49ddc
3 changed files with 14 additions and 5 deletions
@@ -458,11 +458,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
private fun File.write(outputs: CompilationOutputs) {
writeText(outputs.jsCode)
outputs.sourceMap?.let {
val mapFile = resolveSibling("$name.map")
appendText("\n//# sourceMappingURL=${mapFile.name}")
mapFile.writeText(it)
}
outputs.writeSourceMapIfPresent(this)
}
override fun setupPlatformSpecificArgumentsAndServices(
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.js.backend.ast.JsProgram
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
import org.jetbrains.kotlin.js.config.RuntimeDiagnostic
import org.jetbrains.kotlin.name.FqName
import java.io.File
class CompilerResult(
val outputs: Map<TranslationMode, CompilationOutputs>,
@@ -167,3 +168,11 @@ fun generateJsCode(
val transformer = IrModuleToJsTransformer(context, null, true, nameTables)
return transformer.generateModule(listOf(moduleFragment)).outputs[TranslationMode.FULL]!!.jsCode
}
fun CompilationOutputs.writeSourceMapIfPresent(outputJsFile: File) {
sourceMap?.let {
val mapFile = outputJsFile.resolveSibling("${outputJsFile.name}.map")
outputJsFile.appendText("\n//# sourceMappingURL=${mapFile.name}\n")
mapFile.writeText(it)
}
}
@@ -326,6 +326,10 @@ class JsIrBackendFacade(
val wrappedCode = ClassicJsBackendFacade.wrapWithModuleEmulationMarkers(jsCode, moduleId = moduleId, moduleKind = moduleKind)
outputFile.write(wrappedCode)
if (moduleKind == ModuleKind.PLAIN) {
writeSourceMapIfPresent(outputFile)
}
dependencies.forEach { (moduleId, outputs) ->
val moduleWrappedCode = ClassicJsBackendFacade.wrapWithModuleEmulationMarkers(outputs.jsCode, moduleKind, moduleId)
outputFile.augmentWithModuleName(moduleId).write(moduleWrappedCode)