From eaa872925901414b849bb61aa9ffc8824bba8550 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Mon, 2 Oct 2017 11:37:28 +0300 Subject: [PATCH] Fix embedding sources to source maps when compiling JS stdlib --- libraries/stdlib/js/build.gradle | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/libraries/stdlib/js/build.gradle b/libraries/stdlib/js/build.gradle index deca9178360..addc2f7488a 100644 --- a/libraries/stdlib/js/build.gradle +++ b/libraries/stdlib/js/build.gradle @@ -118,6 +118,7 @@ compileBuiltinsKotlin2Js { metaInfo = false outputFile = "${buildDir}/classes/builtins/kotlin.js" sourceMap = true + sourceMapPrefix = "./" } } @@ -126,6 +127,7 @@ compileKotlin2Js { kotlinOptions { outputFile = "${buildDir}/classes/main/kotlin.js" sourceMap = true + sourceMapPrefix = "./" } } @@ -149,7 +151,7 @@ task compileJs(type: JavaExec) { } main = "org.jetbrains.kotlin.js.FileMergerKt" - args = [jsOutputFile, "$rootDir/../", "$jsSrcDir/wrapper.js"] + inputFiles.collect { it.path } + + args = [jsOutputFile, rootDir, "$jsSrcDir/wrapper.js"] + inputFiles.collect { it.path } + ["$buildDir/classes/builtins/kotlin.js", "$buildDir/classes/main/kotlin.js"] classpath = configurations.merger @@ -172,25 +174,22 @@ task compileJs(type: JavaExec) { def sourceMapFile = file("${jsOutputFile}.map") def sourceMap = new groovy.json.JsonSlurper().parseText(sourceMapFile.text) - def sourceMapSourcesBaseDirs = [ "${rootDir}/..", jsSrcJsDir ] - - sourceMap.sourcesContent = sourceMap.sources.collect { sourceName -> - sourceMapSourcesBaseDirs.collect { file("$it/$sourceName") }.find { it.exists() && it.name != "kotlin.js" }?.text - } def sourceMapBasePaths = [ - "js/js.libraries/src/", - "libraries/stdlib/js/build/builtin-sources/", - "libraries/stdlib/js/build/builtin-sources-for-builtins/", - "libraries/stdlib/js/build/builtin-sources-for-builtins/", - "libraries/stdlib/js/build/common-sources/" + "./", + "/js.libraries/src/js/" ] - sourceMap.sources = sourceMap.sources.collect { sourcePath -> def prefixToRemove = sourceMapBasePaths.find { basePath -> sourcePath.startsWith(basePath) } if (prefixToRemove != null) sourcePath.substring(prefixToRemove.length()) else sourcePath } + def sourceMapSourcesBaseDirs = [ jsSrcDir, builtinsSrcDir2, builtinsSrcDir, commonSrcDir, rootDir ] + + sourceMap.sourcesContent = sourceMap.sources.collect { sourceName -> + sourceMapSourcesBaseDirs.collect { file("$it/$sourceName") }.find { it.exists() && it.name != "kotlin.js" }?.text + } + sourceMapFile.text = groovy.json.JsonOutput.toJson(sourceMap) } }