diff options
Diffstat (limited to 'node_modules/uglify-js/lib/sourcemap.js')
-rw-r--r-- | node_modules/uglify-js/lib/sourcemap.js | 93 |
1 files changed, 50 insertions, 43 deletions
diff --git a/node_modules/uglify-js/lib/sourcemap.js b/node_modules/uglify-js/lib/sourcemap.js index 0be16bfc7..2feec45d6 100644 --- a/node_modules/uglify-js/lib/sourcemap.js +++ b/node_modules/uglify-js/lib/sourcemap.js @@ -46,52 +46,59 @@ // a small wrapper around fitzgen's source-map library function SourceMap(options) { options = defaults(options, { - file : null, - root : null, - orig : null, - - orig_line_diff : 0, - dest_line_diff : 0, - }); + file: null, + root: null, + orig: null, + orig_line_diff: 0, + dest_line_diff: 0, + }, true); var generator = new MOZ_SourceMap.SourceMapGenerator({ - file : options.file, - sourceRoot : options.root + file: options.file, + sourceRoot: options.root }); - var orig_map = options.orig && new MOZ_SourceMap.SourceMapConsumer(options.orig); - - if (orig_map && Array.isArray(options.orig.sources)) { - orig_map._sources.toArray().forEach(function(source) { - var sourceContent = orig_map.sourceContentFor(source, true); - if (sourceContent) { - generator.setSourceContent(source, sourceContent); - } - }); - } - - function add(source, gen_line, gen_col, orig_line, orig_col, name) { - if (orig_map) { - var info = orig_map.originalPositionFor({ - line: orig_line, - column: orig_col + var maps = options.orig && Object.create(null); + if (maps) for (var source in options.orig) { + var map = new MOZ_SourceMap.SourceMapConsumer(options.orig[source]); + if (Array.isArray(options.orig[source].sources)) { + map._sources.toArray().forEach(function(source) { + var sourceContent = map.sourceContentFor(source, true); + if (sourceContent) generator.setSourceContent(source, sourceContent); }); - if (info.source === null) { - return; - } - source = info.source; - orig_line = info.line; - orig_col = info.column; - name = info.name || name; } - generator.addMapping({ - generated : { line: gen_line + options.dest_line_diff, column: gen_col }, - original : { line: orig_line + options.orig_line_diff, column: orig_col }, - source : source, - name : name - }); - }; + maps[source] = map; + } return { - add : add, - get : function() { return generator }, - toString : function() { return JSON.stringify(generator.toJSON()); } + add: function(source, gen_line, gen_col, orig_line, orig_col, name) { + var map = maps && maps[source]; + if (map) { + var info = map.originalPositionFor({ + line: orig_line, + column: orig_col + }); + if (info.source === null) return; + source = info.source; + orig_line = info.line; + orig_col = info.column; + name = info.name || name; + } + generator.addMapping({ + name: name, + source: source, + generated: { + line: gen_line + options.dest_line_diff, + column: gen_col + }, + original: { + line: orig_line + options.orig_line_diff, + column: orig_col + } + }); + }, + get: function() { + return generator; + }, + toString: function() { + return JSON.stringify(generator.toJSON()); + } }; -}; +} |