diff options
Diffstat (limited to 'node_modules/uglify-js/lib/sourcemap.js')
| -rw-r--r-- | node_modules/uglify-js/lib/sourcemap.js | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/node_modules/uglify-js/lib/sourcemap.js b/node_modules/uglify-js/lib/sourcemap.js new file mode 100644 index 00000000..2feec45d --- /dev/null +++ b/node_modules/uglify-js/lib/sourcemap.js @@ -0,0 +1,104 @@ +/*********************************************************************** + + A JavaScript tokenizer / parser / beautifier / compressor. + https://github.com/mishoo/UglifyJS2 + + -------------------------------- (C) --------------------------------- + + Author: Mihai Bazon + <mihai.bazon@gmail.com> + http://mihai.bazon.net/blog + + Distributed under the BSD license: + + Copyright 2012 (c) Mihai Bazon <mihai.bazon@gmail.com> + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + ***********************************************************************/ + +"use strict"; + +// 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, + }, true); + var generator = new MOZ_SourceMap.SourceMapGenerator({ + file: options.file, + sourceRoot: options.root + }); + 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); + }); + } + maps[source] = map; + } + return { + 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()); + } + }; +} |
