[JS IR] Generate sourcemaps for JS IR tests
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user