[Sourcemap] Extract addLink from SourceMap3Builder as a addSourceMappingURL
The general goal is remove dependency on TextOutput and make it simpler to use for wasm backend.
This commit is contained in:
committed by
Space Team
parent
9f82c43b1b
commit
e34d3d09bc
@@ -23,6 +23,7 @@ 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.SourceMap3Builder
|
||||
import org.jetbrains.kotlin.js.sourceMap.addSourceMappingURL
|
||||
import org.jetbrains.kotlin.js.util.TextOutputImpl
|
||||
import java.io.File
|
||||
import java.io.InputStreamReader
|
||||
@@ -115,18 +116,19 @@ class DeadCodeElimination(
|
||||
for ((file, block) in inputFiles.zip(blocks)) {
|
||||
val sourceMapFile = File(file.outputPath + ".map")
|
||||
val textOutput = TextOutputImpl()
|
||||
val sourceMapBuilder = SourceMap3Builder(File(file.outputPath), textOutput, "")
|
||||
val outputFile = File(file.outputPath)
|
||||
val sourceMapBuilder = SourceMap3Builder(outputFile, textOutput, "")
|
||||
|
||||
val inputFile = File(file.resource.name)
|
||||
val sourceBaseDir = if (inputFile.exists()) inputFile.parentFile else File(".")
|
||||
|
||||
val sourcePathResolver = SourceFilePathResolver(emptyList(), File(file.outputPath).parentFile)
|
||||
val sourcePathResolver = SourceFilePathResolver(emptyList(), outputFile.parentFile)
|
||||
val consumer = SourceMapBuilderConsumer(sourceBaseDir, sourceMapBuilder, sourcePathResolver, true, true)
|
||||
block.accept(JsToStringGenerationVisitor(textOutput, consumer))
|
||||
val sourceMapContent = sourceMapBuilder.build()
|
||||
sourceMapBuilder.addLink()
|
||||
textOutput.addSourceMappingURL(outputFile)
|
||||
|
||||
with(File(file.outputPath)) {
|
||||
with(outputFile) {
|
||||
parentFile.mkdirs()
|
||||
writeText(textOutput.toString())
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ package org.jetbrains.kotlin.js.sourceMap
|
||||
|
||||
import gnu.trove.TObjectIntHashMap
|
||||
import org.jetbrains.kotlin.js.parser.sourcemaps.*
|
||||
import org.jetbrains.kotlin.js.util.TextOutput
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.io.Reader
|
||||
@@ -192,12 +191,6 @@ class SourceMap3Builder(
|
||||
}
|
||||
}
|
||||
|
||||
override fun addLink() {
|
||||
textOutput.print("\n//# sourceMappingURL=")
|
||||
textOutput.print(generatedFile!!.name)
|
||||
textOutput.print(".map\n")
|
||||
}
|
||||
|
||||
private object Base64VLQ {
|
||||
// A Base64 VLQ digit can represent 5 bits, so it is base-32.
|
||||
private const val VLQ_BASE_SHIFT = 5
|
||||
|
||||
@@ -10,8 +10,6 @@ import java.io.File;
|
||||
public interface SourceMapBuilder extends SourceMapMappingConsumer {
|
||||
void skipLinesAtBeginning(int count);
|
||||
|
||||
void addLink();
|
||||
|
||||
File getOutFile();
|
||||
|
||||
String build();
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.js.sourceMap
|
||||
|
||||
import org.jetbrains.kotlin.js.util.TextOutput
|
||||
import java.io.File
|
||||
|
||||
fun TextOutput.addSourceMappingURL(outputJsFile: File) {
|
||||
print("\n//# sourceMappingURL=")
|
||||
print(outputJsFile.name)
|
||||
print(".map\n")
|
||||
}
|
||||
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.js.config.SourceMapSourceEmbedding
|
||||
import org.jetbrains.kotlin.js.sourceMap.SourceFilePathResolver
|
||||
import org.jetbrains.kotlin.js.sourceMap.SourceMap3Builder
|
||||
import org.jetbrains.kotlin.js.sourceMap.SourceMapBuilderConsumer
|
||||
import org.jetbrains.kotlin.js.sourceMap.addSourceMappingURL
|
||||
import org.jetbrains.kotlin.js.util.TextOutput
|
||||
import org.jetbrains.kotlin.js.util.TextOutputImpl
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -134,7 +135,7 @@ abstract class TranslationResult protected constructor(val diagnostics: Diagnost
|
||||
|
||||
getCode(output, sourceMapBuilderConsumer)
|
||||
if (sourceMapBuilderConsumer != null) {
|
||||
sourceMapBuilder.addLink()
|
||||
output.addSourceMappingURL(outputFile)
|
||||
}
|
||||
val code = output.toString()
|
||||
|
||||
@@ -150,7 +151,7 @@ abstract class TranslationResult protected constructor(val diagnostics: Diagnost
|
||||
sourceMapBuilder.skipLinesAtBeginning(StringUtil.getLineBreakCount(prefix))
|
||||
val sourceMapFile = SimpleOutputFile(sourceFiles, sourceMapBuilder.outFile.name, sourceMapBuilder.build())
|
||||
outputFiles.add(sourceMapFile)
|
||||
sourceMapBuilder.addLink()
|
||||
output.addSourceMappingURL(outputFile)
|
||||
}
|
||||
|
||||
return SimpleOutputFileCollection(outputFiles)
|
||||
|
||||
Reference in New Issue
Block a user