better support for multiple input files:

- use a single AST_Toplevel node for all files
- keep original source filename in the tokens
This commit is contained in:
Mihai Bazon
2012-09-21 14:19:05 +03:00
parent c4f8c2103f
commit 5491e1d7b1
6 changed files with 96 additions and 93 deletions

View File

@@ -51,27 +51,29 @@ function SourceMap(options) {
file : options.file,
sourceRoot : options.root
});
var current_source = null;
function add(gen_line, gen_col, orig_line, orig_col, name) {
// AST_Node.warn("Mapping in {file}: {orig_line},{orig_col} → {gen_line},{gen_col} ({name})", {
// orig_line : orig_line,
// orig_col : orig_col,
// gen_line : gen_line,
// gen_col : gen_col,
// file : current_source,
// name : name
// });
function add(source, gen_line, gen_col, orig_line, orig_col, name) {
generator.addMapping({
generated : { line: gen_line + 1, column: gen_col },
original : { line: orig_line + 1, column: orig_col },
source : current_source,
source : source,
name : name
});
};
return {
add : add,
set_source : function(filename) { current_source = filename },
get : function() { return generator },
toString : function() { return generator.toString() }
}
};
};
function SourceMapInput(map) {
map = new MOZ_SourceMap.SourceMapConsumer(map);
return {
info: function(line, col) {
return map.originalPositionFor({
line: line,
column: col
});
}
};
};