aboutsummaryrefslogtreecommitdiff
path: root/node_modules/babel-generator/lib/source-map.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/babel-generator/lib/source-map.js')
-rw-r--r--node_modules/babel-generator/lib/source-map.js48
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
}