Twi*_*ron 5 javascript source-maps
我正在尝试使用 Mozilla 的源地图库将转换后的文件中的位置映射回其原始位置。我发现了一种情况,源地图找不到有效位置,但我不明白为什么。
这是我的源文件
sub main()
end sub
Run Code Online (Sandbox Code Playgroud)
出于这个问题的目的,我正在创建一个源映射,该映射可以完美地模拟源文件而无需转换。因此,理论上任何位置请求都应该返回完全相同的位置。但是,这就是我现在在以下代码片段中看到的内容。在这种情况下,{line: 2, column: 1}返回{line: null, column: null},但{line: 2, column: 0}正确返回{line: 2, column: 0}。
我究竟做错了什么?
sourceMap.SourceMapConsumer.initialize({
"lib/mappings.wasm": "https://unpkg.com/source-map@0.7.3/lib/mappings.wasm"
});
//create a source map
let codeAndMap = new sourceMap.SourceNode(null, null, 'main.brs', [
new sourceMap.SourceNode(1, 0, 'main.brs', 'sub main()'), '\n',
new sourceMap.SourceNode(2, 0, 'main.brs', 'end sub')
]).toStringWithSourceMap();
sourceMap.SourceMapConsumer.with(codeAndMap.map.toJSON(), null, (consumer) => {
console.log('column 0', JSON.stringify(
//returns {line: 2, column: 0}
consumer.originalPositionFor({
line: 2,
column: 0,
bias: sourceMap.SourceMapConsumer.LEAST_UPPER_BOUND
})
));
console.log('column 1', JSON.stringify(
//returns {line: null, column: null}, but SHOULD return {line: 2, column: 1}
consumer.originalPositionFor({
line: 2,
column: 1,
bias: sourceMap.SourceMapConsumer.LEAST_UPPER_BOUND
})
));
});Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/source-map@0.7.3/dist/source-map.js"></script>Run Code Online (Sandbox Code Playgroud)