From 177c092496ab6ff46b5cd3702ad1798a06aa74c1 Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Sat, 2 Jul 2016 12:42:15 -0700 Subject: [PATCH] Remove sideeffectful position mutation. --- packages/babel-generator/src/buffer.js | 2 +- packages/babel-generator/src/index.js | 2 +- packages/babel-generator/src/source-map.js | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/babel-generator/src/buffer.js b/packages/babel-generator/src/buffer.js index 65b35ce16d..750ecac11e 100644 --- a/packages/babel-generator/src/buffer.js +++ b/packages/babel-generator/src/buffer.js @@ -333,7 +333,7 @@ export default class Buffer { } // If there the line is ending, adding a new mapping marker is redundant - if (this.opts.sourceMaps && str[0] !== "\n") this.map.mark(this._sourcePosition); + if (this.opts.sourceMaps && str[0] !== "\n") this.map.mark(this.position, this._sourcePosition); // this.position.push(str); diff --git a/packages/babel-generator/src/index.js b/packages/babel-generator/src/index.js index 4254d8bdf9..f13bec1764 100644 --- a/packages/babel-generator/src/index.js +++ b/packages/babel-generator/src/index.js @@ -31,7 +31,7 @@ class Generator extends Printer { this._inForStatementInitCounter = 0; this.whitespace = new Whitespace(tokens); - this.map = new SourceMap(position, opts, code); + this.map = new SourceMap(opts, code); } format: { diff --git a/packages/babel-generator/src/source-map.js b/packages/babel-generator/src/source-map.js index ca23337e7e..5987e75c44 100644 --- a/packages/babel-generator/src/source-map.js +++ b/packages/babel-generator/src/source-map.js @@ -5,8 +5,7 @@ import sourceMap from "source-map"; */ export default class SourceMap { - constructor(position, opts, code) { - this.position = position; + constructor(opts, code) { this.opts = opts; this.last = {generated: {}, original: {}}; @@ -46,12 +45,10 @@ export default class SourceMap { * values to insert a mapping to nothing. */ - mark(sourcePos: Object) { + mark(position, sourcePos: Object) { let map = this.map; if (!map) return; // no source map - let position = this.position; - // Adding an empty mapping at the start of a generated line just clutters the map. if (this._lastGenLine !== position.line && sourcePos.line === null) return;