[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) {
|
private fun File.write(outputs: CompilationOutputs) {
|
||||||
writeText(outputs.jsCode)
|
writeText(outputs.jsCode)
|
||||||
outputs.sourceMap?.let {
|
outputs.writeSourceMapIfPresent(this)
|
||||||
val mapFile = resolveSibling("$name.map")
|
|
||||||
appendText("\n//# sourceMappingURL=${mapFile.name}")
|
|
||||||
mapFile.writeText(it)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setupPlatformSpecificArgumentsAndServices(
|
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.JSConfigurationKeys
|
||||||
import org.jetbrains.kotlin.js.config.RuntimeDiagnostic
|
import org.jetbrains.kotlin.js.config.RuntimeDiagnostic
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
class CompilerResult(
|
class CompilerResult(
|
||||||
val outputs: Map<TranslationMode, CompilationOutputs>,
|
val outputs: Map<TranslationMode, CompilationOutputs>,
|
||||||
@@ -167,3 +168,11 @@ fun generateJsCode(
|
|||||||
val transformer = IrModuleToJsTransformer(context, null, true, nameTables)
|
val transformer = IrModuleToJsTransformer(context, null, true, nameTables)
|
||||||
return transformer.generateModule(listOf(moduleFragment)).outputs[TranslationMode.FULL]!!.jsCode
|
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)
|
val wrappedCode = ClassicJsBackendFacade.wrapWithModuleEmulationMarkers(jsCode, moduleId = moduleId, moduleKind = moduleKind)
|
||||||
outputFile.write(wrappedCode)
|
outputFile.write(wrappedCode)
|
||||||
|
|
||||||
|
if (moduleKind == ModuleKind.PLAIN) {
|
||||||
|
writeSourceMapIfPresent(outputFile)
|
||||||
|
}
|
||||||
|
|
||||||
dependencies.forEach { (moduleId, outputs) ->
|
dependencies.forEach { (moduleId, outputs) ->
|
||||||
val moduleWrappedCode = ClassicJsBackendFacade.wrapWithModuleEmulationMarkers(outputs.jsCode, moduleKind, moduleId)
|
val moduleWrappedCode = ClassicJsBackendFacade.wrapWithModuleEmulationMarkers(outputs.jsCode, moduleKind, moduleId)
|
||||||
outputFile.augmentWithModuleName(moduleId).write(moduleWrappedCode)
|
outputFile.augmentWithModuleName(moduleId).write(moduleWrappedCode)
|
||||||
|
|||||||
Reference in New Issue
Block a user