From 95b5c44fba827c2dfa56f20e0cbc8b5be111ef79 Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Wed, 8 Dec 2021 17:03:32 +0300 Subject: [PATCH] [JS IR] IC: emit source maps --- .../cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt | 3 ++- .../src/org/jetbrains/kotlin/ir/backend/js/compilerWithIC.kt | 3 ++- .../jetbrains/kotlin/js/test/converters/JsIrBackendFacade.kt | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt index 03f1e28878d..3f8dda64c61 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt @@ -43,6 +43,7 @@ import org.jetbrains.kotlin.ir.backend.js.codegen.JsGenerationGranularity import org.jetbrains.kotlin.ir.backend.js.ic.* import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformer import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformerTmp +import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.SourceMapsInfo import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImplForJsIC import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrFactory @@ -282,7 +283,7 @@ class K2JsIrCompiler : CLICompiler() { val caches = loadModuleCaches(icCaches) val moduleKind = configurationJs[JSConfigurationKeys.MODULE_KIND]!! - val compiledModule = generateJsFromAst(moduleName, moduleKind, caches) + val compiledModule = generateJsFromAst(moduleName, moduleKind, SourceMapsInfo.from(configurationJs), caches) val outputs = compiledModule.outputs!! diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/compilerWithIC.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/compilerWithIC.kt index fd2c91f3534..f05bcc89d0f 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/compilerWithIC.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/compilerWithIC.kt @@ -128,6 +128,7 @@ fun lowerPreservingTags(modules: Iterable, context: JsIrBacken fun generateJsFromAst( mainModuleName: String, moduleKind: ModuleKind, + sourceMapsInfo: SourceMapsInfo?, caches: Map, ): CompilerResult { val deserializer = JsIrAstDeserializer() @@ -143,7 +144,7 @@ fun generateJsFromAst( mainModuleName = mainModuleName, moduleKind = moduleKind, jsIrProgram, - sourceMapsInfo = null, + sourceMapsInfo = sourceMapsInfo, relativeRequirePath = false, generateScriptModule = false, ), null diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/JsIrBackendFacade.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/JsIrBackendFacade.kt index a92fad4d100..5be901dd5aa 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/JsIrBackendFacade.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/converters/JsIrBackendFacade.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.ir.backend.js.codegen.generateEsModules import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerDesc import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformer import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformerTmp +import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.SourceMapsInfo import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImplForJsIC import org.jetbrains.kotlin.ir.util.IrMessageLogger @@ -96,7 +97,8 @@ class JsIrBackendFacade( } val moduleName = configuration.getNotNull(CommonConfigurationKeys.MODULE_NAME) val moduleKind = configuration.get(JSConfigurationKeys.MODULE_KIND, ModuleKind.PLAIN) - val compiledModule = generateJsFromAst(moduleName, moduleKind, testServices.jsIrIncrementalDataProvider.getCaches()) + val sourceMapsInfo = SourceMapsInfo.from(configuration) + val compiledModule = generateJsFromAst(moduleName, moduleKind, sourceMapsInfo, testServices.jsIrIncrementalDataProvider.getCaches()) return BinaryArtifacts.Js.JsIrArtifact( outputFile, compiledModule, testServices.jsIrIncrementalDataProvider.getCacheForModule(module) ).dump(module)