JS: fix bootstrap build error related to updates in source maps
This commit is contained in:
@@ -22,16 +22,10 @@ import org.jetbrains.kotlin.js.backend.ast.*
|
|||||||
import org.jetbrains.kotlin.js.facade.SourceMapBuilderConsumer
|
import org.jetbrains.kotlin.js.facade.SourceMapBuilderConsumer
|
||||||
import org.jetbrains.kotlin.js.inline.util.fixForwardNameReferences
|
import org.jetbrains.kotlin.js.inline.util.fixForwardNameReferences
|
||||||
import org.jetbrains.kotlin.js.parser.parse
|
import org.jetbrains.kotlin.js.parser.parse
|
||||||
import org.jetbrains.kotlin.js.parser.sourcemaps.SourceMapError
|
import org.jetbrains.kotlin.js.parser.sourcemaps.*
|
||||||
import org.jetbrains.kotlin.js.parser.sourcemaps.SourceMapLocationRemapper
|
|
||||||
import org.jetbrains.kotlin.js.parser.sourcemaps.SourceMapParser
|
|
||||||
import org.jetbrains.kotlin.js.parser.sourcemaps.SourceMapSuccess
|
|
||||||
import org.jetbrains.kotlin.js.sourceMap.SourceFilePathResolver
|
import org.jetbrains.kotlin.js.sourceMap.SourceFilePathResolver
|
||||||
import org.jetbrains.kotlin.js.sourceMap.SourceMap3Builder
|
import org.jetbrains.kotlin.js.sourceMap.SourceMap3Builder
|
||||||
import org.jetbrains.kotlin.js.util.TextOutputImpl
|
import org.jetbrains.kotlin.js.util.TextOutputImpl
|
||||||
import org.json.JSONArray
|
|
||||||
import org.json.JSONObject
|
|
||||||
import org.json.JSONTokener
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.StringReader
|
import java.io.StringReader
|
||||||
|
|
||||||
@@ -78,7 +72,7 @@ fun main(args: Array<String>) {
|
|||||||
val sourceMapFile = File(outputFile.parentFile, outputFile.name + ".map")
|
val sourceMapFile = File(outputFile.parentFile, outputFile.name + ".map")
|
||||||
val textOutput = TextOutputImpl()
|
val textOutput = TextOutputImpl()
|
||||||
val sourceMapBuilder = SourceMap3Builder(outputFile, textOutput, "")
|
val sourceMapBuilder = SourceMap3Builder(outputFile, textOutput, "")
|
||||||
val consumer = SourceMapBuilderConsumer(sourceMapBuilder, SourceFilePathResolver(mutableListOf()), true, true)
|
val consumer = SourceMapBuilderConsumer(File("."), sourceMapBuilder, SourceFilePathResolver(mutableListOf()), true, true)
|
||||||
program.globalBlock.accept(JsToStringGenerationVisitor(textOutput, consumer))
|
program.globalBlock.accept(JsToStringGenerationVisitor(textOutput, consumer))
|
||||||
val sourceMapContent = sourceMapBuilder.build()
|
val sourceMapContent = sourceMapBuilder.build()
|
||||||
|
|
||||||
@@ -86,20 +80,20 @@ fun main(args: Array<String>) {
|
|||||||
|
|
||||||
outputFile.writeText(programText + "\n//# sourceMappingURL=${sourceMapFile.name}\n")
|
outputFile.writeText(programText + "\n//# sourceMappingURL=${sourceMapFile.name}\n")
|
||||||
|
|
||||||
val sourceMapJson = StringReader(sourceMapContent).use { JSONObject(JSONTokener(it)) }
|
val sourceMapJson = StringReader(sourceMapContent).use { parseJson(it) }
|
||||||
val sources = sourceMapJson["sources"] as JSONArray
|
val sources = (sourceMapJson as JsonObject).properties["sources"] as JsonArray
|
||||||
|
|
||||||
sourceMapJson.put("sourcesContent", sources.map { sourcePath ->
|
sourceMapJson.properties["sourcesContent"] = JsonArray(*sources.elements.map { sourcePath ->
|
||||||
val sourceFile = File(sourcePath as String)
|
val sourceFile = File((sourcePath as JsonString).value)
|
||||||
if (sourceFile.exists()) {
|
if (sourceFile.exists()) {
|
||||||
sourceFile.readText()
|
JsonString(sourceFile.readText())
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
null
|
JsonNull
|
||||||
}
|
}
|
||||||
})
|
}.toTypedArray())
|
||||||
|
|
||||||
sourceMapFile.writeText(sourceMapJson.toString(2))
|
sourceMapFile.writeText(sourceMapJson.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun List<JsStatement>.createInsertionPlace(): JsBlock {
|
private fun List<JsStatement>.createInsertionPlace(): JsBlock {
|
||||||
|
|||||||
Reference in New Issue
Block a user