diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-04-20 03:09:25 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-04-24 16:14:29 +0200 |
commit | 82f2b76e25a4a67e01ec67e5ebe39d14ad771ea8 (patch) | |
tree | 965f6eb89b84d65a62b49008fd972c004832ccd1 /node_modules/babel-generator/lib/source-map.js | |
parent | e6e0cbc387c2a77b48e4065c229daa65bf1aa0fa (diff) |
Reorganize module loading.
We now use webpack instead of SystemJS, effectively bundling modules
into one file (plus commons chunks) for every entry point. This results
in a much smaller extension size (almost half). Furthermore we use
yarn/npm even for extension run-time dependencies. This relieves us
from manually vendoring and building dependencies. It's also easier to
understand for new developers familiar with node.
Diffstat (limited to 'node_modules/babel-generator/lib/source-map.js')
-rw-r--r-- | node_modules/babel-generator/lib/source-map.js | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/node_modules/babel-generator/lib/source-map.js b/node_modules/babel-generator/lib/source-map.js index 192d8bca0..b44d1f080 100644 --- a/node_modules/babel-generator/lib/source-map.js +++ b/node_modules/babel-generator/lib/source-map.js @@ -22,27 +22,38 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de var SourceMap = function () { function SourceMap(opts, code) { - var _this = this; - (0, _classCallCheck3.default)(this, SourceMap); + this._cachedMap = null; + this._code = code; this._opts = opts; - this._map = new _sourceMap2.default.SourceMapGenerator({ - file: opts.sourceMapTarget, - sourceRoot: opts.sourceRoot - }); + this._rawMappings = []; + } - if (typeof code === "string") { - this._map.setSourceContent(opts.sourceFileName, code); - } else if ((typeof code === "undefined" ? "undefined" : (0, _typeof3.default)(code)) === "object") { - (0, _keys2.default)(code).forEach(function (sourceFileName) { - _this._map.setSourceContent(sourceFileName, code[sourceFileName]); + SourceMap.prototype.get = function get() { + if (!this._cachedMap) { + var map = this._cachedMap = new _sourceMap2.default.SourceMapGenerator({ + file: this._opts.sourceMapTarget, + sourceRoot: this._opts.sourceRoot }); + + var code = this._code; + if (typeof code === "string") { + map.setSourceContent(this._opts.sourceFileName, code); + } else if ((typeof code === "undefined" ? "undefined" : (0, _typeof3.default)(code)) === "object") { + (0, _keys2.default)(code).forEach(function (sourceFileName) { + map.setSourceContent(sourceFileName, code[sourceFileName]); + }); + } + + this._rawMappings.forEach(map.addMapping, map); } - } - SourceMap.prototype.get = function get() { - return this._map.toJSON(); + return this._cachedMap.toJSON(); + }; + + SourceMap.prototype.getRawMappings = function getRawMappings() { + return this._rawMappings.slice(); }; SourceMap.prototype.mark = function mark(generatedLine, generatedColumn, line, column, identifierName, filename) { @@ -52,18 +63,19 @@ var SourceMap = function () { return; } + this._cachedMap = null; this._lastGenLine = generatedLine; this._lastSourceLine = line; this._lastSourceColumn = column; - this._map.addMapping({ - name: identifierName, + this._rawMappings.push({ + name: identifierName || undefined, generated: { line: generatedLine, column: generatedColumn }, - source: line == null ? null : filename || this._opts.sourceFileName, - original: line == null ? null : { + source: line == null ? undefined : filename || this._opts.sourceFileName, + original: line == null ? undefined : { line: line, column: column } |