[K/Wasm] Introduce stepping tests for Wasm

This commit is contained in:
Artem Kobzar
2023-08-15 17:03:11 +00:00
committed by Space Team
parent 577d0db3f1
commit 05ed134fbb
120 changed files with 4035 additions and 2359 deletions
@@ -53,6 +53,23 @@ class SourceMap(val sourceContentResolver: (String) -> Reader?) {
}
}
fun segmentForGeneratedLocation(lineNumber: Int, columnNumber: Int?): SourceMapSegment? {
val group = groups.getOrNull(lineNumber)?.takeIf { it.segments.isNotEmpty() } ?: return null
return if (columnNumber == null || columnNumber <= group.segments[0].generatedColumnNumber) {
group.segments[0]
} else {
val candidateIndex = group.segments.indexOfFirst {
columnNumber <= it.generatedColumnNumber
}
if (candidateIndex < 0)
null
else if (candidateIndex == 0 || group.segments[candidateIndex].generatedColumnNumber == columnNumber)
group.segments[candidateIndex]
else
group.segments[candidateIndex - 1]
}
}
companion object {
@Throws(IOException::class, SourceMapSourceReplacementException::class)
fun replaceSources(sourceMapFile: File, mapping: (String) -> String): Boolean {
@@ -142,7 +142,7 @@ object SourceMapParser {
}
when {
stream.isEof -> return stream.createError("Unexpected EOF, ',' or ';' expected")
stream.isEof -> break
stream.isGroupTerminator -> {
currentGroup = SourceMapGroup().also { sourceMap.groups += it }
jsColumn = 0